RxJava היא ספריית תכנות תגובתית לחיבור תוכניות אסינכרוניות ומבוססות אירועים באמצעות רצפים גלויים.
ספריית Maps Rx מאפשרת לקבל רצפים שניתנים לבדיקה של אירועים אסינכרוניים ב-SDK של מפות Google ל-Android וב-Place 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:18.2.0" implementation 'com.google.android.libraries.places:places:3.4.0' implementation 'io.reactivex.rxjava3:rxjava:3.1.8'
- צריך לבנות מחדש את הפרויקט ב-Android Studio כדי לסנכרן את השינויים האלה.
שימוש לדוגמה
מקבלים 'ניתן לצפייה' עבור אירועי קליקים של סמנים כפונקציית תוסף באובייקט Google Map:
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 של ספריית Rx של מפות Google.