ב-Routes Preferred API אפשר לבקש מידע על מצב התנועה לאורך הקו הפוליגוני. מצב התנועה מבוטא במונחים של קטגוריות מהירות (NORMAL, SLOW, TRAFFIC_JAM) שרלוונטיות למרווח זמן נתון של הקו הפוליגוני בתגובה. המרווחים מוגדרים לפי האינדקסים של נקודות ההתחלה (כולל) והסיום (לא כולל) של הקו הפוליגוני.
דוגמה לבקשה
הקו הפוליגוני שמתחשב במצב התנועה זמין גם ברמת המסלול וגם ברמת המקטע.
ברמת המסלול, המידע על מהירות התנועה מופיע בתור SpeedReadingIntervals בשדה התשובה RouteTravelAdvisory.
כדי לקבל מידע על מצב התנועה לצד הקו הפוליגוני של המסלול, צריך לכלול גם את polyline וגם את speedReadingIntervals במסכת השדות של התגובה.
אם מסכת השדות מכילה את הערך routes.legs.travelAdvisory.speedReadingIntervals, התשובה תכיל את נתוני התנועה ברמת המקטע בקטע RouteLegTravelAdvisory.
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals
בקטע בחירת שדות להחזרה מוסבר איך לציין את מסכת השדות של התגובה.
תשובה לדוגמה
כל עוד מבקשים את speedReadingIntervals דרך מסכת השדות, הם מאוכלסים בקטע routes.travelAdvisory.speedReadingIntervals.
התנועה ברמת המקטע זמינה בקטע routes.legs.travelAdvisory.speedReadingIntervals.
כל מרווח מתואר על ידי startPolylinePointIndex, endPolylinePointIndex וקטגוריית המהירות המתאימה.
שימו לב שהיעדר אינדקס התחלה במרווח הזמן תואם לאינדקס 0 בהתאם לשיטות העבודה של proto3.
{ "routes": [ { "legs": { "polyline": { "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD" }, "travelAdvisory": { "speedReadingIntervals": [ { "endPolylinePointIndex": 1, "speed": "NORMAL" }, { "startPolylinePointIndex": 1, "endPolylinePointIndex": 2, "speed": "SLOW" }, { "startPolylinePointIndex": 2, "endPolylinePointIndex": 4, "speed": "NORMAL" } ] } }, "polyline": { "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD" }, "travelAdvisory": { "speedReadingIntervals": [ { "endPolylinePointIndex": 1, "speed": "NORMAL" }, { "startPolylinePointIndex": 1, "endPolylinePointIndex": 2, "speed": "SLOW" }, { "startPolylinePointIndex": 2, "endPolylinePointIndex": 4, "speed": "NORMAL" } ] } } ] }
עיבוד של קווים פוליגוניים עם מידע על מצב התנועה באמצעות Maps SDK
מומלץ להציג במפה קווים פוליגוניים עם מידע על מצב התנועה באמצעות התכונות השונות שזמינות בערכות ה-SDK של מפות Google, כולל צבעים, קווים ודפוסים בהתאמה אישית לאורך הקווים הפוליגוניים. לפרטים נוספים על השימוש בקווים פוליגוניים, ראו תכונות של קווים פוליגוניים ל-Android ותכונות של קווים פוליגוניים ל-iOS.
דוגמה לעיבוד של קו פוליגוני
משתמשי Maps SDK יכולים להגדיר לוגיקת מיפוי מותאמת אישית בין קטגוריות המהירות לבין סכימות העיבוד של הקו הפוליגוני. לדוגמה, אפשר להציג מהירות "רגילה" כקו כחול עבה במפה, ומהירות "איטית" כקו כתום עבה, וכן הלאה.
קטעי הקוד הבאים מוסיפים קו פוליגוני כחול עבה עם קטעים גיאודזיים ממלבורן לפרת'. מידע נוסף זמין במאמרים התאמה אישית של המראה (ל-Android) והתאמה אישית של הקו הפוליגוני (ל-iOS).
Android
Java
Polyline line = map.addPolyline(new PolylineOptions() .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734)) .width(25) .color(Color.BLUE) .geodesic(true));
Kotlin
val line: Polyline = map.addPolyline( PolylineOptions() .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734)) .width(25f) .color(Color.BLUE) .geodesic(true) )
iOS
Objective-C
GMSMutablePath *path = [GMSMutablePath path]; [path addLatitude:-37.81319 longitude:144.96298]; [path addLatitude:-31.95285 longitude:115.85734]; GMSPolyline *polyline = [GMSPolyline polylineWithPath:path]; polyline.strokeWidth = 10.f; polyline.strokeColor = .blue; polyline.geodesic = YES; polyline.map = mapView;
Swift
let path = GMSMutablePath() path.addLatitude(-37.81319, longitude: 144.96298) path.addLatitude(-31.95285, longitude: 115.85734) let polyline = GMSPolyline(path: path) polyline.strokeWidth = 10.0 polyline.geodesic = true polyline.map = mapView