קבלת מטריצת מסלול

אפשר להשתמש ב-Routs API כדי לחשב את המרחק ואת משך הזמן של מסלול במספר מקורות ויעדים, באמצעות קריאה לשיטה computeRouteMatrix (REST) או לשיטת ComputeRouteMatrix של הסטרימינג (gRPC).

בעזרת רשימת נקודות המוצא והיעדים, השיטה מחשבת את המרחק ואת משך המסלול שמתחיל בכל נקודת מוצא ומסתיים בכל יעד.

קבלת מטריצה של מסלול תחבורה ציבורית

ניתן גם לחשב מטריצת מסלולים במעבר. לדוגמה, ראו קבלת מטריצת מסלולים בתחבורה ציבורית.

מגבלות של בקשות

השיטות של מטריצת Compute Route אוכפות את מגבלות הבקשות הבאות על ציוני דרך באמצעות כתובות או מזהי מיקום, ועל רכיבים. אלמנטים הם המסלולים בין כל נקודת מוצא ליעד במטריצת מסלולים, כך שמספר הרכיבים הוא מספר מקורות הכפולות במספר היעדים. לדוגמה, במקרה שיש 10 מקורות ו-10 יעדים, יש 100 רכיבים:

  • מספר הרכיבים לא יכול לחרוג מ-625 למסלולים שאינם TRANSIT.

  • אם מציינים נתיב מסוג TRANSIT, מספר הרכיבים לא יכול לחרוג מ-100.

  • אם מציינים TRAFFIC_AWARE_OPTIMAL, מספר הרכיבים לא יכול לחרוג מ-100. למידע נוסף על TRAFFIC_AWARE_OPTIMAL ראו את המאמר איך לכלול נתוני תנועה ואם לכלול אותם.

  • אם מציינים מקורות או יעדים באמצעות כתובת או מזהה מקום, אפשר לציין באופן הזה עד 50 אתרים בסך הכול.

שגיאות בתגובות

אחת התכונות של שיטות מטריצת Compute Route היא שאפשר להחזיר שגיאות לכל התגובה או לרכיבי תגובה ספציפיים. לדוגמה, התשובה המלאה מכילה שגיאה במקרה שהיא לא תקינה (למשל, אין לה מקורות).

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

תוצאות של מקור הנתונים ב-gRPC

השיטה ComputeRouteMatrix gRPC מקבלת רשימה של מקורות ויעדים, ומחזירה זרם שמכיל פרטי מסלול לכל שילוב של מוצא ויעד. מכיוון שהתוצאות מוחזרות בתור זרם, לא צריך לחכות עד שכל שילובי המסלולים האפשריים יחושבו לפני שתוכל להתחיל לעבד את התוצאות.

לא בטוח שהרכיבים שמוחזרים על ידי השידור יוחזרו בכל סדר שהוא. לכן, כל רכיב תגובה מכיל origin_index וגם destination_index. למקורות וליעדים שצוינו בבקשה, מוצא המסלול שווה ל-origins[origin_index] עבור רכיב נתון, והיעד של המסלול שווה ל-destinations[destination_index]. המערכים האלה לא נוספים לאינדקס. חשוב לאחסן את ההזמנות של רשימות המוצא ורשימת היעד.

חישוב של דוגמאות למטריצת מסלולים

משתמשים ב-method computeRouteMatrix בבקשת HTTP כדי לחשב מטריצת מסלולים.

דוגמה ל-HTTP

בדוגמה הבאה מוצגת בקשת HTTP מסוג computeRouteMatrix. בדוגמה הזו:

  • צריך לציין מערך של שתי ציוני דרך לפי מקור ושתי ציוני דרך ביעד. השיטה מחשבת מסלול מכל נקודת מוצא לכל יעד, כך שהתגובה מכילה ארבעה מסלולים.

    במערך, הרכיב הראשון נמצא באינדקס של 0, השני הוא אינדקס 1 וכן הלאה.

  • צריך לכלול אנונימיזציה של שדות התשובה כדי לציין אילו שדות מהתגובה (REST) או ComputeRoutesResponse (gRPC) להחזיר. בדוגמה הזו, מגדירים את הבקשה להחזיר את originIndex, destinationIndex, duration, distanceMeters, status ו-condition לכל מסלול. מידע נוסף זמין במאמר בחירת שדות להחזרה.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

התשובה מכילה את ארבעת המסלולים האפשריים לשילוב של כל ציוני הדרך בנקודת המוצא וביעד.

מזהים כל מסלול בתגובה באמצעות שדות התגובה originIndex ו-destinationIndex. לדוגמה, originIndex בתשובה של 1 תואם למסלול שמחושב מנקודת הדרך באינדקס 1 של מערך origins בבקשה.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

דוגמאות ל-gRPC

לדוגמה בקשות gRPC, ראו את הדוגמאות בבקשת gRPC לדוגמה. בדוגמה של Java בדף הזה מתבצעת קריאה גם ל-Compute Routes וגם למטריצת Compute Route.