בקשת מידע על תנועה בקו מרובה

באמצעות 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"
          }
        ] 
      }
    }
  ]
}

עיבוד פוליגונים עם התחשבות בתנועה באמצעות SDK של מפות

מומלץ להציג במפה קווים פוליגונים עם התראות על עומסי תנועה באמצעות התכונות השונות שמוצעות ב-Google Maps SDK, כולל צביעה בהתאמה אישית, קווים ודפוסים לאורך הקווים הפוליגונים. מידע נוסף על שימוש בקוים פוליגונים זמין במאמרים תכונות של קווים פוליגונים ל-Android ותכונות של קווים פוליגונים ל-iOS.

דוגמה לעיבוד של קו פוליגוני

למשתמשים ב-SDK של מפות Google יש הזדמנות להגדיר לוגיקת מיפוי מותאמת אישית בין קטגוריות המהירות לסכימות העיבוד של קווים פוליגוניים. לדוגמה, אפשר להציג מהירות 'רגילה' כקו כחול עבה במפה, מהירות 'איטית' כקו כתום עבה וכן הלאה.

קטעי הקוד הבאים מוסיפים קו פוליגוני כחול ועבה עם פלחים גיאודזיים ממלבורן עד פרת'. מידע נוסף זמין במאמרים התאמה אישית של תצוגות (ל-Android) והתאמה אישית של קו ה-Polyline (ל-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