להשתמש ב-Routes API כדי לחשב את המרחק ואת משך המסלול מקורות ויעדים מרובים באמצעות שליחת קריאה שיטת computeRouteMatrix (REST) או בסטרימינג ComputeRouteMatrix method (gRPC).
בהינתן רשימת נקודות מוצא ויעדים, השיטה מחשב את המרחק ומשך הזמן של מסלול החל מכל נקודת מוצא והוא מסתיים בכל יעד.
הצגת מטריצה של מסלול תחבורה ציבורית
ניתן גם לחשב מטריצת מסלול בתחבורה ציבורית. עבור לדוגמה, ראו הצגת מטריצת מסלול בתחבורה ציבורית.
מגבלות של בקשות
ה-methods של מטריצת המסלול של Compute אוכפות את הבקשה הבאה מגבלות על ציוני דרך באמצעות כתובות או מזהי מקומות, ועל רכיבים. הרכיבים הם את המסלולים בין כל מוצא ויעד במטריצת מסלולים, כך שהמספר הרכיבים הוא מספר המקורות פעמים מספר היעדים. עבור לדוגמה, אם יש לכם 10 מקורות ו-10 יעדים, יש לכם 100 רכיבים:
מספר הרכיבים לא יכול לחרוג מ-625 למסלולים שאינם
TRANSIT
נתיבים.אם מציינים נתיב
TRANSIT
, מספר הרכיבים לא יכול לעלות 100.אם מציינים
TRAFFIC_AWARE_OPTIMAL
, מספר הרכיבים לא יכול להיות יותר מ-100. מידע נוסף עלTRAFFIC_AWARE_OPTIMAL
זמין במאמר מציינים איך ואם רוצים לכלול נתוני תנועה.אם מציינים מקורות או יעדים באמצעות כתובת או מזהה מקום, אתם מציינים עד 50 סה"כ בדרך הזו.
שגיאות בתשובה
אחת התכונות של ה-methods של מטריצת המסלול ב-Compute היא ששגיאות יוחזרו עבור כל התשובה או עבור רכיבי תשובה בודדים. לדוגמה, התגובה כולה תכיל שגיאה אם הבקשה כתובה בתבנית שגויה (לדוגמה, יש לו אפס מקורות).
אבל אם חלה שגיאה על קבוצת משנה של בתשובה (לדוגמה, לא ניתן לחשב מסלול עבור שילוב של מוצא ויעד), ואז רק הרכיבים שמושפעים יחזיר קוד שגיאה.
תוצאות של עדכוני gRPC
קובץ ComputeRouteMatrix שיטת gRPC מקבלת רשימת מקורות ויעדים ומחזירה שידור שמכיל מידע על המסלול לכל שילוב של נקודת מוצא ויעד. מכיוון שהתוצאות מוחזרות כזרם, אין צורך להמתין עד יהיה חישוב של שילובי מסלולים אפשריים לפני שתוכלו להתחיל לעבד תוצאות.
אין ערובה לכך שהרכיבים שהוחזרו על ידי הסטרימינג יוחזרו בכל
הזמנה. לכן, כל רכיב תגובה מכיל origin_index
ו-
destination_index
. לגבי המקורות והיעדים שצוינו בבקשה,
מקור המסלול שווה ל-origins[origin_index]
לרכיב נתון
ויעד המסלול שווה ל-destinations[destination_index]
.
המערכים האלה נוספים אפס באינדקס. חשוב לאחסן את נתוני המקור
הזמנות של רשימות יעדים.
דוגמאות של מטריצת מסלול
משתמשים ב-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. הג'אווה בדוגמה שבדף הזה קוראת גם ל-Compute Routes וגם ל- מטריצת מסלולי המחשוב.