Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Desenvolvedores do Espaço Econômico Europeu (EEE)
Use a API Routes para calcular a distância e a duração de uma rota para várias origens e destinos chamando o método computeRouteMatrix (REST) ou o método de streaming ComputeRouteMatrix (gRPC).
Dada uma lista de origens e destinos, o método
calcula a distância e a duração de um trajeto que começa em cada origem
e termina em cada destino.
Os métodos da Compute Route Matrix aplicam os seguintes limites de solicitação
para pontos de passagem usando endereços ou placeIDs e para elementos. Os elementos são as rotas entre cada origem e destino em uma matriz de rotas. Portanto, o número de elementos é o número de origens vezes o número de destinos. Por
exemplo, se você tiver 10 origens e 10 destinos, terá 100 elementos:
O número de elementos não pode exceder 625 para rotas
que não são TRANSIT.
Se você especificar uma rota TRANSIT, o número de elementos não poderá exceder
100.
Se você especificar TRAFFIC_AWARE_OPTIMAL, o número de elementos não poderá
ultrapassar 100. Para mais informações sobre TRAFFIC_AWARE_OPTIMAL, consulte
Especificar como e se incluir dados de tráfego.
Se você especificar origens ou destinos usando o endereço ou o ID do lugar,
especificará até 50 no total.
Erros de resposta
Um recurso dos métodos da Compute Route Matrix é que os erros podem ser retornados para toda a resposta ou para elementos de resposta individuais.
Por exemplo, a resposta inteira contém um erro se a solicitação estiver com formato incorreto
(por exemplo, se tiver origem zero).
No entanto, se um erro se aplicar a um subconjunto de
elementos na resposta (por exemplo, uma rota não pode ser calculada para uma
combinação de origem e destino), apenas os elementos afetados pelo
erro vão retornar um código de erro.
Resultados do fluxo gRPC
O método gRPC ComputeRouteMatrix
recebe uma lista de origens e destinos e retorna um fluxo
com informações de rota para cada combinação de origem e destino.
Como os resultados são retornados como um fluxo, você não precisa esperar até que todas as combinações possíveis de trajeto sejam calculadas antes de começar a processar os resultados.
Não há garantia de que os elementos retornados pelo stream serão retornados em qualquer
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 da rota é equivalente a origins[origin_index] para um determinado elemento
e o destino da rota é equivalente a destinations[destination_index].
Essas matrizes são indexadas com zero. É importante armazenar as ordens de lista de origem e destino.
Exemplos de cálculo de uma matriz de rotas
Use o método computeRouteMatrix
em uma solicitação HTTP para calcular uma matriz de rotas.
Exemplo HTTP
O exemplo a seguir mostra uma solicitação HTTP computeRouteMatrix. Neste exemplo,
você:
Especifique uma matriz de dois pontos de passagem de origem e dois de destino. O método
calcula uma rota de cada origem para cada destino, de modo que a resposta
contenha quatro rotas.
Na matriz, o primeiro elemento está no índice 0, o segundo é o índice 1
e assim por diante.
Inclua uma máscara de campo de resposta para especificar quais campos da
resposta
(REST) ou
ComputeRoutesResponse
(gRPC) serão retornados. Neste exemplo, configure a solicitação para retornar
originIndex, destinationIndex, duration, distanceMeters, status
e condition para cada rota. Para mais informações, consulte
Escolher campos para retornar.
A resposta contém as quatro rotas possíveis para a combinação de todos os waypoints de origem e destino.
Identifique cada rota na resposta usando os campos de resposta originIndex e destinationIndex. Por exemplo, um originIndex de 1 na
resposta corresponde a uma rota calculada a partir do ponto de passagem no índice 1 da
matriz origins na solicitação.
Para solicitações gRPC, consulte os exemplos em
Exemplo de solicitação gRPC. O exemplo em Java
desta página chama as rotas de computação e
a Compute Route Matrix.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-06-20 UTC."],[[["\u003cp\u003eGoogle Maps Routes API calculates distance and duration for routes with multiple origins and destinations using the \u003ccode\u003ecomputeRouteMatrix\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eRequest limits apply to the number of elements (routes between origin-destination pairs), varying based on route type and traffic settings.\u003c/p\u003e\n"],["\u003cp\u003eResponses can contain errors for the entire request or individual route elements, providing granular feedback on route calculation success.\u003c/p\u003e\n"],["\u003cp\u003eThe gRPC method offers stream results, allowing processing of route information as it becomes available, without waiting for all calculations to complete.\u003c/p\u003e\n"],["\u003cp\u003eExamples demonstrate how to use the API with HTTP requests and interpret the response, identifying routes using origin and destination indices.\u003c/p\u003e\n"]]],["The Routes API calculates route distances and durations for multiple origins and destinations using `computeRouteMatrix`. It supports REST and gRPC methods, with gRPC offering streaming results. Key actions include specifying origins and destinations, setting travel modes (like transit), and handling request limits (e.g., element counts for `TRANSIT` or `TRAFFIC_AWARE_OPTIMAL` routes). Errors can be response-wide or element-specific. The response provides `originIndex`, `destinationIndex`, `duration`, `distanceMeters`, and `status` for each route.\n"],null,["**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nUse the Routes API to calculate the distance and duration of a route for\nmultiple origins and destinations by calling the\n[computeRouteMatrix](/maps/documentation/routes/reference/rest/v2/TopLevel/computeRouteMatrix) method\n(REST) or the streaming\n[ComputeRouteMatrix](/maps/documentation/routes/reference/rpc/google.maps.routing.v2#google.maps.routing.v2.Routes.ComputeRouteMatrix)\nmethod (gRPC).\n\nGiven a list of origins and destinations, the method\ncalculates the distance and duration of a route starting at each origin\nand ending at each destination.\n\nGet a transit route matrix\n\nYou can also compute a route matrix on transit. For an\nexample, see [Get a route matrix on transit](/maps/documentation/routes/transit-rm).\n\nRequest limits\n\nThe Compute Route Matrix methods enforce the following request\nlimits for waypoints using address or placeIDs, and for elements. Elements are\nthe routes between each origin and destination in a route matrix, so the number\nof elements is the number of origins *times* the number of destinations. For\nexample, if you have 10 origins and 10 destinations, you have 100 elements:\n\n- **The number of elements** cannot exceed 625 for routes\n that are not `TRANSIT` routes.\n\n- **If you specify a `TRANSIT` route**, the number of elements cannot exceed\n 100.\n\n- **If you specify `TRAFFIC_AWARE_OPTIMAL`** , the number of elements cannot\n exceed 100. For more information about `TRAFFIC_AWARE_OPTIMAL`, see\n [Specify how and if to include traffic data](/maps/documentation/routes/config_trade_offs).\n\n- **If you specify origins or destinations using address or place ID**,\n you specify up to 50 total this way.\n\nResponse errors\n\nOne feature of the Compute Route Matrix methods is that errors can\nbe returned either for the entire response or for individual response elements.\nFor example, the entire response contains an error if the request is malformed\n(for example, it has zero origins).\n\nHowever, if an error applies to a subset of\nelements in the response (for example, a route cannot be computed for one\ncombination of origin and destination), then only the elements affected by the\nerror return an error code.\n\ngRPC Stream results\n\nThe [ComputeRouteMatrix](/maps/documentation/routes/reference/rpc/google.maps.routing.v2#google.maps.routing.v2.Routes.ComputeRouteMatrix)\ngRPC method takes in a list of origins and destinations and returns a stream\ncontaining route information for each combination of origin and destination.\nBecause the results are returned as a stream, you don't have to wait until all\npossible route combinations are calculated before you can start to process the\nresults.\n| **Note:** Stream results are not supported by the REST API.\n\nThe elements returned by the stream are not guaranteed to be returned in any\norder. Therefore, each response element contains an `origin_index` and a\n`destination_index`. For the origins and destinations specified by the request,\nthe route origin is equivalent to `origins[origin_index]` for a given element\nand the route destination is equivalent to `destinations[destination_index]`.\nThese arrays are zero-indexed. It is important to store the origin and\ndestination list orders.\n\nCompute a Route Matrix Examples\n\nUse the [computeRouteMatrix](/maps/documentation/routes/reference/rest/v2/TopLevel/computeRouteMatrix)\nmethod in an HTTP request to compute a route matrix.\n\nHTTP example\n\nThe following example shows a `computeRouteMatrix` HTTP request. In this example\nyou:\n\n- Specify an array of two origin and two destination waypoints. The method\n calculates a route from each origin to each destination so the response\n contains four routes.\n\n In the array, the first element is at an index of 0, the second is index 1,\n and so forth.\n- Include a response field mask to specify which fields of the\n [response](/maps/documentation/routes/reference/rest/v2/TopLevel/computeRouteMatrix#response-body)\n (REST) or\n [ComputeRoutesResponse](/maps/documentation/routes/reference/rpc/google.maps.routing.v2#computeroutesresponse)\n (gRPC) to return. In this example, configure the request to return\n `originIndex`, `destinationIndex`, `duration`, `distanceMeters`, `status`,\n and `condition` for each route. For more information, see\n [Choose fields to return](/maps/documentation/routes/choose_fields).\n\n```json\ncurl -X POST -d '{\n \"origins\": [\n {\n \"waypoint\": {\n \"location\": {\n \"latLng\": {\n \"latitude\": 37.420761,\n \"longitude\": -122.081356\n }\n }\n },\n \"routeModifiers\": { \"avoid_ferries\": true}\n },\n {\n \"waypoint\": {\n \"location\": {\n \"latLng\": {\n \"latitude\": 37.403184,\n \"longitude\": -122.097371\n }\n }\n },\n \"routeModifiers\": { \"avoid_ferries\": true}\n }\n ],\n \"destinations\": [\n {\n \"waypoint\": {\n \"location\": {\n \"latLng\": {\n \"latitude\": 37.420999,\n \"longitude\": -122.086894\n }\n }\n }\n },\n {\n \"waypoint\": {\n \"location\": {\n \"latLng\": {\n \"latitude\": 37.383047,\n \"longitude\": -122.044651\n }\n }\n }\n }\n ],\n \"travelMode\": \"DRIVE\",\n \"routingPreference\": \"TRAFFIC_AWARE\"\n}' \\\n-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \\\n-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \\\n'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'\n```\n\nThe response contains the four possible routes for the combination of all origin\nand destination waypoints.\n| **Note:** For detailed description of the response, see [Understand the compute\n| route matrix response](/maps/documentation/routes/understand-rm-response).\n\nIdentify each route in the response by using the `originIndex` and\n`destinationIndex` response fields. For example, an `originIndex` of 1 in the\nresponse corresponds to a route calculated from the waypoint at index 1 of the\n`origins` array in the request. \n\n```json\n[\n {\n \"originIndex\": 0,\n \"destinationIndex\": 0,\n \"status\": {},\n \"distanceMeters\": 822,\n \"duration\": \"160s\",\n \"condition\": \"ROUTE_EXISTS\"\n },\n {\n \"originIndex\": 1,\n \"destinationIndex\": 0,\n \"status\": {},\n \"distanceMeters\": 2919,\n \"duration\": \"361s\",\n \"condition\": \"ROUTE_EXISTS\"\n },\n {\n \"originIndex\": 1,\n \"destinationIndex\": 1,\n \"status\": {},\n \"distanceMeters\": 5598,\n \"duration\": \"402s\",\n \"condition\": \"ROUTE_EXISTS\"\n },\n {\n \"originIndex\": 0,\n \"destinationIndex\": 1,\n \"status\": {},\n \"distanceMeters\": 7259,\n \"duration\": \"712s\",\n \"condition\": \"ROUTE_EXISTS\"\n }\n]\n```\n\ngRPC examples\n\nFor example [gRPC](https://www.grpc.io/) requests, see the examples on\n[Example gRPC request](/maps/documentation/routes/compute_route_directions#grpc-distance-example). The Java\nexample on that page calls both the Compute Routes and\nCompute Route Matrix."]]