Obtén una matriz de ruta

Utiliza 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 la transmisión ComputeRouteMatrix (gRPC).

Dada 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 finaliza en cada destino.

Obtén una matriz de rutas de transporte público

También puedes calcular una matriz de rutas en el transporte público. Para un ejemplo, consulta Obtén una matriz de rutas en el transporte público.

Límites de solicitudes

Los métodos de Compute Route Matrix aplican la siguiente solicitud límites para puntos de referencia con direcciones o id. de sitio, y para elementos. Los elementos son las rutas entre cada origen y destino en una matriz de rutas, de modo que la cantidad de elementos es la cantidad de orígenes veces la cantidad de destinos. Para Por ejemplo, si tienes 10 orígenes y 10 destinos, tienes 100 elementos:

  • La cantidad de elementos no puede ser mayor que 625 para las rutas que no son rutas TRANSIT.

  • Si especificas una ruta TRANSIT, la cantidad de elementos no puede excederse 100.

  • Si especificas TRAFFIC_AWARE_OPTIMAL, la cantidad de elementos no puede superen los 100. Para obtener más información sobre TRAFFIC_AWARE_OPTIMAL, consulta Especifica cómo y si deseas incluir datos de tráfico.

  • Si especificas orígenes o destinos con una dirección o un ID de lugar, especificas hasta 50 en total de esta manera.

Respuestas de error

Una función de los métodos de Compute Route Matrix es que los errores para toda la respuesta o para elementos de respuesta individuales. Por ejemplo, toda la respuesta contiene un error si la solicitud no tiene el formato correcto (por ejemplo, no tiene ningún origen).

Sin embargo, si un error se aplica a un subconjunto de elementos en la respuesta (por ejemplo, una ruta no se puede calcular para una combinación de origen y destino), solo los elementos afectados error devuelve un código de error.

Resultados de transmisión de gRPC

ComputeRouteMatrix El método gRPC toma una lista de orígenes y destinos, y muestra una transmisión que contiene información de rutas para cada combinación de origen y destino. Debido a que los resultados se devuelven como una transmisión, no tienes que esperar hasta que se calculan las posibles combinaciones de rutas antes de que puedas empezar a procesar resultados.

No se garantiza que los elementos que muestra la transmisión se devuelvan en ninguna en el orden personalizado. Por lo tanto, cada elemento de respuesta contiene un origin_index y un destination_index Para los orígenes y destinos que se especifican en la solicitud, el origen de la ruta es equivalente a origins[origin_index] para un elemento determinado y el destino de la ruta es equivalente a destinations[destination_index]. Estos arrays tienen índice cero. Es importante almacenar los datos de origen y pedidos de la lista de destino.

Ejemplos de cómo procesar una matriz de rutas

Usar computeRouteMatrix en una solicitud HTTP para procesar una matriz de ruta.

Ejemplo de HTTP

En el siguiente ejemplo, se muestra una solicitud HTTP computeRouteMatrix. En este ejemplo tú:

  • Especifica un array de dos puntos de referencia de origen y dos de destino. El método calcula una ruta desde cada origen hasta cada destino para que la respuesta contiene cuatro rutas.

    En el array, el primer elemento está en un índice 0, el segundo es índice 1, etcétera.

  • Incluye una máscara de campo de respuesta para especificar qué campos del objeto respuesta (REST) o ComputeRoutesResponse (gRPC) para mostrar. En este ejemplo, configura la solicitud para que muestre originIndex, destinationIndex, duration, distanceMeters y status, y condition para cada ruta. Para obtener más información, consulta Elige los campos que deseas mostrar.

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'

La respuesta contiene las cuatro rutas posibles para la combinación de todos los orígenes como puntos de referencia de destino y destino.

Identifica cada ruta en la respuesta mediante originIndex y Campos de respuesta de destinationIndex. Por ejemplo, un originIndex de 1 en la correspondiente a una ruta calculada a partir del punto de referencia en el índice 1 de la origins en la solicitud.

[
    {
        "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"
    }
]

Ejemplos de gRPC

Por ejemplo, con solicitudes de gRPC, consulta los ejemplos en Ejemplo de solicitud de gRPC. Java ejemplo en esa página llama a Compute Routes y Compute Route Matrix.