RxJava 程式庫
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
RxJava 是一種回應式程式設計庫,能夠以可觀察序列編寫非同步和事件型程式。
Maps Rx 程式庫可讓您在 Maps SDK for Android 和 Places SDK for Android 中接收非同步事件的可觀察序列,以便充分運用豐富的 RxJava 功能。
安裝
如要在 Google 地圖專案中安裝 Maps Rx 程式庫,請按照下列步驟操作:
將以下依附元件加進模組層級 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
}
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-08-13 (世界標準時間)。
[null,null,["上次更新時間:2024-08-13 (世界標準時間)。"],[[["\u003cp\u003eThe Maps Rx library enables the use of RxJava with the Maps SDK and Places SDK for Android to handle asynchronous events.\u003c/p\u003e\n"],["\u003cp\u003eIt provides observable sequences for events like marker clicks and camera movements, allowing developers to leverage RxJava features.\u003c/p\u003e\n"],["\u003cp\u003eYou can install the library by adding specific dependencies to your \u003ccode\u003ebuild.gradle\u003c/code\u003e file and rebuilding your project.\u003c/p\u003e\n"],["\u003cp\u003eThe library offers extension functions and operators to simplify the integration of RxJava with Google Maps functionality.\u003c/p\u003e\n"]]],["The Maps Rx library, designed for use with RxJava, allows developers to receive observable sequences for asynchronous events on the Maps SDK and Places SDK for Android. To install, add dependencies for `maps-rx`, `places-rx`, and the latest `Maps SDK`, `Places SDK`, and `RxJava` to the `build.gradle` file, then rebuild the project. Developers can subscribe to events, like marker clicks, using extension functions. The library also supports merging multiple event types, such as various camera events, into a single observable stream using RxJava operators.\n"],null,["RxJava is a reactive programming library for composing asynchronous and event-based programs by\nusing observable sequences.\n\nThe [Maps Rx library](https://github.com/googlemaps/android-maps-rx)\nlets you receive observable sequences for asynchronus events on the Maps SDK for Android\nand Places SDK for Android so you can take advantage of the rich set of RxJava features.\n\nInstallation **Note:** See the [Maps Rx library](https://github.com/googlemaps/android-maps-rx) documentation on GitHub for the latest system requirements and installation instructions.\n\nTo install the Maps Rx library in your Google Maps project:\n\n1. Add the following dependencies to your module-level `build.gradle` file:\n\n ```yaml\n dependencies {\n // RxJava bindings for the Maps SDK\n implementation(\"com.google.maps.android:maps-rx:1.0.0\")\n\n // RxJava bindings for the Places SDK\n implementation(\"com.google.maps.android:places-rx:1.0.0\")\n\n // It is recommended to also include the latest Maps SDK, Places SDK and RxJava so you\n // have the latest features and bug fixes.\n implementation(\"com.google.android.gms:play-services-maps:19.2.0\")\n implementation(\"com.google.android.libraries.places:places:4.4.1\")\n implementation(\"io.reactivex.rxjava3:rxjava:3.1.11\")\n ```\n2. Rebuild your project in Android Studio to sync these changes.\n\nExample Usage\n\nReceive an Observable for marker click events as an extension function on the GoogleMap object: \n\n```yaml\ngoogleMap.markerClickEvents()\n .subscribe { marker -\u003e\n Log.d(\"MapsRx\", \"Marker ${marker.title} was clicked\")\n }\n```\n\nThe next example shows you how you can use the RxJava operator, `merge`, to combine\nvarious camera events into a single Observable stream: \n\n```yaml\nObservable.merge(\n googleMap.cameraIdleEvents(),\n googleMap.cameraMoveEvents(),\n googleMap.cameraMoveCanceledEvents(),\n googleMap.cameraMoveStartedEvents()\n).subscribe {\n // Notified when any camera event occurs\n}\n```\n\nWhat's next\n\n- View the [Maps Rx library](https://github.com/googlemaps/android-maps-rx) GitHub project page.\n- View the [Maps Rx library API reference](https://googlemaps.github.io/android-maps-rx/)."]]