Maps Android KTX

Se trata de una colección de extensiones de Kotlin (KTX) que se utilizan con el SDK de Maps para Android y la biblioteca de utilidades de este SDK. Estas extensiones proporcionan funciones de lenguaje Kotlin que te permiten escribir Kotlin idiomático y conciso cuando desarrollas utilizando el SDK de Maps para Android. Maps KTX es de código abierto y está disponible en GitHub junto con ejemplos.

Instalación

Para instalar la biblioteca KTX del SDK de Maps para Android y, de forma opcional, la biblioteca de utilidades de este mismo SDK, agrega las siguientes dependencias a tu archivo build.gradle.

dependencies {

    // KTX for the Maps SDK for Android library
    implementation 'com.google.maps.android:maps-ktx:5.0.0'
}

Ejemplos de uso

Con la biblioteca de KTX, puedes aprovechar varias funciones del lenguaje Kotlin, como funciones de extensión, parámetros con nombre y argumentos predeterminados, declaraciones de desestructuración y corrutinas.

Cómo recuperar un elemento GoogleMap mediante corrutinas

Se puede obtener el acceso a un elemento GoogleMap mediante corrutinas.

lifecycleScope.launch {
  lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
    val mapFragment: SupportMapFragment? =
      supportFragmentManager.findFragmentById(R.id.map) as? SupportMapFragment
    val googleMap: GoogleMap? = mapFragment?.awaitMap()
  }
}

Cómo agregar un marcador

Puedes agregar un marcador con el método addMarker() de estilo DSL.

val sydney = LatLng(-33.852, 151.211)
val marker = googleMap.addMarker {
  position(sydney)
  title("Marker in Sydney")
}

Cómo recopilar eventos de la cámara

Los eventos, como los movimientos de la cámara, se pueden recopilar mediante el flujo de Kotlin.

lifecycleScope.launch {
  lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
    googleMap.cameraMoveEvents().collect {
      print("Received camera move event")
    }
  }
}

Puedes ver una lista completa de las funciones compatibles en la documentación de referencia.

Prueba la app de muestra

El repositorio de GitHub para esta biblioteca también contiene una app de demo que muestra cómo puedes utilizar la biblioteca Maps KTX en tu propia app.

Para probar la app de demo, sigue estos pasos:

  1. En GitHub, clona o descarga el archivo ZIP.
  2. En Android Studio, elige File -> Open, navega al directorio y abre la carpeta que acabas de clonar o descargar.
  3. Agrega una clave de API a la app de demo.
    1. Obtén una clave del SDK de Maps para Android.
    2. En el directorio raíz, crea un archivo llamado secrets.properties. Este archivo NO debe estar bajo control de versión para proteger tu clave de API.
    3. Agrega esta única línea a secrets.properties
      MAPS_API_KEY="YOUR_API_KEY"
      , donde YOUR_API_KEY es la clave de API real que obtuviste en el primer paso. Puedes consultar secrets.defaults.properties como ejemplo.
  4. En la configuración de ejecución, selecciona el módulo app-ktx.
  5. Selecciona Run 'app-ktx'.

Próximos pasos

Es posible que también te interesen otras bibliotecas de extensiones de Kotlin para Google Maps Platform:

  • KTX para la biblioteca de utilidades del SDK de Maps para Android
  • KTX para el SDK de Places para Android