ממשק 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
מומלץ להציג במפה קווים פוליגוניים עם נתוני תנועה באמצעות התכונות השונות שמוצעות ב-Google Maps SDKs, כולל צביעה, קווים ודפוסים מותאמים אישית לאורך הקווים הפוליגוניים. למידע נוסף על השימוש בקווי פוליגון, אפשר לעיין במאמרים תכונות של קווי פוליגון ב-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