Biblioteca RxJava

RxJava é uma biblioteca de programação reativa para criar programas assíncronos e com base em eventos usando sequências observáveis.

Com a biblioteca Maps Rx, você recebe sequências observáveis para eventos assíncronos nos SDKs do Maps e do Places para Android. Assim, é possível aproveitar todos os recursos do RxJava.

Instalação

Para instalar a biblioteca Maps Rx no seu projeto do Google Maps, faça o seguinte:

  1. Adicione as seguintes dependências ao arquivo build.gradle do 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. Recrie seu projeto no Android Studio para sincronizar essas mudanças.

Exemplo de uso

Receba uma sequência observável para eventos de clique no marcador como uma função de extensão no objeto GoogleMap:

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

O próximo exemplo mostra como usar o operador RxJava (merge) para combinar vários eventos de câmera em um único fluxo observável:

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

A seguir