כברירת מחדל, Routes API מחזיר את המסלול שמוגדר כברירת מחדל, שהוא בדרך כלל המסלול המהיר ביותר מהמוצא ליעד. כשמבקשים מסלולים חלופיים, ה-API מחזיר עד שלושה מסלולים יחד עם המסלול שמוגדר כברירת מחדל. לאחר מכן, הלקוחות יוכלו לבחור את המסלול שמתאים ביותר לדרישות שלהם.
שיקולים שצריך לקחת בחשבון כשמבקשים מסלולים חלופיים
כדי לבקש מסלולים חלופיים, חשוב לשים לב לשיקולים הבאים:
אפשר לבקש מסלולים חלופיים רק למסלולים ללא נקודות ציון ביניים. שליחת בקשה למסלולים חלופיים כשהמסלול מציין נקודות ציון ביניים לא גורמת לשגיאה. עם זאת, לא יוחזרו מסלולים חלופיים.
התשובה מכילה עד שלושה מסלולים חלופיים. עם זאת, לפעמים אין מסלולים חלופיים זמינים, ולכן התגובה מכילה רק את נתיב ברירת המחדל.
בגלל העיבוד הנוסף שנדרש כדי לחשב מסלולים חלופיים, הבקשה למסלולים חלופיים עשויה להגדיל את זמן התגובה של ה-API.
דוגמה לבקשה למסלולים חלופיים
כדי לבקש מסלולים חלופיים, מגדירים את computeAlternativeRoutes
כ-true
. בדוגמה הבאה מוסבר איך לבקש מסלולים חלופיים בבקשה ל-method (REST) computeRoutes.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
בדוגמה הזו, מציינים מסכת שדה כך שהתגובה תכלול רק את המאפיינים duration
, distanceMeters,
ו-routeLabels
לכל מסלול. לאחר מכן, הלקוח יוכל להשתמש במידע הזה כדי לבחור את המסלול הרצוי. מידע נוסף זמין במאמר בחירת המידע שיוחזר.
דוגמה לתשובה לגבי מסלולים חלופיים
בתגובה, משתמשים במאפיין המערך routeLabels
כדי לזהות את מסלול החשיפה:
בנתיב ברירת המחדל, המאפיין
routeLabels
מכיל את הערךDEFAULT_ROUTE
.בכל מסלול חלופי, המאפיין
routeLabels
מכיל את הערךDEFAULT_ROUTE_ALTERNATE
.
בדוגמה הזו, התשובה כוללת את מסלול ברירת המחדל ושני מסלולים חלופיים. שימו לב שהערכים של המאפיינים duration
ו-distanceMeters
שונים בכל מסלול:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
הכללת קווים מרובים בתגובה
כדי להקל על המשתמש לבחור את המסלול, מוסיפים לתגובה את קו הפוליגון של כל מסלול. לאחר מכן תוכלו להציג כל קו פוליגון במפה.
כדי להוסיף את קו הפוליגון, צריך לכלול את הערך routes.polyline
במסכת השדה:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
התשובה תכלול את הקו המורכב מכל נקודות המסלול לכל מסלול:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }