כברירת מחדל, נקודות דרך ביניים משמשות לעצירה לצורך איסוף ופריקה, אבל אפשר גם לציין שנקודת דרך ביניים מיועדת רק לצורך מעבר.
מסלול שמכיל נקודת ציון להתחלה, נקודת ציון ביניים לצורך מעבר ונקודת ציון ליעד מכיל רק מקטע אחד של מסלול שמחבר את נקודת ההתחלה לנקודת היעד, תוך מעבר דרך נקודת הציון הביניים (שנקראת 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" } ] } }