Method: computeRouteMatrix

Toma una lista de orígenes y destinos, y muestra una transmisión que contiene información de ruta para cada combinación de origen y destino.

NOTA: Este método requiere que especifiques una máscara de campo de respuesta en la entrada. Puedes proporcionar la máscara de campo de respuesta con el parámetro de URL $fields o fields, o con el encabezado HTTP/gRPC X-Goog-FieldMask (consulta los parámetros y encabezados de URL disponibles). El valor es una lista de rutas de campo separadas por comas. Consulta esta documentación detallada sobre cómo construir las rutas de campo.

Por ejemplo, en este método:

  • Máscara de campo de todos los campos disponibles (para la inspección manual): X-Goog-FieldMask: *
  • Máscara de campo de las duraciones de las rutas, las distancias, el estado de los elementos, las condiciones y los índices de los elementos (un ejemplo de configuración de producción): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

Es fundamental que incluya status en su máscara de campo, ya que, de lo contrario, todos los mensajes parecerán estar bien. Google no recomienda el uso de la máscara de campo de respuesta comodín (*) por los siguientes motivos:

  • Seleccionar solo los campos que necesitas ayuda a nuestro servidor a ahorrar ciclos de procesamiento, lo que nos permite mostrarte el resultado con una latencia más baja.
  • Seleccionar solo los campos que necesitas para tu trabajo de producción garantiza un rendimiento de latencia estable. Es posible que agreguemos más campos de respuesta en el futuro, y esos campos nuevos podrían requerir tiempo de procesamiento adicional. Si seleccionas todos los campos o si lo haces en el nivel superior, es posible que experimentes una degradación del rendimiento, ya que los campos nuevos que agregues se incluirán automáticamente en la respuesta.
  • Seleccionar solo los campos que necesitas da como resultado un tamaño de respuesta más pequeño y, por lo tanto, una capacidad de procesamiento de red mayor.

Solicitud HTTP

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Campos
origins[]

object (RouteMatrixOrigin)

Obligatorio. Array de orígenes, que determina las filas de la matriz de respuesta. Se aplican varias restricciones de tamaño a la cardinalidad de los orígenes y destinos:

  • La suma de la cantidad de orígenes y la cantidad de destinos especificados como placeId o address no debe ser mayor que 50.
  • En ningún caso, el producto de la cantidad de orígenes × cantidad de destinos no debe ser superior a 625.
  • El producto de la cantidad de orígenes por la cantidad de destinos no debe ser superior a 100 si routePreference se establece en TRAFFIC_AWARE_OPTIMAL.
  • El producto de la cantidad de orígenes × cantidad de destinos no debe ser superior a 100 si TravelMode se establece en TRANSIT.
destinations[]

object (RouteMatrixDestination)

Obligatorio. Array de destinos, que determina las columnas de la matriz de respuesta.

travelMode

enum (RouteTravelMode)

Opcional. Especifica el medio de transporte.

routingPreference

enum (RoutingPreference)

Opcional. Especifica cómo calcular la ruta. El servidor intenta usar la preferencia de enrutamiento seleccionada para calcular la ruta. Si la preferencia de enrutamiento genera un error o una latencia demasiado larga, se muestra un error. Puedes especificar esta opción solo cuando travelMode es DRIVE o TWO_WHEELER; de lo contrario, la solicitud falla.

departureTime

string (Timestamp format)

Opcional. Hora de salida. Si no estableces este valor, el valor predeterminado será la hora en que realizaste la solicitud. NOTA: Solo puedes especificar un departureTime en el pasado cuando RouteTravelMode se establece en TRANSIT.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

arrivalTime

string (Timestamp format)

Opcional. Indica la hora de llegada. NOTA: Solo se puede configurar cuando RouteTravelMode está configurado como TRANSIT. Puedes especificar departureTime o arrivalTime, pero no ambos.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

languageCode

string

Opcional. El código de idioma BCP-47, como "en-US" o "sr-Latn". Para obtener más información, consulta Identificador de configuración regional Unicode. Consulta Idiomas compatibles para obtener la lista de idiomas admitidos. Si no proporcionas este valor, el idioma de visualización se infiere de la ubicación del primer origen.

regionCode

string

Opcional. Es el código de región, especificado como un valor ccTLD ("dominio de nivel superior") de dos caracteres. Para obtener más información, consulte Dominios de nivel superior con códigos de país.

units

enum (Units)

Opcional. Especifica las unidades de medida para los campos de visualización.

extraComputations[]

