RxJava – это реактивная библиотека для создания асинхронных и событийных программ с помощью наблюдаемых последовательностей.
Библиотека Maps Rx позволяет получать наблюдаемые последовательности асинхронных событий в Maps SDK и Places SDK для Android и пользоваться широкими возможностями библиотеки RxJava.
Установка
Чтобы установить библиотеку Maps Rx для проекта Google Карт, выполните следующие действия:
Добавьте в файл
build.gradle
на уровне модуля следующие зависимости: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'
- Заново выполните сборку проекта в Android Studio, чтобы синхронизировать эти изменения.
Пример использования
Получение наблюдаемой последовательности кликов по маркеру в качестве расширения объекта GoogleMap:
googleMap.markerClickEvents() .subscribe { marker -> Log.d("MapsRx", "Marker ${marker.title} was clicked") }
В примере ниже показано, как использовать оператор RxJava merge
для объединения разных событий камеры в одну наблюдаемую последовательность:
Observable.merge( googleMap.cameraIdleEvents(), googleMap.cameraMoveEvents(), googleMap.cameraMoveCanceledEvents(), googleMap.cameraMoveStartedEvents() ).subscribe { // Notified when any camera event occurs }
Что дальше
- Посетите страницу проекта Библиотека Maps Rx на GitHub.
- Ознакомьтесь с документацией по API библиотеки Maps Rx.