Android KTX do Maps

As extensões Kotlin (KTX) do Maps para Android são um conjunto de extensões Kotlin do SDK do Maps para Android e da biblioteca de utilitários desse SDK. Essas extensões oferecem recursos de linguagem Kotlin que permitem escrever códigos de maneira concisa e natural quando você desenvolve para o SDK em questão. O KTX do Maps é de código aberto e está disponível no GitHub (em inglês) com alguns exemplos.

Instalação

Se você quiser instalar o KTX no SDK do Maps para Android e na biblioteca de utilitários desse SDK, adicione as seguintes dependências ao arquivo build.gradle:

dependencies {

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

Exemplos de uso

Com a biblioteca KTX, você pode usar vários recursos da linguagem Kotlin, como funções de extensão, argumentos padrão e parâmetros nomeados, declarações de desestruturação e corrotinas.

Acessar um GoogleMap usando corrotinas

É possível recuperar o acesso a um parâmetro GoogleMap usando corrotinas.

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

Adicionar um marcador

Para adicionar um marcador, use o método addMarker() no estilo DSL.

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

Coletar eventos da câmera

Para coletar eventos, como movimentos de câmera, use o fluxo do Kotlin.

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

Na documentação de referência há uma lista completa dos recursos compatíveis.

Testar o exemplo de aplicativo

No repositório do GitHub desta biblioteca há um aplicativo de demonstração ensinando como usar a biblioteca KTX do Maps no seu app.

Para testar a demonstração, siga estas etapas:

  1. Acesse o GitHub e copie ou faça download do arquivo ZIP.
  2. No Android Studio, escolha File -> Open, acesse o diretório e abra a pasta copiada ou baixada.
  3. Adicione uma chave de API ao app de demonstração.
    1. Gere uma chave do SDK do Maps para Android.
    2. No diretório raiz, crie um arquivo e dê o nome de secrets.properties. Para proteger sua chave de API, ele NÃO pode estar sujeito ao controle de versões.
    3. Adicione esta linha a secrets.properties
      MAPS_API_KEY="YOUR_API_KEY"
      YOUR_API_KEY é a chave de API obtida na primeira etapa. Um exemplo é o secrets.defaults.properties.
  4. Na configuração de execução, selecione o módulo app-ktx.
  5. Selecione Run 'app-ktx'.

A seguir

Existem mais bibliotecas de extensão em Kotlin para a Plataforma Google Maps que talvez sejam do seu interesse:

  • KTX para a biblioteca de utilitários do SDK do Maps para Android
  • KTX para o SDK do Places para Android