RxJava ライブラリ

RxJava は、観測可能なシーケンスを使って非同期かつイベントベースのプログラムを記述するための、リアクティブ プログラミング ライブラリです。

Maps Rx ライブラリを使用すると、Maps SDK for Android と Places SDK for Android の非同期イベントの観測可能なシーケンスを取得して、RxJava の豊富な機能を活用できるようになります。

インストール

Google マップ プロジェクトに Maps Compose ライブラリをインストールする方法は、次のとおりです。

  1. モジュール レベルの build.gradle ファイルに次の依存関係を追加します。

    dependencies {
        // RxJava bindings for the Maps SDK
        implementation 'com.google.maps.android:maps-rx:1.0.0'
    
        // RxJava bindings for the Places SDK
        implementation 'com.google.maps.android:places-rx:1.0.0'
    
        // It is recommended to also include the latest Maps SDK, Places SDK and RxJava so you
        // have the latest features and bug fixes.
        implementation "com.google.android.gms:play-services-maps:18.2.0"
        implementation 'com.google.android.libraries.places:places:3.4.0'
        implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
    
  2. Android Studio でプロジェクトを再ビルドして、これらの変更を同期します。

使用例

GoogleMap オブジェクトの拡張関数として、マーカー クリック イベントの「Observable」を受け取る:

googleMap.markerClickEvents()
  .subscribe { marker ->
    Log.d("MapsRx", "Marker ${marker.title} was clicked")
  }

次の例は、RxJava 演算子 merge を使用して、さまざまなカメライベントを単一の観測可能なストリームにまとめる方法を示しています。

Observable.merge(
  googleMap.cameraIdleEvents(),
  googleMap.cameraMoveEvents(),
  googleMap.cameraMoveCanceledEvents(),
  googleMap.cameraMoveStartedEvents()
).subscribe {
  // Notified when any camera event occurs
}

次のステップ