Puedes calcular la distancia y la duración de una ruta para varios orígenes y destinos mediante el método ComputeRouteMatrix
de la API de Routes Preferred. ComputeRouteMatrix
admite la transmisión de llamadas de gRPC y de llamadas HTTP de REST.
Según 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 muestren antes de que se haya calculado toda la matriz, lo que disminuye la latencia.
ComputeRouteMatrix
tiene opciones detalladas para el cálculo del tráfico, lo que te permite tomar decisiones de compensación de latencia de 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 información de orientación (dirección del viaje) y de ruta para los puntos de referencia.
- Puedes solicitar que se muestre la información de los peajes, junto con la distancia de la ruta y la hora de llegada estimada.
Habilita el método ComputeRouteMatrix
Para 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 Primeros pasos.
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:
En los siguientes pasos genéricos, se describe cómo usar gRPC para llamar
al método ComputeRouteMatrix
:
Consulta los protobufs 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 hacerlo automáticamente.
Usa tu lenguaje y conjunto de herramientas de compilación preferidos para generar el código protobuf relevante.
Genera tu solicitud. Se deben enviar dos metadatos obligatorios con la solicitud:
- X-Goog-Api-Key como tu clave de API.
X-Goog-Fieldmask se debe configurar como 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 indicar 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 desees en la máscara de campo de tu código de producción.
Para obtener más información sobre cómo construir la string de máscara de campo, consulta https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Ten en cuenta que inhabilitar los campos que no necesitas puede reducir la latencia, ya que esos campos pueden requerir un procesamiento adicional. La latencia se mantendrá estable si especificas los campos que necesitas y luego se agregan campos nuevos que requieren más procesamiento.
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 calcular ejemplos de una matriz de ruta (beta).
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 no tiene el formato correcto (por ejemplo, tiene cero orígenes). Sin embargo, si un error se aplica solo a algunos elementos del flujo (por ejemplo, establecer un ID de lugar no válido para un origen), solo los elementos afectados por el error contendrán códigos de error.
No se garantiza que los elementos que muestra la transmisión se muestren en ningún orden. Por este motivo, cada elemento contiene una origin_index
y una destination_index
. En el caso de los orígenes y destinos especificados 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 indexación cero. Es importante almacenar los pedidos de la lista de origen y destino.
Calculando las tarifas de peajes
Para obtener información sobre cómo calcular las tarifas de peajes, consulta Cómo calcular las tarifas de peaje.
Para ver ejemplos de cómo calcular las tarifas de peajes, consulta Cómo calcular ejemplos de matrices de rutas.