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 library
    implementation 'com.google.maps.android:maps-ktx:5.0.0'
}

使用例

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

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

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

lifecycleScope.launch {
  lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
    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.launch {
  lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
    googleMap.cameraMoveEvents().collect {
      print("Received camera move event")
    }
  }
}

サポートされている機能の一覧は、リファレンス ドキュメントでご確認いただけます。

サンプル アプリケーションを試す

このライブラリの GitHub リポジトリには、ご所有のアプリ内で Maps KTX ライブラリを使う方法を示すデモ アプリケーションが含まれています。

このデモ アプリケーションを試すには、次の手順を行います。

  1. GitHub で、対象の ZIP ファイルのクローンを作成するか、ファイルをダウンロードします。
  2. Android Studio で [ファイル] -> [開く] を選択し、先ほどクローン作成かダウンロードしたファイルがあるディレクトリに移動して、そのフォルダを開きます。
  3. デモアプリに API キーを追加します。
    1. Maps SDK for Android キーを取得します
    2. ルート ディレクトリで、secrets.properties というファイルを作成します。ご自身の API キーを守るため、このファイルはバージョン管理の対象にしてはいけません。
    3. 次の 1 行を secrets.properties に追加します。
      MAPS_API_KEY="YOUR_API_KEY"
      このコードで YOUR_API_KEY は、最初の手順で取得した実際の API キーです。secrets.defaults.properties は、例としてご覧いただけます。
  4. [設定を実行] で、モジュール app-ktx を選択します。
  5. [app-ktx を実行] を選択します。

次のステップ

Google Maps Platform の次の Kotlin 拡張機能についても、利用をご検討ください。

  • Map SDK for Android ユーティリティ ライブラリ用 KTX
  • Places SDK for Android 用 KTX