Os waypoints intermediários são locais entre a origem e o destino que você quer que a rota passe. Um waypoint intermediário pode ser uma parada ou pode ser especificado como um local de passagem. Para conferir um exemplo de um ponto de passagem para uma parada, consulte Definir uma parada em uma rota. Para conferir um exemplo de ponto de passagem, acesse Definir ponto de uma rota para passagem.
Use a propriedade de matriz intermediates
do método computeRoutes (REST) ou do método ComputeRoutes (gRPC) para definir até 25 pontos de passagem intermediários.
Para cada waypoint intermediário na solicitação, o objeto de rota (REST) ou o objeto de rota (gRPC) na resposta adiciona uma entrada à matriz legs
para fornecer os detalhes desse trecho da jornada.
Cada trecho de uma rota é representado por um objeto RouteLeg (REST) ou RouteLeg (gRPC).
Controle quais campos RouteLeg
serão retornados 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 passagem intermediário ao corpo da solicitação POST de uma rota.
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": [ { ...