Method: computeRouteMatrix

Toma una lista de orígenes y destinos, y muestra un flujo 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 bien con el encabezado HTTP/gRPC X-Goog-FieldMask (consulta los parámetros y encabezados de URL disponibles). El valor es una lista separada por comas de rutas de campo. Consulta esta documentación detallada sobre cómo crear 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, el estado 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 incluyas status en tu máscara de campo, ya que, de lo contrario, todos los mensajes parecerán estar correctos. 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 guardar ciclos de procesamiento, lo que nos permite mostrarte el resultado con una latencia más baja.
  • Seleccionar solo los campos que necesitas en tu trabajo de producción garantiza un rendimiento de latencia estable. Podríamos agregar más campos de respuesta en el futuro, y esos campos nuevos pueden requerir tiempo de procesamiento adicional. Si seleccionas todos los campos, o bien todos los del nivel superior, es posible que experimentes una degradación del rendimiento, ya que cualquier campo nuevo que agreguemos se incluirá automáticamente en la respuesta.
  • Si seleccionas solo los campos que necesitas, el tamaño de respuesta será menor 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,
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Campos
origins[]

object (RouteMatrixOrigin)

Obligatorio. Arreglo 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 los destinos:

  • La suma de la cantidad de orígenes + la cantidad de destinos especificados como placeId o address no debe ser mayor que 50.
  • El producto compuesto por una cantidad de orígenes × cantidad de destinos no debe ser superior a 625 en ningún caso.
  • El producto de la cantidad de orígenes × la cantidad de destinos no debe ser superior a 100 si routesPreference 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. Arreglo 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. La hora de salida. Si no estableces este valor, se establecerá de forma predeterminada la hora en la 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 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 se configura como TRANSIT. Puedes especificar departureTime o arrivalTime, pero no ambos.

Una marca de tiempo en formato RFC3339 UTC "Zulú", con 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 de Unicode. Consulta Idiomas compatibles para ver la lista de idiomas compatibles. Si no proporcionas este valor, el idioma de visualización se infiere a partir de la ubicación del primer origen.

regionCode

string

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

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 deben especificarse en la máscara de campo para que se muestren en la respuesta.

trafficModel

enum (TrafficModel)

Opcional. Especifica las suposiciones que se usarán al calcular el tiempo en el tráfico. Esta configuración afecta el valor que se muestra en el campo de duración en RouteMatrixElement, que contiene el tiempo previsto en el tráfico según los promedios históricos. De RoutingPreference a TRAFFIC_AWARE_OPTIMAL y de 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 configura como TRANSIT.

Cuerpo de la respuesta

Contiene información de ruta calculada para un par de origen y 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 para este elemento.

condition

enum (RouteMatrixElementCondition)

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

distanceMeters

integer

La distancia de viaje de la ruta en metros.

duration

string (Duration format)

El 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 de tráfico.

Es una duración en segundos con hasta nueve dígitos decimales que termina en "s". Ejemplo: "3.5s".

staticDuration

string (Duration format)

Indica la duración del viaje por la ruta sin considerar las condiciones del tráfico.

Es una duración en segundos con hasta nueve dígitos decimales que termina en "s". Ejemplo: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

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

fallbackInfo

object (FallbackInfo)

En algunos casos, cuando el servidor no puede calcular la ruta con las preferencias dadas para este par de origen y destino en particular, puede volver a usar un modo de cálculo diferente. Cuando se usa el modo de resguardo, este campo contiene información detallada sobre la respuesta de resguardo. De lo contrario, no se establecerá este campo.

localizedValues

object (LocalizedValues)

Representaciones de texto de las propiedades de RouteMatrixElement.

originIndex

integer

Índice basado en cero del origen de la solicitud.

destinationIndex

integer

Índice basado en cero del destino en 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 lo tome como origen

RouteMatrixDestination

Un solo 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.

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

RouteMatrixElementCondition

El estado de la ruta que se muestra.

Enumeradores
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 del elemento.
ROUTE_NOT_FOUND No se encontró ninguna ruta. Los campos que contienen información de la ruta, como distanceMeters o duration, no se completarán en el elemento.

LocalizedValues

Representaciones de texto de determinadas 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 forma de texto teniendo en cuenta las condiciones de tráfico. Nota: Si no se solicitó información sobre el tráfico, este valor es el mismo que el destaticDuration.

staticDuration

object (LocalizedText)

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

transitFare

object (LocalizedText)

Tarifas de transporte público representadas en forma de texto