Jetpack Compose es un kit de herramientas de IU declarativo y nativo que simplifica y acelera el desarrollo de la IU. Con Jetpack Compose, describes cómo deseas que se vea tu app y, luego, dejas que el kit de herramientas se encargue del resto.
La biblioteca de Maps Compose del SDK de Maps para Android es un conjunto de tipos de datos y funciones de componibilidad de código abierto que puedes usar con Jetpack Compose para crear tu app.
La biblioteca de Maps Compose permite realizar muchas tareas comunes con sus tipos de datos y funciones de componibilidad, algunos de los cuales son los siguientes:
Componible | Descripción |
---|---|
Circle | Es una función de componibilidad para agregar un círculo a un mapa. |
GoogleMap | Es una función de componibilidad para agregar un mapa. |
GroundOverlay | Es una función de componibilidad para agregar una superposición de suelo a un mapa. |
MapProperties | Es un tipo de datos para las propiedades que se pueden modificar en un mapa. |
MapUISettings | Es un tipo de datos para la configuración relacionada con la IU en un mapa. |
Marker | Es una función de componibilidad para agregar un marcador a un mapa. |
Polygon | Es una función de componibilidad para agregar un polígono a un mapa. |
Polyline | Es una función de componibilidad para agregar una polilínea a un mapa. |
TileOverlay | Es una función de componibilidad para agregar una superposición de mosaicos a un mapa. |
Para obtener una lista completa de todas las funciones de componibilidad, consulta la Referencia de la biblioteca de Maps Compose.
Requisitos
Para utilizar la biblioteca de Maps Compose con el SDK de Maps para Android, debes hacer lo siguiente:
- Descarga e instala Android Studio Arctic Fox.
Crea un proyecto de Google Mapsen Android Studio con lo siguiente:
- Usa un tipo de plantilla Empty Compose Activity. Esta plantilla agrega las dependencias necesarias que requiere Jetpack Compose.
- Minimum SDK debe estar configurado en API 21: Android 5.0 (Lollipop) o posterior.
- El lenguaje debe estar configurado en Kotlin.
Obtén una clave de API y agrégala a tu proyecto.
Instala la biblioteca de Maps Compose en el proyecto como se describe en la siguiente sección.
Instalación
Para instalar la biblioteca de Maps Compose en tu proyecto de Google Maps, sigue estos pasos:
Agrega las siguientes dependencias a tu archivo
build.gradle
a nivel del módulo:dependencies { // Android Maps Compose composables for the Maps SDK for Android implementation 'com.google.maps.android:maps-compose:4.4.1' }
Vuelve a compilar tu proyecto en Android Studio para sincronizar estos cambios.
Cómo agregar un mapa a tu app
En el siguiente ejemplo, se muestra cómo usar el elemento componible GoogleMap para agregar un mapa.
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" ) }
En este ejemplo, el mapa ocupa el espacio máximo permitido y la cámara se centra en la zona de Singapur. También se crea y se proporciona una clase CameraPositionState en cameraPositionState
para establecer la posición de la cámara.
En el ejemplo, se llama al elemento componible Marker en el contenido del mapa para agregar un marcador.
Para comparar este ejemplo con otro que agrega un mapa con tipos de vistas, consulta la Guía de inicio rápido. Notarás que las funciones de componibilidad requieren menos código y no tienes que preocuparte por el ciclo de vida del mapa.
Cómo definir propiedades en un mapa
Puedes configurar las propiedades del mapa proporcionando un objeto MapProperties o un objeto MapUiSettings para las propiedades relacionadas con la IU. Puedes modificar estos objetos para activar la recomposición del mapa.
En el siguiente ejemplo, usa un Switch, un componente de Material Design, para activar o desactivar los controles de zoom en el mapa.
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) } ) }
Próximos pasos
- Consulta la página del proyecto de GitHub de la biblioteca de Maps Compose.
- Consulta la documentación de Jetpack Compose.