Calcula una matriz de ruta

Puedes calcular la distancia y la duración de una ruta para varios orígenes y destinos con el método ComputeRouteMatrix de la API de Routes Preferred. ComputeRouteMatrix admite la transmisión de llamadas gRPC y llamadas HTTP de REST.

En una lista de pares de origen y destino, ComputeRouteMatrix calcula la distancia y la duración de una ruta que comienza en cada origen y termina en cada destino. Cada elemento del flujo corresponde a la información de una sola ruta.

El método ComputeRouteMatrix tiene varias ventajas sobre el servicio Distance Matrix:

  • La transmisión permite que los elementos se devuelvan antes de que se haya calculado toda la matriz, lo que reduce la latencia.
  • ComputeRouteMatrix tiene opciones detalladas para el cálculo del tráfico, lo que te permite tomar decisiones de compensación entre latencia y calidad.
  • Las solicitudes se ejecutan con una prioridad más alta dentro de la infraestructura de Google, lo que da como resultado una mayor disponibilidad.
  • Puedes especificar la orientación (dirección del viaje) y la información del costado de la ruta para los puntos de referencia.
  • Puedes solicitar que se muestre información sobre los peajes, junto con la distancia de la ruta y la hora de llegada estimada.

Habilita el método ComputeRouteMatrix

Antes de poder usar el método ComputeRouteMatrix en tu código, debes habilitarlo. Para obtener más información sobre cómo habilitar los métodos de la API de Routes Preferred, consulta Cómo comenzar.

Usa el método ComputeRouteMatrix

El método ComputeRouteMatrix está disponible a través del extremo v1 de Routes Preferred.

Consulta la siguiente documentación para obtener información más detallada:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

En los siguientes pasos genéricos, se describe cómo usar gRPC para llamar al método ComputeRouteMatrix:

  1. Revisa los protobuffers necesarios del repositorio de googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Ten en cuenta que algunos sistemas de compilación, como Go, pueden hacer esto automáticamente por ti.

  2. Con tu lenguaje preferido y tu conjunto de herramientas de compilación, genera el código de protobuffer relevante.

  3. Genera tu solicitud. Se deben enviar dos fragmentos de metadatos obligatorios con la solicitud:

    • Debes configurar X-Goog-Api-Key para tu clave de API.
    • X-Goog-Fieldmask debe configurarse con una lista separada por comas de los campos que necesitas de la respuesta. Por ejemplo, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Puedes usar el carácter comodín (*) para denotar todos los campos, pero no se recomienda. Usa el carácter comodín para probar y comprender la respuesta de la API, pero enumera de forma explícita los campos que deseas en la máscara de campo de tu código de producción.

      Para obtener más información sobre cómo construir la cadena de máscara de campo, consulta https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Ten en cuenta que inhabilitar campos que no necesitas puede reducir la latencia, ya que esos campos pueden requerir más procesamiento. La latencia se mantendrá estable si especificas los campos que necesitas y los campos nuevos que requieren más procesamiento se agregan más adelante.

  4. Envía tu solicitud a routespreferred.googleapis.com:443.Debes usar el protocolo TLS.

Para ver ejemplos del uso del método ComputeRouteMatrix, consulta cómo procesar una matriz de rutas (beta) ejemplos.

Una característica distintiva del método ComputeRouteMatrix es que los códigos de error se pueden mostrar para toda la transmisión o para elementos individuales. Por ejemplo, la conexión de transmisión muestra un error si la solicitud tiene un formato incorrecto (por ejemplo, no tiene orígenes). Sin embargo, si un error se aplica solo a algunos elementos de la transmisión (por ejemplo, configurar un ID de lugar no válido para un origen), solo los elementos afectados por el error contienen códigos de error.

No se garantiza que los elementos que muestra la transmisión se muestren en ningún orden. Debido a esto, cada elemento contiene un origin_index y un destination_index. Para los orígenes y destinos que especifica 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 pedidos de las listas de origen y destino.

Cómo calcular las tarifas de peaje

Para obtener información sobre cómo calcular las tarifas de peaje, consulta Calcula las tarifas de peajes.

Para ver ejemplos de cómo calcular las tarifas de peaje, consulta cómo calcular una matriz de rutas.