Biblioteca RxJava

RxJava es una biblioteca de programación reactiva diseñada para componer programas asíncronos y basados en eventos mediante el uso de secuencias observables.

La biblioteca de Maps Rx te permite recibir secuencias observables para eventos asíncronos en el SDK de Maps para Android y el SDK de Places para Android para que puedas aprovechar el amplio conjunto de funciones de RxJava.

Instalación

Para instalar la biblioteca de Maps Rx en tu proyecto de Google Maps, sigue estos pasos:

  1. Agrega las siguientes dependencias a tu archivo build.gradle a nivel del módulo:

    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. Vuelve a compilar tu proyecto en Android Studio para sincronizar estos cambios.

Ejemplo de uso

Recibes una secuencia observable para eventos de clic en el marcador como una función de extensión en el objeto GoogleMap:

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

En el siguiente ejemplo, se muestra cómo puedes usar el operador RxJava, merge, para combinar varios eventos de la cámara en una sola secuencia observable:

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

Próximos pasos