enum (ExtraComputation)

Opcional. Una lista de cálculos adicionales que se pueden usar para completar la solicitud. Nota: Estos cálculos adicionales pueden mostrar campos adicionales en la respuesta. Estos campos adicionales también se deben especificar en la máscara de campo que se mostrará en la respuesta.

trafficModel

enum (TrafficModel)

Opcional. Especifica las suposiciones que se deben usar cuando se calcula el tiempo en el tráfico. Esta configuración afecta el valor que se muestra en el campo de duración de RouteMatrixElement, que contiene el tiempo previsto en el tráfico según los promedios históricos. RoutingPreference a TRAFFIC_AWARE_OPTIMAL y RouteTravelMode a DRIVE. El valor predeterminado es BEST_GUESS si se solicita tráfico y no se especifica TrafficModel.

transitPreferences

object (TransitPreferences)

Opcional. Especifica las preferencias que influyen en la ruta que se muestra para las rutas TRANSIT. NOTA: Solo puedes especificar un transitPreferences cuando RouteTravelMode se establece en TRANSIT.

Cuerpo de la respuesta

Contiene información de ruta calculada para un par de origen/destino en la API v2.computeRouteMatrix. Este proto se puede transmitir al cliente.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "localizedValues": {
    object (LocalizedValues)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
Campos
status

object (Status)

Código de estado de error de este elemento.

condition

enum (RouteMatrixElementCondition)

Indica si se encontró la ruta o no. No depende del estado.

distanceMeters

integer

La distancia de viaje de la ruta en metros.

duration

string (Duration format)

Indica la cantidad de tiempo necesario para navegar por la ruta. Si configuras routingPreference como TRAFFIC_UNAWARE, este valor es el mismo que staticDuration. Si estableces routingPreference como TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL, este valor se calcula teniendo en cuenta las condiciones del tráfico.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

staticDuration

string (Duration format)

La duración de un viaje por la ruta sin tener en cuenta las condiciones del tráfico.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

Información adicional sobre la ruta. Por ejemplo: información sobre restricciones y peajes

fallbackInfo

object (FallbackInfo)

En algunos casos, cuando el servidor no puede procesar la ruta con las preferencias determinadas para este par de origen/destino en particular, puede recurrir a un modo de procesamiento diferente. Cuando se usa el modo de resguardo, este campo contiene información detallada sobre la respuesta de resguardo. De lo contrario, este campo no se establece.

localizedValues

object (LocalizedValues)

Representaciones de texto de propiedades de RouteMatrixElement

originIndex

integer

Es un índice basado en cero del origen en la solicitud.

destinationIndex

integer

Es el índice basado en cero del destino de la solicitud.

RouteMatrixOrigin

Un solo origen para ComputeRouteMatrixRequest

Representación JSON
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
Campos
waypoint

object (Waypoint)

Obligatorio. Punto de referencia de origen

routeModifiers

object (RouteModifiers)

Opcional. Modificadores para cada ruta que tome esto como origen

RouteMatrixDestination

Un único destino para ComputeRouteMatrixRequest

Representación JSON
{
  "waypoint": {
    object (Waypoint)
  }
}
Campos
waypoint

object (Waypoint)

Obligatorio. Punto de referencia de destino

ExtraComputation

Cálculos adicionales para realizar mientras se completa la solicitud.

Enumeraciones
EXTRA_COMPUTATION_UNSPECIFIED No se usa. Las solicitudes que contengan este valor fallarán.
TOLLS Información de peaje de los elementos de la matriz.

RouteMatrixElementCondition

La condición de la ruta que se muestra.

Enumeraciones
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Solo se usa cuando el status del elemento no es correcto.
ROUTE_EXISTS Se encontró una ruta y se completó la información correspondiente para el elemento.
ROUTE_NOT_FOUND No se encontró ninguna ruta. Los campos que contengan información de rutas, como distanceMeters o duration, no se completarán en el elemento.

LocalizedValues

Representaciones de texto de ciertas propiedades.

Representación JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Campos
distance

object (LocalizedText)

Distancia de viaje representada en forma de texto.

duration

object (LocalizedText)

Es la duración representada en formato de texto según las condiciones del tráfico. Nota: Si no se solicitó información sobre el tráfico, este valor es el mismo que estáticoDuration.

staticDuration

object (LocalizedText)

Es la duración representada en forma de texto sin tener en cuenta las condiciones del tráfico.

transitFare

object (LocalizedText)

Tarifa de transporte público representada en forma de texto