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 llamadas de gRPC de transmisión 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 termina 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 servicio de Distance Matrix:
- La transmisión permite que se muestren elementos antes de que se calcule 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 sobre la compensación entre calidad y latencia.- Las solicitudes se ejecutan con mayor prioridad dentro de la infraestructura de Google, lo que genera una mayor disponibilidad.
- Puedes especificar la dirección (sentido de circulación) y la información del lado de la ruta de los puntos de referencia.
- Puedes solicitar que se devuelva la información de peajes, junto con la distancia de la ruta y la ETA.
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:
En los siguientes pasos genéricos, se describe cómo usar gRPC para llamar al método ComputeRouteMatrix
:
Consulta los búferes de protocolo necesarios desde el 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 por ti.
Con tu lenguaje y conjunto de herramientas de compilación preferidos, genera el código de búfer de protocolo pertinente.
Genera tu solicitud. Se deben enviar dos elementos de metadatos obligatorios con la solicitud:
- X-Goog-Api-Key debe establecerse en tu clave de API.
X-Goog-Fieldmask debe establecerse 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 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 deseas incluir 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. Ten en cuenta que inhabilitar los campos que no necesitas puede reducir la latencia, ya que esos campos pueden requerir más procesamiento. Tu 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 Ejemplos de cómo calcular 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 elementos individuales. Por ejemplo, la conexión de transmisión devuelve un error si la solicitud está mal formada (por ejemplo, tiene cero orígenes). Sin embargo, si un error se aplica solo a algunos elementos de la transmisión (por ejemplo, si se configura 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 devuelve la transmisión se devuelvan en un orden específico. Por este motivo, cada elemento contiene un origin_index
y un destination_index
. Para 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 están indexados a partir de cero. Es importante 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 Cómo calcular las tarifas de peaje.
Para ver ejemplos de cómo calcular las tarifas de peaje, consulta Ejemplos de cálculo de una matriz de rutas.