Jetpack Compose est une boîte à outils d'interface utilisateur native et déclarative qui simplifie et accélère le développement d'UI. Il vous suffit de décrire l'application que vous souhaitez concevoir et Jetpack Compose s'occupe du reste.
La bibliothèque Maps Compose pour le SDK Maps pour Android est un ensemble de fonctions composables et de types de données Open Source que vous pouvez utiliser avec Jetpack Compose pour créer votre application.
La bibliothèque Maps Compose contient des fonctions composables et des types de données qui vous permettent d'effectuer de nombreuses tâches courantes. Voici quelques fonctions composables et types de données couramment utilisés :
Composable | Description |
---|---|
Circle | Fonction composable permettant d'ajouter un cercle à une carte |
GoogleMap | Fonction composable permettant d'ajouter une carte |
GroundOverlay | Fonction composable permettant d'ajouter une superposition au sol à une carte |
MapProperties | Type de données des propriétés pouvant être modifiées sur une carte |
MapUISettings | Type de données des paramètres liés à l'interface utilisateur sur une carte |
Marker | Fonction composable permettant d'ajouter un repère à une carte |
Polygon | Fonction composable permettant d'ajouter un polygone à une carte |
Polyline | Fonction composable permettant d'ajouter une polyligne à une carte |
TileOverlay | Fonction composable permettant d'ajouter une superposition de tuiles à une carte |
Pour obtenir la liste complète des fonctions composables et des types de données, consultez la documentation de référence sur la bibliothèque Maps Compose.
Conditions requises
Pour utiliser la bibliothèque Maps Compose avec le SDK Maps pour Android :
- Téléchargez et installez Android Studio Arctic Fox.
Créez un projet Google Maps dans Android Studio avec :
- Un modèle de type Empty Compose Activity (qui ajoute les dépendances nécessaires pour Jetpack Compose)
- La version minimale du SDK définie sur API 21: Android 5.0 (Lollipop) ou une version ultérieure
- Le Langage défini sur Kotlin
Obtenez une clé API, puis ajoutez-la à votre projet.
Installez la bibliothèque Maps Compose dans le projet, comme indiqué dans la section suivante.
Installation
Pour installer la bibliothèque Maps Compose dans votre projet Google Maps :
Ajoutez les dépendances suivantes à votre fichier
build.gradle
au niveau du module :dependencies { // Android Maps Compose composables for the Maps SDK for Android implementation 'com.google.maps.android:maps-compose:4.4.1' }
Recréez votre projet dans Android Studio pour synchroniser ces modifications.
Ajouter une carte à votre application
L'exemple suivant montre comment utiliser le composable GoogleMap pour ajouter une carte.
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" ) }
Dans cet exemple, la carte occupe l'espace maximal autorisé, et sa caméra est centrée sur Singapour. Un CameraPositionState est également créé et fourni dans cameraPositionState
pour définir la position de la caméra.
L'exemple appelle ensuite le composable Marker dans le contenu de la carte pour ajouter un repère à la carte.
Pour comparer cet exemple à un autre dans lequel la carte est ajoutée à l'aide de Vues, consultez le guide de démarrage rapide. Comme vous pouvez le constater, les fonctions composables nécessitent moins de code et vous évitent d'avoir à vous préoccuper du cycle de vie de la carte.
Définir des propriétés sur une carte
Vous pouvez définir des propriétés sur la carte en fournissant un objet MapProperties (ou MapUiSettings pour les propriétés liées à l'interface utilisateur). Vous pouvez modifier ces objets pour déclencher la recomposition de la carte.
L'exemple ci-dessous utilise un bouton bascule Switch (un composant Material Design) pour activer/désactiver les commandes de zoom sur la carte.
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) } ) }
Étapes suivantes
- Consulter la page de projet GitHub consacrée à la bibliothèque Maps Compose
- Consulter la documentation Jetpack Compose