Punkty pośrednie to lokalizacje między miejscem początkowym a docelowym, przez które ma przebiegać trasa. Punkt pośredni może być przystankiem lub możesz go wskazać jako miejsce, przez które chcesz przejechać. Przykład punktu pośredniego będącego przystankiem znajdziesz w artykule Ustawianie przystanku na trasie. Przykład punktu pośredniego jako miejsca, przez które chcesz przejechać, znajdziesz w artykule Ustawianie punktu, przez który ma przebiegać trasa.
Aby zdefiniować punkty pośrednie na trasie (maksymalnie 25), użyj właściwości tablicy intermediates metody computeRoutes (REST) lub metody ComputeRoutes (gRPC).
W przypadku każdego punktu pośredniego w żądaniu obiekt Route (REST) lub obiekt Route (gRPC) w odpowiedzi dodaje wpis do tablicy legs, aby podać szczegóły danego etapu podróży.
Każdy etap trasy jest reprezentowany przez obiekt RouteLeg (REST) lub RouteLeg (gRPC).
Pola RouteLeg, które mają zostać zwrócone, możesz określić, używając maski pola odpowiedzi.
Przykład – ustawianie punktu pośredniego
W tym przykładzie użyto właściwości tablicy intermediates, aby dodać do treści żądania POST dotyczącego trasy pojedynczy punkt pośredni.
W tym przykładzie używamy maski pola odpowiedzi w nagłówku X-Goog-FieldMask, która określa, że w odpowiedzi mają być zwracane te pola:
routes.durationroutes.distanceMetersroutes.legsodpowiadające 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 etap trasy 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": [ { ...