Por padrão, a API Routes retorna o trajeto padrão, que geralmente é o mais rápido da origem ao destino. Quando você solicita trajetos alternativos, a API retorna até três trajetos, além do padrão. Seus clientes podem escolher o trajeto que melhor atende às necessidades deles.
Considerações ao solicitar rotas alternativas
Para solicitar rotas alternativas, considere o seguinte:
A resposta contém no máximo três rotas alternativas. No entanto, às vezes não há rotas alternativas disponíveis, então a resposta contém apenas a rota padrão.
Devido ao processamento extra necessário para calcular rotas alternativas, solicitar essas rotas pode aumentar o tempo de resposta da API.
Exemplo de solicitação de rotas alternativas
Defina computeAlternativeRoutes como true para solicitar rotas alternativas. O exemplo a seguir mostra como solicitar rotas alternativas em uma solicitação do método computeRoutes (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Neste exemplo, você especifica uma máscara de campo para que a resposta contenha apenas as propriedades duration, distanceMeters, e routeLabels de cada trajeto. Seu cliente pode usar essas informações para escolher qual rota seguir. Para mais informações, consulte Escolher quais informações retornar.
Exemplo de resposta de rotas alternativas
Na resposta, use a propriedade de matriz routeLabels para identificar a rota de alcance:
Para a rota padrão, a propriedade
routeLabelscontémDEFAULT_ROUTE.Para qualquer trajeto alternativo, a propriedade
routeLabelscontémDEFAULT_ROUTE_ALTERNATE.
Neste exemplo, a resposta contém o trajeto padrão e dois trajetos
alternativos. Observe que os valores das propriedades duration e distanceMeters
são diferentes para cada rota:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Incluir polilinhas na resposta
Para facilitar a seleção do trajeto pelo usuário, adicione a polilinha de cada trajeto à resposta. Em seguida, você pode exibir cada polilinha em um mapa.
Para adicionar a polilinha, inclua routes.polyline na máscara de campo:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
A resposta contém a polilinha de cada trajeto:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }