Calcula una matriz de ruta

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

Dada 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 finaliza en cada destino. Cada elemento de la transmisión corresponde a la información de una sola ruta.

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

  • La transmisión permite que se devuelvan los elementos antes de toda la matriz de datos, lo que disminuye la latencia.
  • ComputeRouteMatrix tiene opciones detalladas para el cálculo del tráfico, lo que te permite tomar decisiones sobre compensación entre calidad y latencia.
  • Las solicitudes se ejecutan con una prioridad más alta en la infraestructura de Google. lo que aumenta la disponibilidad.
  • Puedes especificar la orientación (dirección del viaje) y el lado de la ruta. información sobre puntos de referencia.
  • Puedes solicitar que se devuelva la información de 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 habilitarla. Para obtener más información sobre cómo habilitar la API de Routes Preferred consulta Cómo comenzar.

Usa el método ComputeRouteMatrix

El método ComputeRouteMatrix está disponible mediante Routes Preferred extremo v1.

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

Los siguientes pasos genéricos describen cómo usar gRPC para llamar el 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. Usa tu lenguaje preferido y un conjunto de herramientas de compilación para generar las el código protobuffer.

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

    • Debes configurar X-Goog-Api-Key para tu clave de API.
    • X-Goog-Fieldmask se debe establecer en 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 desalentado. Usa el carácter comodín para probar y comprender el API de respuesta, pero enumera de forma explícita los campos que desees en la máscara de campo en 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. Inhabilitar campos que no necesitas puede reducir la latencia esos campos pueden requerir más procesamiento. Tu latencia se mantendrá estable si especificas los campos que necesitas y los campos nuevos que requieren se agregan más cálculos después.

  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 Ejemplos de cómo procesar una matriz de rutas (beta)

Una característica distintiva del método ComputeRouteMatrix es que los códigos de error se pueden devolver para toda la transmisión o para o de terceros. 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 se aplica un error a unos pocos 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 devuelvan en cualquier orden. Debido a esto, cada elemento contiene un origin_index y una destination_index. Para los orígenes y destinos especificados por 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. Integra es importante para almacenar los pedidos de la lista 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 procesar una matriz de rutas.