Os waypoints intermediários são locais entre a origem e o destino que você quer que o trajeto passe. Um waypoint intermediário pode ser uma parada ou você pode especificá-lo como um local de passagem. Para ver um exemplo de ponto de referência para uma parada, consulte Definir uma parada ao longo de um trajeto. Para um exemplo de ponto de passagem, Definir ponto para uma rota de passagem.
Use a propriedade de matriz intermediates
do método computeRoutes (REST) ou ComputeRoutes (gRPC) para definir até 25 pontos de parada intermediários.
Para cada ponto de parada intermediário na solicitação, o objeto Route (REST) ou objeto Route (gRPC) na resposta adiciona uma entrada à matriz legs
para fornecer os detalhes desse trecho da viagem.
Cada trecho de um trajeto é representado por um objeto RouteLeg (REST) ou RouteLeg (gRPC).
Controle quais campos RouteLeg
retornar usando a
máscara de campo de resposta.
Exemplo: definir um waypoint intermediário
O exemplo a seguir usa a propriedade de matriz intermediates
para adicionar um único
ponto de parada intermediário ao corpo da solicitação POST de um trajeto.
Este exemplo usa uma máscara de campo de resposta no cabeçalho X-Goog-FieldMask
que especifica o retorno dos seguintes campos na resposta:
routes.duration
routes.distanceMeters
routes.legs
correspondente a todo o objetoRouteLeg
.
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'
A resposta dessa chamada contém a matriz legs
. Cada etapa do trecho é representada por um objeto RouteLegStep (REST) ou 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": [ { ...