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

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

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

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

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

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

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

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

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