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

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

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

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

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

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

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