הגדרת נקודה להעברת מסלול

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

מסלול שכולל ציון דרך במקור, נקודת ביניים וציון דרך ליעד, כולל רק דרך אחת במסלול שמחברת בין המוצא ליעד, בזמן המעבר דרך הביניים (שנקרא via).

כדי להגדיר ציון דרך ביניים כציון דרך לצורך מעבר, מגדירים את המאפיין via של ציון הדרך כ-true באמצעות Waypoint (‏REST) או Waypoint (‏gRPC).

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

הדוגמה הבאה מראה איך לסמן נקודת ציון ביניים בתור נקודת ציון מעבר.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

גישה למזהי המקומות של נקודות ציון ביניים

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

לכל רכיב במערך intermediates, משתמשים במאפיין intermediateWaypointRequestIndex כדי לקבוע איזה ציון דרך ביניים בבקשה תואם למזהה המקום בתגובה.

לדוגמה:

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

  • כוללים את geocodingResults במסכה של שדה התשובה כדי לציין שתחזיר את המערך geocodingResults בתוצאות.

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA"
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063"
    }
  ],
  "travelMode": "DRIVE",
}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults'
'https://routes.googleapis.com/directions/v2:computeRoutes'

התשובה כוללת את המערך geocodingResults שמכיל את מזהה המיקום של נקודת המוצא, היעד ושני מתוך שלושת נקודות הציון. אלה נקודות הציון באינדיקטורים 0 ו-2 בבקשה. מכיוון שציון הדרך באינדקס 1 של הבקשה צוין באמצעות קואורדינטות של קו רוחב/קו אורך, הוא הושמט ממערך geocodingResults בתגובה.

{
  "routes": [{...}],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
     "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
            "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}