Method: computeRouteMatrix

Toma una lista de orígenes y destinos, y devuelve una transmisión que contiene información de la 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 los parámetros de URL $fields o fields, o bien con el encabezado HTTP/gRPC X-Goog-FieldMask (consulta los parámetros de URL y encabezados disponibles). El valor es una lista separada por comas de rutas de campos. Consulta esta documentación detallada sobre cómo construir las rutas de campos.

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, las distancias, el estado, la condición y los índices de los elementos de la ruta (un ejemplo de configuración de producción): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

Es fundamental que incluyas status en la máscara de campo, ya que, de lo contrario, todos los mensajes parecerán correctos. Google desaconseja el uso de la máscara de campo de respuesta de 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 devolverte el resultado con una latencia más baja.
  • Si seleccionas solo los campos que necesitas en tu trabajo de producción, se 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 todos los campos en el 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 la respuesta será menor y, por lo tanto, el rendimiento de la red será mayor.

Solicitud HTTP

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

La URL usa la sintaxis de la transcodificación de 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. Es un 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 y la cantidad de destinos especificados como placeId o address no debe ser superior a 50.
  • En ningún caso, el producto de la cantidad de orígenes por la cantidad de destinos debe ser superior a 625.
  • El producto de la cantidad de orígenes × la cantidad de destinos no debe ser superior a 100 si routingPreference se establece en TRAFFIC_AWARE_OPTIMAL.
  • El producto de la cantidad de orígenes por la cantidad de destinos no debe ser mayor que 100 si travelMode se establece en TRANSIT.
destinations[]

object (RouteMatrixDestination)

Obligatorio. Es un 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. Solo puedes especificar esta opción cuando travelMode es DRIVE o TWO_WHEELER; de lo contrario, la solicitud fallará.

departureTime

string (Timestamp format)

Opcional. Hora de salida Si no estableces este valor, se usará de forma predeterminada la hora en la que realizaste la solicitud. NOTA: Solo puedes especificar un departureTime anterior cuando RouteTravelMode se establece en TRANSIT.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

arrivalTime

string (Timestamp format)

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

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

languageCode

string

Opcional. El código de idioma BCP-47, como "en-US" o "sr-Latn". Para obtener más información, consulta Unicode Locale Identifier. Consulta Idiomas admitidos para obtener la lista de idiomas admitidos. Cuando no proporcionas este valor, el idioma de la pantalla se infiere a partir de la ubicación del primer origen.

regionCode

string

Opcional. Es el código de región, especificado como un valor de dos caracteres del ccTLD ("dominio de nivel superior"). Para obtener más información, consulta 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. Es una lista de cálculos adicionales que se pueden usar para completar la solicitud. Nota: Estos cálculos adicionales pueden devolver campos adicionales en la respuesta. Estos campos adicionales también se deben especificar en la máscara de campo para que se devuelvan en la respuesta.

trafficModel

enum (TrafficModel)

Opcional. Especifica las suposiciones que se usarán cuando se calcule el tiempo en el tráfico. Este parámetro de configuración afecta el valor que se muestra en el campo de duración del objeto RouteMatrixElement, que contiene el tiempo previsto en el tráfico según los promedios históricos. TrafficModel solo está disponible para las solicitudes que establecieron RoutingPreference en TRAFFIC_AWARE_OPTIMAL y RouteTravelMode en 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 de TRANSIT. NOTA: Solo puedes especificar un transitPreferences cuando RouteTravelMode se establece en TRANSIT.

Cuerpo de la respuesta

Contiene la información de la ruta calculada para un par de origen y destino en la API de 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)

Es el código de estado de error de este elemento.

condition

enum (RouteMatrixElementCondition)

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

distanceMeters

integer

Es la distancia de viaje de la ruta, en metros.

duration

string (Duration format)

Es el tiempo necesario para recorrer la ruta. Si estableces routingPreference en TRAFFIC_UNAWARE, este valor será el mismo que staticDuration. Si configuras 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)

Es la duración del viaje a través de la ruta sin tener en cuenta las condiciones de tráfico.

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

travelAdvisory

object (RouteTravelAdvisory)

Es 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 proporcionadas para este par de origen y destino en particular, es posible que vuelva a usar otro modo de cálculo. Cuando se usa el modo de respaldo, este campo contiene información detallada sobre la respuesta de respaldo. De lo contrario, este campo no se establece.

localizedValues

object (LocalizedValues)

Son representaciones de texto de las 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 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 toma este lugar como origen

RouteMatrixDestination

Un solo destino para ComputeRouteMatrixRequest

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

object (Waypoint)

Obligatorio. Punto de ruta de destino

ExtraComputation

Son cálculos adicionales que se deben realizar mientras se completa la solicitud.

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

RouteMatrixElementCondition

Es la condición de la ruta que se devuelve.

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

LocalizedValues

Son 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)

Es la distancia de viaje representada en formato de texto.

duration

object (LocalizedText)

Duración representada en formato de texto que tiene en cuenta las condiciones del tráfico. Nota: Si no se solicitó información sobre el tráfico, este valor es el mismo que staticDuration.

staticDuration

object (LocalizedText)

Duración representada en formato de texto sin tener en cuenta las condiciones del tráfico.

transitFare

object (LocalizedText)

Tarifa de transporte público representada en formato de texto.