Maps Android KTX

Maps Android Kotlin 拡張機能(KTX)には、Maps SDK for Android と Maps SDK for Android ユーティリティ ライブラリ用の Kotlin 拡張機能がまとめられています。これらの拡張機能を使用すると、Maps SDK for Android 向けの開発を行う際に、簡潔でわかりやすい Kotlin を作成するための Kotlin 言語機能を利用できます。Maps KTX はオープンソースで、例と合わせて GitHub で入手できます。

インストール

Maps SDK for Android 用と Maps SDK for Android ユーティリティ ライブラリ用(省略可)の KTX をインストールするには、build.gradle ファイルに次の依存関係を追加します。

dependencies {
    // KTX for the Maps SDK for Android
    implementation 'com.google.maps.android:maps-ktx:3.2.1'

    // (Optional) KTX for the Maps SDK for Android Utility Library
    implementation 'com.google.maps.android:maps-utils-ktx:3.2.1'
}

使用例

KTX ライブラリをインストールすると、拡張関数、名前付きパラメータとデフォルト引数、分解宣言、コルーチンなどの便利な Kotlin 言語機能を使用できるようになります。

コルーチンを使用して GoogleMap を取得する

GoogleMap へのアクセスは、コルーチンを使用して取得できます。

lifecycleScope.launchWhenCreated {
  val mapFragment: SupportMapFragment? =
    supportFragmentManager.findFragmentById(R.id.map) as? SupportMapFragment
  val googleMap: GoogleMap? = mapFragment?.awaitMap()
}

マーカーを追加する

マーカーを追加するには、DSL スタイルのメソッドの addMarker() を使用します。

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

カメラ アクティビティを収集する

カメラの移動などのイベントは、Kotlin Flow で収集できます。

lifecycleScope.launchWhenCreated {
  googleMap.cameraMoveEvents().collect {
    print("Received camera move event")
  }
}

対応する機能の一覧は、リファレンス ドキュメントでご確認ください。