Method: computeRouteMatrix

Toma una lista de orígenes y destinos y muestra una transmisión con 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 del campo de respuesta con el parámetro de URL $fields o fields, o mediante el encabezado HTTP/gRPC X-Goog-FieldMask (consulta los encabezados y parámetros de URL disponibles). El valor es una lista separada por comas de las rutas de los campos. Consulte 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 la duración de las rutas, las distancias, el estado del elemento, la condición y los índices de elementos (una configuración de producción de ejemplo): 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 aparecerán como correctos. Google desalienta el uso de la máscara de campo comodín de respuesta (*) 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 estable de latencia. Es posible que agreguemos más campos de respuesta en el futuro, y que esos nuevos campos puedan requerir tiempo de procesamiento adicional. Si seleccionas todos los campos, o si seleccionas todos los campos del 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 la respuesta será menor y, por lo tanto, tendrás una capacidad de procesamiento de red más alta.

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. 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 cualquier caso, el producto de la cantidad de orígenes × la cantidad de destinos no debe ser mayor que 625.
  • El valor de la cantidad de orígenes y la cantidad de destinos no debe ser mayor que 100 si enrutamientoPreference se establece en TRAFFIC_AWARE_OPTIMAL.
  • El valor del producto de la cantidad de orígenes × la cantidad de destinos no debe ser mayor que 100 si se establece TravelMode 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 extra larga, se muestra 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 se establecerá de forma predeterminada en el momento en que hayas realizado la solicitud. NOTA: Solo puedes especificar un departureTime en el pasado cuando RouteTravelMode se establece en TRANSIT.

Es 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. La hora de llegada. NOTA: Solo se puede establecer cuando RouteTravelMode se configura como TRANSIT. Puedes especificar departureTime o arrivalTime, pero no ambos.

Es 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 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Consulta Idiomas admitidos para consultar la lista de idiomas admitidos. Cuando no proporcionas este valor, el idioma de visualización se infiere 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, consulte https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains

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 deben usarse al calcular el tiempo con 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. La configuración predeterminada 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 para este elemento.

condition

enum (RouteMatrixElementCondition)

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

distanceMeters

integer

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

duration

string (Duration format)

Indica el tiempo necesario para navegar por la ruta. Si configuras 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 del tráfico.

Una duración en segundos con un máximo de 9 dígitos decimales, que termina en 's'. Ejemplo: "3.5s".

staticDuration

string (Duration format)

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

Una duración en segundos con un máximo de 9 dígitos decimales, que termina en 's'. Ejemplo: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

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

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 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 en el 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.

Origen de la matriz de ruta

Un único 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 toman como origen

Destino de la Matriz de la ruta

Un solo destino para ComputeRouteMatrixRequest

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

object (Waypoint)

Obligatorio. Punto de referencia de destino

Procesamiento adicional

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 los peajes de los elementos de la matriz

Condición de matriz de ruta

La condición 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 contengan información de ruta, como distanceMeters o duration, no se completarán en el elemento.

Valores localizados

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)

Se representa la distancia de viaje en forma de texto.

duration

object (LocalizedText)

Es la duración representada en el texto que considera las condiciones del tráfico. Nota: Si no se solicitó información de 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 considerar las condiciones del tráfico.

transitFare

object (LocalizedText)

Tarifa de transporte público representada en un formulario de texto.