Use a API Routes para calcular a distância e a duração de um trajeto várias origens e destinos chamando Método computeRouteMatrix (REST) ou o fluxo ComputeRouteMatrix (gRPC).
Com uma lista de origens e destinos, o método calcula a distância e a duração de um trajeto começando em cada origem e terminando em cada destino.
Acessar uma matriz de trajetos de transporte público
Também é possível calcular uma matriz de rotas em trânsito. Para um exemplo, consulte Ver uma matriz de trajetos no transporte público.
Limites de solicitações
Os métodos do Compute Route Matrix aplicam a solicitação a seguir limites para waypoints que usam address ou placeIDs e para elementos. Os elementos são as rotas entre cada origem e destino em uma matriz de rota, de modo que o número de elementos é o número de origens vezes o número de destinos. Para Por exemplo, se você tiver 10 origens e 10 destinos, terá 100 elementos:
O número de elementos não pode exceder 625 para trajetos que não são rotas
TRANSIT
.Se você especificar um trajeto
TRANSIT
, o número de elementos não poderá ultrapassar 100.Se você especificar
TRAFFIC_AWARE_OPTIMAL
, o número de elementos não poderá ultrapassar 100. Para mais informações sobreTRAFFIC_AWARE_OPTIMAL
, consulte Especifique como e se incluir dados de tráfego.Se você especificar origens ou destinos usando o endereço ou o ID do lugar, que você especificar até um total de 50 dessa maneira.
Erros de resposta
Um recurso dos métodos do Compute Route Matrix é que os erros podem retornados para toda a resposta ou para elementos de resposta individuais. Por exemplo, a resposta inteira contém um erro se a solicitação for malformada (por exemplo, tem origens zero).
No entanto, se um erro se aplicar a um subconjunto na resposta (por exemplo, uma rota não pode ser computada para um combinação de origem e destino), apenas os elementos afetados pelo error retorne um código de erro.
Resultados do fluxo gRPC
A ComputeRouteMatrix O método gRPC recebe uma lista de origens e destinos e retorna um stream que contêm informações de trajeto para cada combinação de origem e destino. Como os resultados são retornados como um stream, não é preciso esperar até que possíveis combinações de rotas são calculadas antes de você começar a processar o resultados.
Os elementos retornados pelo stream não têm garantia de retorno em nenhuma
ordem. Portanto, cada elemento de resposta contém um origin_index
e um
destination_index
. Para as origens e os destinos especificados pela solicitação,
a origem do trajeto é equivalente a origins[origin_index]
para um determinado elemento.
e o destino da rota é equivalente a destinations[destination_index]
.
Essas matrizes são indexadas zero. É importante armazenar a origem e
pedidos de lista de destino.
Exemplos de matriz de rota
Usar a classe computeRouteMatrix em uma solicitação HTTP para calcular uma matriz de rota.
Exemplo HTTP
O exemplo a seguir mostra uma solicitação HTTP computeRouteMatrix
. Neste exemplo
você:
Especifique uma matriz de dois waypoints de origem e dois de destino. Método calcula um trajeto de cada origem para cada destino de modo que a resposta contém quatro rotas.
Na matriz, o primeiro elemento está em um índice de 0, o segundo é o índice 1, e assim por diante.
Inclua uma máscara de campo de resposta para especificar quais campos do resposta (REST) ou ComputeRoutesResponse (gRPC) a ser retornado. Neste exemplo, configure a solicitação para retornar
originIndex
,destinationIndex
,duration
,distanceMeters
,status
, econdition
para cada trajeto. Para mais informações, consulte Escolha os campos que serão retornados.
curl -X POST -d '{ "origins": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420761, "longitude": -122.081356 } } }, "routeModifiers": { "avoid_ferries": true} }, { "waypoint": { "location": { "latLng": { "latitude": 37.403184, "longitude": -122.097371 } } }, "routeModifiers": { "avoid_ferries": true} } ], "destinations": [ { "waypoint": { "location": { "latLng": { "latitude": 37.420999, "longitude": -122.086894 } } } }, { "waypoint": { "location": { "latLng": { "latitude": 37.383047, "longitude": -122.044651 } } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \ 'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'
A resposta contém as quatro rotas possíveis para a combinação de todas as origens e waypoints do destino.
Identifique cada rota na resposta usando os métodos originIndex
e
destinationIndex
campos de resposta. Por exemplo, um originIndex
de 1 no
corresponde a um trajeto calculado a partir do ponto de referência no índice 1 do
Matriz origins
na solicitação.
[ { "originIndex": 0, "destinationIndex": 0, "status": {}, "distanceMeters": 822, "duration": "160s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 0, "status": {}, "distanceMeters": 2919, "duration": "361s", "condition": "ROUTE_EXISTS" }, { "originIndex": 1, "destinationIndex": 1, "status": {}, "distanceMeters": 5598, "duration": "402s", "condition": "ROUTE_EXISTS" }, { "originIndex": 0, "destinationIndex": 1, "status": {}, "distanceMeters": 7259, "duration": "712s", "condition": "ROUTE_EXISTS" } ]
Exemplos de gRPC
Por exemplo, para solicitações gRPC, consulte os exemplos em Exemplo de solicitação gRPC. A linguagem Java nessa página chama as APIs Compute Routes e Compute Routes Matrix.