Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Desarrolladores del Espacio Económico Europeo (EEE)
Usa la API de Routes para calcular la distancia y la duración de una ruta para varios orígenes y destinos llamando al método computeRouteMatrix (REST) o al método de transmisión ComputeRouteMatrix (gRPC).
Dado una lista de orígenes y destinos, el método calcula la distancia y la duración de una ruta que comienza en cada origen y termina en cada destino.
Cómo obtener una matriz de rutas de transporte público
Los métodos de Compute Route Matrix aplican los siguientes límites de solicitudes para los puntos de referencia que usan direcciones o IDs de lugares, y para los elementos. Los elementos son las rutas entre cada origen y destino en una matriz de rutas, por lo que la cantidad de elementos es la cantidad de orígenes multiplicada por la cantidad de destinos. Por ejemplo, si tienes 10 orígenes y 10 destinos, tienes 100 elementos:
La cantidad de elementos no puede superar los 625 para las rutas que no son de TRANSIT.
Si especificas una ruta TRANSIT, la cantidad de elementos no puede superar los 100.
Si especificas TRAFFIC_AWARE_OPTIMAL, la cantidad de elementos no puede superar los 100. Para obtener más información sobre TRAFFIC_AWARE_OPTIMAL, consulta Especifica cómo y si incluir datos de tráfico.
Si especificas orígenes o destinos con direcciones o IDs de lugares, puedes especificar hasta 50 en total de esta manera.
Respuestas de error
Una característica de los métodos de Compute Route Matrix es que se pueden mostrar errores para toda la respuesta o para elementos de respuesta individuales.
Por ejemplo, toda la respuesta contiene un error si la solicitud tiene un formato incorrecto (por ejemplo, tiene cero orígenes).
Sin embargo, si un error se aplica a un subconjunto de elementos en la respuesta (por ejemplo, no se puede calcular una ruta para una combinación de origen y destino), solo los elementos afectados por el error muestran un código de error.
Resultados de la transmisión de gRPC
El método gRPC ComputeRouteMatrix recibe una lista de orígenes y destinos y muestra una transmisión que contiene información de la ruta para cada combinación de origen y destino.
Debido a que los resultados se muestran como un flujo, no tienes que esperar a que se calculen todas las combinaciones de rutas posibles para comenzar a procesar los resultados.
No se garantiza que los elementos que muestra el flujo se muestren en ningún orden. Por lo tanto, cada elemento de respuesta contiene un origin_index y un destination_index. Para los orígenes y destinos especificados por la solicitud, el origen de la ruta equivale a origins[origin_index] para un elemento determinado y el destino de la ruta equivale a destinations[destination_index].
Estos arrays son cero indexados. Es importante almacenar los pedidos de las listas de origen y destino.
Ejemplos de Compute a Route Matrix
Usa el método computeRouteMatrix en una solicitud HTTP para calcular una matriz de rutas.
Ejemplo de HTTP
En el siguiente ejemplo, se muestra una solicitud HTTP computeRouteMatrix. En este ejemplo,
puedes hacer lo siguiente:
Especifica un array de dos puntos de origen y dos puntos de destino. El método calcula una ruta desde cada origen hasta cada destino, por lo que la respuesta contiene cuatro rutas.
En el array, el primer elemento tiene un índice de 0, el segundo tiene un índice de 1, y así sucesivamente.
Incluye una máscara de campo de respuesta para especificar qué campos de la respuesta (REST) o ComputeRoutesResponse (gRPC) se mostrarán. En este ejemplo, configura la solicitud para que devuelva originIndex, destinationIndex, duration, distanceMeters, status y condition para cada ruta. Para obtener más información, consulta Elige los campos que se mostrarán.
La respuesta contiene las cuatro rutas posibles para la combinación de todos los puntos de destino y de origen.
Identifica cada ruta en la respuesta con los campos de respuesta originIndex y destinationIndex. Por ejemplo, un originIndex de 1 en la respuesta corresponde a una ruta calculada a partir del punto de referencia en el índice 1 del array origins en la solicitud.
Por ejemplo, para las solicitudes de gRPC, consulta los ejemplos en Solicitud de gRPC de ejemplo. El ejemplo de Java en esa página llama a Compute Routes y Compute Route Matrix.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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,["# Get a route matrix\n\n**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\n### Get 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\n### Request 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\n### Response 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\n### gRPC 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-------------------------------\n\nUse the [computeRouteMatrix](/maps/documentation/routes/reference/rest/v2/TopLevel/computeRouteMatrix)\nmethod in an HTTP request to compute a route matrix.\n\n### HTTP 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\n### gRPC 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."]]