Method: computeRouteMatrix

Toma una lista de orígenes y destinos, y muestra un flujo que contiene información de rutas 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 de rutas de campo separadas por comas. Consulta esta documentación detallada sobre cómo construir las rutas de acceso de los campos.

Por ejemplo, en este método:

  • Máscara de campo de todos los campos disponibles (para inspección manual): X-Goog-FieldMask: *
  • Máscara de campo de las duraciones de las rutas, las distancias, el estado de los elementos, la condición y los índices de 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 es posible que esos campos nuevos requieran tiempo de procesamiento adicional. Si seleccionas todos los campos, o si seleccionas todos los campos en el nivel superior, es posible que experimentes una degradación del rendimiento porque 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á más pequeño y, por lo tanto, la capacidad de procesamiento de la red será 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 los destinos:

  • La suma de la cantidad de orígenes más la cantidad de destinos especificados como placeId o address no debe ser mayor que 50.
  • El producto de 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 × de destinos no debe ser superior a 100 si el valor de routePreference se establece en TRAFFIC_AWARE_OPTIMAL.
  • El producto de la cantidad de orígenes × de destinos no debe ser mayor que 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 extralarga, se mostrará un error. Puedes especificar esta opción solo cuando travelMode sea DRIVE o TWO_WHEELER; de lo contrario, la solicitud fallará.

departureTime

string (Timestamp format)

Opcional. La 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 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. Es 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. Cuando no proporciona 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, consulta el artículo Dominios de nivel superior con código 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 para que se muestren en la respuesta.

trafficModel

enum (TrafficModel)

Opcional. Especifica las suposiciones que se deben utilizar 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. 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 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. No depende de su 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 estableces routingPreference en TRAFFIC_UNAWARE, este valor es el mismo que staticDuration. Si estableces routingPreference en TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL, este valor se calcula teniendo en cuenta las condiciones de tráfico.

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

staticDuration

string (Duration format)

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

Una duración en segundos con hasta nueve dígitos decimales que terminen 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 calcular la ruta con las preferencias dadas para este par de origen/destino en particular, puede recurrir a 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 propiedades de RouteMatrixElement

originIndex

integer

Índice basado en cero del origen en la solicitud.

destinationIndex

integer

Índice basado en cero del destino en la solicitud.

RouteMatrixOrigin

Un origen único 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 toma esto como el origen

RouteMatrixDestination

Un destino único 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 Información de peajes para 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 propiedades determinadas.

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 del tráfico. Nota: Si no se solicitó la información del tráfico, este valor es el mismo que el valor estáticoDuration.

staticDuration

object (LocalizedText)

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

transitFare

object (LocalizedText)

Tarifa de transporte público representada en forma de texto