הצגת מסלולים חלופיים

מפתחים באזור הכלכלי האירופי (EEA)

כברירת מחדל, ה-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"
      ]
    }
   ]
}