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:
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:19.0.0" implementation 'com.google.android.libraries.places:places:3.5.0' implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
- 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
- Veja a página da biblioteca Maps Rx do projeto no GitHub.
- Consulte a Referência da API da biblioteca Maps Rx.