Bibliothèque RxJava

RxJava est une bibliothèque de programmation réactive qui permet de rédiger des programmes asynchrones et basés sur des événements à l'aide de séquences observables.

La bibliothèque Maps Rx vous permet de recevoir des séquences observables pour les événements asynchrones dans le SDK Maps pour Android et dans le SDK Places pour Android. Vous pouvez ainsi bénéficier de l'ensemble complet des fonctionnalités RxJava.

Installation

Pour installer la bibliothèque Maps Rx dans votre projet Google Maps :

  1. Ajoutez les dépendances suivantes à votre fichier build.gradle au niveau du module :

    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. Recréez votre projet dans Android Studio pour synchroniser ces modifications.

Exemple d'utilisation

Recevez un événement observable pour les événements de clic sur un repère en tant que fonction d'extension sur l'objet GoogleMap :

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

L'exemple suivant montre comment utiliser l'opérateur RxJava merge pour combiner plusieurs événements de caméra dans un seul flux observable :

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

Étapes suivantes