مكتبة RxJava

RxJava هي مكتبة برمجة تفاعلية لإنشاء برامج غير متزامنة قائمة على الأحداث باستخدام تسلسلات يمكن ملاحظتها.

تسمح لك مكتبة Rx للخرائط بتلقّي تسلسلات يمكن ملاحظتها للأحداث غير المتزامنة، على حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل Android وحزمة تطوير البرامج لتطبيق "الأماكن" لنظام التشغيل Android حتى تتمكّن من الاستفادة من المجموعة الغنية من ميزات RxJava.

تثبيت

لتثبيت مكتبة Maps Rx في مشروع خرائط Google:

  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" لمزامنة هذه التغييرات.

مثال على الاستخدام

تلقي دالة قابلة للملاحظة لأحداث النقر على العلامة كدالة إضافة على كائن 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
}

الخطوات التالية