Punkty pośrednie to lokalizacje między miejscem wyjazdu a miejscem docelowym, przez które ma przebiegać trasa. Punkt pośredni może być przystankiem lub możesz go określić jako miejsce, przez które chcesz przejeżdżać. Przykład punktu drogi dla przystanku znajdziesz w artykule Ustawianie przystanku na trasie. Przykład punktu pośredniego na trasie: Ustawianie punktu pośredniego na trasie.
Użyj właściwości tablicy intermediates
metody computeRoutes (REST) lub ComputeRoutes (gRPC), aby zdefiniować maksymalnie 25 punktów pośrednich.
W przypadku każdego pośredniego punktu pośredniego w żądaniu obiekt Route (REST) lub obiekt Route (gRPC) w odpowiedzi dodaje wpis do tablicy legs
, aby podać szczegóły tego etapu podróży.
Każdy odcinek trasy jest reprezentowany przez obiekt RouteLeg (REST) lub RouteLeg (gRPC).
Aby określić, które pola RouteLeg
mają być zwracane, użyj maski pola odpowiedzi.
Przykład: ustawianie punktu pośredniego na trasie
W tym przykładzie użyto właściwości tablicy intermediates
, aby dodać pojedynczy punkt pośredni do treści żądania POST dotyczącego trasy.
W tym przykładzie w nagłówku X-Goog-FieldMask
użyto maski pola odpowiedzi, która określa, aby w odpowiedzi zwracać te pola:
routes.duration
routes.distanceMeters
routes.legs
odpowiadający całemu obiektowiRouteLeg
.
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'
Odpowiedź na to wywołanie zawiera tablicę legs
. Każdy krok etapu jest reprezentowany przez obiekt RouteLegStep (REST) lub 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": [ { ...