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

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

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

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

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

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

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

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

צריך להגדיר את computeAlternativeRoutes לערך true כדי לבקש מסלולים חלופיים. הדוגמה הבאה מראה איך מבקשים מסלולים חלופיים בבקשת method 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"
      ]
    }
   ]
}