RxJava è una libreria di programmazione reattiva per la composizione di programmi asincroni e basati su eventi mediante l'utilizzo di sequenze osservabili.
La libreria Maps Rx consente di ricevere sequenze osservabili per eventi asincroni su Maps SDK for Android e Places SDK for Android per sfruttare il ricco set di funzioni RxJava.
Installazione
Per installare la libreria Maps Rx nel tuo progetto Google Maps:
Aggiungi le seguenti dipendenze al file
build.gradle
a livello di modulo: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'
- Ricrea il progetto in Android Studio per sincronizzare queste modifiche.
Esempio di utilizzo
Ricevi un oggetto osservabile per gli eventi di clic sugli indicatori come funzione di estensione nell'oggetto GoogleMap:
googleMap.markerClickEvents() .subscribe { marker -> Log.d("MapsRx", "Marker ${marker.title} was clicked") }
L'esempio successivo mostra come utilizzare l'operatore RxJava, merge
, per combinare
vari eventi della videocamera in un unico stream osservabile:
Observable.merge( googleMap.cameraIdleEvents(), googleMap.cameraMoveEvents(), googleMap.cameraMoveCanceledEvents(), googleMap.cameraMoveStartedEvents() ).subscribe { // Notified when any camera event occurs }
Passaggi successivi
- Visualizza la pagina del progetto GitHub della libreria Maps Rx.
- Visualizza il riferimento dell'API della libreria Maps Rx.