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:
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:19.0.0" implementation 'com.google.android.libraries.places:places:3.5.0' implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
- 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
- Consulta la página del proyecto de GitHub de la biblioteca de Maps Rx.
- Consulta la referencia de la API de la biblioteca de Maps Rx.