נקודות ציון ביניים הן מיקומים בין המוצא ליעד שרוצים שהמסלול יעבור דרכם. נקודת ציון ביניים יכולה להיות עצירה, או שאפשר לציין אותה כמיקום שצריך לעבור דרכו. דוגמה לנקודת ציון של עצירה מפורטת במאמר הגדרת עצירה במסלול. לדוגמה של נקודת ציון לצורך מעבר, ראו הגדרת נקודה לצורך מעבר בנתיב.
אפשר להשתמש במאפיין המערך intermediates
של השיטה computeRoutes (ב-REST) או של השיטה ComputeRoutes (ב-gRPC) כדי להגדיר עד 25 נקודות דרך ביניים.
לכל נקודת ציון ביניים בבקשה, אובייקט המסלול (ב-REST) או אובייקט המסלול (ב-gRPC) בתגובה מוסיפים רשומה למערך legs
כדי לספק את הפרטים של קטע המסלול הזה.
כל מקטע במסלול מיוצג על ידי אובייקט RouteLeg (ב-REST) או RouteLeg (ב-gRPC).
כדי לקבוע אילו שדות RouteLeg
יוחזרו, משתמשים במסכת שדה התגובה.
דוגמה – הגדרת ציון דרך ביניים
בדוגמה הבאה נעשה שימוש במאפיין המערך intermediates
כדי להוסיף נקודת ציון ביניים אחת לגוף הבקשה של POST של מסלול.
בדוגמה הזו נעשה שימוש במסכת שדה תגובה בכותרת X-Goog-FieldMask
שמציינת שהשדות הבאים יוחזרו בתגובה:
routes.duration
routes.distanceMeters
routes.legs
שתואם לכל אובייקטRouteLeg
.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } }, "sideOfRoad": true }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "departureTime": "2022-10-15T15:01:23.045123456Z", "computeAlternativeRoutes": false, "routeModifiers": { "avoidTolls": false, "avoidHighways": false, "avoidFerries": false }, "languageCode": "en-US", "units": "IMPERIAL" }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' 'https://routes.googleapis.com/directions/v2:computeRoutes'
התשובה מהקריאה הזו מכילה את המערך legs
. כל שלב במסלול מיוצג באובייקט RouteLegStep (ב-REST) או RouteLegStep (ב-gRPC).
{ "routes": [ { "legs": [ # First leg { "distanceMeters": 207, "duration": "89s", "staticDuration": "89s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "steps": [ { "distanceMeters": 21, "staticDuration": "6s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.41954, "longitude": -122.08262750000002 } } }, ... }, # Second leg { "distanceMeters": 598, "duration": "159s", "staticDuration": "159s", "polyline": { "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?" }, "startLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "endLocation": { "latLng": { "latitude": 37.417616599999995, "longitude": -122.07938820000001 } }, "steps": [ { ...