RxJava 库

RxJava 是一个反应式编程库,用于通过可观察序列编写异步程序和基于事件的程序。

借助 Maps Rx 库,您可以在 Maps SDK for Android 和 Places SDK for Android 中接收异步事件的可观察序列,以便充分利用 RxJava 的丰富功能。

安装

若要在您的 Google 地图项目中安装 Maps Rx 库,请执行以下操作:

  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 对象的扩展函数:

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
}

后续步骤