ממשק 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