Jetpack Compose ist ein deklaratives, natives UI-Toolkit für die einfachere und schnellere UI-Entwicklung. Sie geben darin an, wie Ihre Anwendung aussehen soll. Den Rest übernimmt Jetpack Compose.
In der Maps Compose-Bibliothek für das Maps SDK for Android finden Sie zusammensetzbare Open-Source-Funktionen und Datentypen, die Sie mit Jetpack Compose zum Erstellen Ihrer Anwendung verwenden können.
Damit lassen sich viele allgemeine Aufgaben ausführen. Hier ein Auszug gängiger zusammensetzbarer Funktionen und Datentypen:
Funktion/Datentyp | Beschreibung |
---|---|
Circle | Zusammensetzbare Funktion zum Hinzufügen eines Kreises zu einer Karte |
GoogleMap | Zusammensetzbare Funktion zum Hinzufügen einer Karte |
GroundOverlay | Zusammensetzbare Funktion zum Hinzufügen eines Boden-Overlays zu einer Karte |
MapProperties | Datentyp für Eigenschaften, die auf einer Karte geändert werden können |
MapUISettings | Datentyp für UI-bezogene Einstellungen auf einer Karte |
Marker | Zusammensetzbare Funktion zum Hinzufügen einer Markierung zu einer Karte |
Polygon | Zusammensetzbare Funktion zum Hinzufügen eines Polygons zu einer Karte |
Polyline | Zusammensetzbare Funktion zum Hinzufügen einer Polylinie zu einer Karte |
TileOverlay | Zusammensetzbare Funktion zum Hinzufügen eines Kachel-Overlays zu einer Karte |
Eine vollständige Liste aller zusammensetzbaren Funktionen und Datentypen finden Sie in der Referenz zur Maps Compose-Bibliothek.
Voraussetzungen
Wenn Sie die Maps Compose-Bibliothek mit dem Maps SDK for Android verwenden möchten, müssen Sie folgende Schritte ausführen:
- Android Studio Arctic Fox herunterladen und installieren
In Android Studio ein Google Maps-Projekt erstellen und dabei folgende Elemente und Einstellungen verwenden:
- Eine Vorlage vom Typ Empty Compose Activity. Damit werden die für Jetpack Compose erforderlichen Abhängigkeiten hinzugefügt.
- Für das Minimum SDK muss API 21: Android 5.0 (Lollipop) oder höher angegeben werden.
- Für Language muss Kotlin angegeben werden.
Einen API-Schlüssel anfordern und Ihrem Projekt hinzufügen
Die Maps Compose-Bibliothek wie im folgenden Abschnitt beschrieben im Projekt installieren
Installation
So installieren Sie die Maps Compose-Bibliothek in Ihrem Google Maps-Projekt:
Fügen Sie der Datei
build.gradle
auf Modulebene die folgenden Abhängigkeiten hinzu:dependencies { // Android Maps Compose composables for the Maps SDK for Android implementation 'com.google.maps.android:maps-compose:4.4.1' }
Erstellen Sie einen neuen Build Ihres Projekts in Android Studio, um die Änderungen zu synchronisieren.
Karte in App einbinden
Im folgenden Beispiel sehen Sie, wie Sie mit der zusammensetzbaren Funktion GoogleMap eine Karte einbinden.
val singapore = LatLng(1.35, 103.87) val cameraPositionState = rememberCameraPositionState { position = CameraPosition.fromLatLngZoom(singapore, 10f) } GoogleMap( modifier = Modifier.fillMaxSize(), cameraPositionState = cameraPositionState ) { Marker( state = MarkerState(position = singapore), title = "Singapore", snippet = "Marker in Singapore" ) }
In diesem Beispiel nimmt die Karte den maximal zulässigen Platz ein und die Kamera platziert Singapur in der Kartenmitte. Außerdem wird ein CameraPositionState erstellt und in cameraPositionState
angegeben, um die Kameraposition festzulegen.
Im Beispiel wird dann die zusammensetzbare Funktion Marker im Karteninhalt aufgerufen und der Karte so eine Markierung hinzugefügt.
Ein Beispiel, bei dem eine Karte über die Funktion für Ansichten eingebunden wird, finden Sie in der Kurzanleitung. Ein Vergleich zeigt, dass für zusammensetzbare Funktionen weniger Code erforderlich ist und Sie sich um den Lebenszyklus der Karte nicht kümmern müssen.
Eigenschaften auf einer Karte festlegen
Sie können Eigenschaften für die Karte festlegen, indem Sie ein MapProperties-Objekt oder ein MapUiSettings-Objekt (für UI-bezogene Eigenschaften) angeben. Sie können diese Objekte ändern, um die Neuzusammensetzung der Karte auszulösen.
Verwenden Sie im folgenden Beispiel einen Switch, also eine Material Design-Komponente, um die Zoomsteuerelemente auf der Karte zu aktivieren oder zu deaktivieren.
var uiSettings by remember { mutableStateOf(MapUiSettings()) } var properties by remember { mutableStateOf(MapProperties(mapType = MapType.SATELLITE)) } Box(Modifier.fillMaxSize()) { GoogleMap( modifier = Modifier.matchParentSize(), properties = properties, uiSettings = uiSettings ) Switch( checked = uiSettings.zoomControlsEnabled, onCheckedChange = { uiSettings = uiSettings.copy(zoomControlsEnabled = it) } ) }
Weiteres Vorgehen
- GitHub-Projektseite mit der Maps Compose-Bibliothek aufrufen
- Jetpack Compose-Dokumentation ansehen