کتابخانه RxJava

RxJava یک کتابخانه برنامه نویسی واکنشی برای نوشتن برنامه های ناهمزمان و مبتنی بر رویداد با استفاده از توالی های قابل مشاهده است.

کتابخانه Maps Rx به شما امکان می‌دهد توالی‌های قابل مشاهده را برای رویدادهای ناهمزمان در Maps SDK برای Android و Places SDK برای Android دریافت کنید تا بتوانید از مجموعه غنی ویژگی‌های RxJava استفاده کنید.

نصب و راه اندازی

برای نصب کتابخانه Maps Rx در پروژه Google Maps:

  1. وابستگی های زیر را به فایل 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:18.2.0"
        implementation 'com.google.android.libraries.places:places:3.4.0'
        implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
    
  2. برای همگام سازی این تغییرات، پروژه خود را در Android Studio بازسازی کنید.

مثال استفاده

یک Observable برای رویدادهای کلیک نشانگر به عنوان یک تابع افزونه در شی 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
}

بعدش چی