Method: computeCustomRoutes

Con un conjunto de puntos de referencia intermedios y terminales y un objetivo de ruta, calcula la mejor ruta para el objetivo de ruta. También muestra la ruta más rápida y la más corta como rutas de referencia.

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 distancias de rutas, duraciones, información de tokens y peajes: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Google no recomienda el uso de la máscara de campo de respuesta comodín (*) ni la especificación de la máscara de campo en el nivel superior (routes) 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://routespreferred.googleapis.com/v1:computeCustomRoutes

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
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "routeObjective": {
    object (RouteObjective)
  },
  "languageCode": string,
  "units": enum (Units)
}
Campos
origin

object (Waypoint)

Obligatorio. Punto de referencia de origen.

destination

object (Waypoint)

Obligatorio. Punto de referencia de destino.

intermediates[]

object (Waypoint)

Opcional. Un conjunto de puntos de referencia a lo largo de la ruta (excluidos los puntos de terminal) para detenerse en o pasar. Se admiten hasta 25 puntos de referencia intermedios.

travelMode

enum (RouteTravelMode)

Opcional. Especifica el medio de transporte. Por el momento, solo se admite DRIVE.

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. En el futuro, es posible que implementemos un mecanismo de resguardo para usar una opción diferente cuando la opción preferida no proporcione un resultado válido. Puedes especificar esta opción solo cuando travelMode es DRIVE o TWO_WHEELER; de lo contrario, la solicitud falla.

polylineQuality

enum (PolylineQuality)

Opcional. Especifica tu preferencia para la calidad de la polilínea.

polylineEncoding

enum (PolylineEncoding)

Opcional. Especifica la codificación preferida para la polilínea.

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. Si estableces este valor en una hora que ya haya ocurrido, la solicitud fallará.

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".

routeModifiers

object (RouteModifiers)

Opcional. Es un conjunto de condiciones que se deben cumplir y que afectan la forma en que se calculan las rutas.

routeObjective

object (RouteObjective)

Obligatorio. Un objetivo de ruta para optimizar.

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 compatibles para ver la lista de idiomas compatibles. Cuando no proporcionas este valor, el idioma de visualización se infiere de la ubicación de la solicitud de ruta.

units

enum (Units)

Opcional. Especifica las unidades de medida para los campos de visualización. Esto incluye el campo instruction en NavigationInstruction. Las unidades de medida utilizadas para la ruta, el tramo, la distancia de paso y la duración no se ven afectadas por este valor. Si no proporcionas este valor, las unidades de visualización se infieren a partir de la ubicación de la solicitud.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de ComputeCustomRoutesResponse.

Permisos de autorización

Requiere el siguiente alcance de OAuth:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

Para obtener más información, consulta la Descripción general de OAuth 2.0.