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