בקשת מסלולים חלופיים

כברירת מחדל, Routes API מחזיר את המסלול ברירת המחדל, שהוא בדרך כלל המסלול המהיר ביותר מהמקור ליעד. כשמבקשים מסלולים חלופיים, ה-API מחזיר עד שלושה מסלולים יחד עם מסלול ברירת המחדל. לאחר מכן, הלקוחות יוכלו לבחור את המסלול שהכי מתאים לדרישות שלהם.

שיקולים בעת בקשת מסלולים חלופיים

כדי לבקש מסלולים חלופיים, חשוב להביא בחשבון את השיקולים הבאים:

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

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

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

בקשה למסלולים חלופיים לדוגמה

כדי לבקש מסלולים חלופיים, צריך להגדיר את computeAlternativeRoutes לערך 'true'. הדוגמה הבאה מציגה איך לבקש מסלולים חלופיים בבקשת שיטה של computeRoutes (REST).

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"
      ]
    }
   ]
}