Biblioteka RxJava

RxJava to biblioteka programowania reaktywnego do tworzenia programów asynchronicznych i opartych na zdarzeniach przy użyciu obserwowalnych sekwencji.

Biblioteka Maps Rx umożliwia odbieranie obserwowalnych sekwencji zdarzeń asynchronicznych w pakietach Maps SDK na Androida i Places SDK na Androida, dzięki czemu możesz korzystać z bogatego zestawu funkcji RxJava.

Instalacja

Aby zainstalować bibliotekę Maps Rx w projekcie Map Google:

  1. Dodaj te zależności do pliku build.gradle na poziomie modułu:

        dependencies {
        // RxJava bindings for the Maps SDK
        implementation(libs.maps.rx)
    
        // RxJava bindings for the Places SDK
        implementation(libs.places.rx)
    
        // 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:20.0.0")
        implementation("com.google.android.libraries.places:places:5.3.0")
        implementation("io.reactivex.rxjava3:rxjava:3.1.12")

  2. Aby zsynchronizować te zmiany, ponownie skompiluj projekt w Android Studio.

Przykład użycia

Odbieraj Observable dla zdarzeń kliknięcia znacznika jako funkcję rozszerzenia obiektu GoogleMap:

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

Użyj operatora RxJava merge, aby połączyć różne zdarzenia kamery w jeden strumień Observable:

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

Co dalej?