Cómo calcular rutas

La herramienta compute_routes devuelve una ruta entre un origen y un destino para un medio de transporte determinado. La respuesta incluye la distancia y la duración de la ruta. De forma predeterminada, las rutas se calculan sin tráfico en tiempo real. Pro agrega rutas que tienen en cuenta el tráfico en tiempo real y rutas con más paradas intermedias.

Puedes llamar a compute_routes a través del servidor de MCP o como el método REST computeRoutes. En esta página, se describen las opciones de solicitud, incluidas las opciones de Pro, lo que contiene la respuesta y cómo se facturan las solicitudes. Para ver los esquemas completos, consulta la referencia de MCP de compute_routes y la referencia de REST de computeRoutes.

Opciones de solicitud

En la siguiente tabla, se describen las opciones de solicitud para compute_routes:

Opción Descripción
origin, destination Obligatorio. Cada uno es un punto de referencia: un address (una dirección legible por humanos o un Plus Code), un place_id o un lat_lng. Puedes mezclar formatos, por ejemplo, una dirección para el origen y un ID de lugar para el destino.
travel_mode El medio de transporte: DRIVE (predeterminado), WALK, BICYCLE o TRANSIT. Las rutas de WALK están en versión beta y, a veces, es posible que no incluyan aceras o rutas peatonales claras. Debes mostrar esta advertencia al usuario en todas las rutas a pie que muestres en tu app.
routing_preference Cómo se usan los datos de tráfico para calcular la ruta: ROUTING_PREFERENCE_TRAFFIC_UNAWARE (predeterminado) o ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL, que es una opción Pro. ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL no es compatible con WALK ni BICYCLE. Consulta Ruta compatible con información de tráfico en tiempo real.
intermediate_waypoints Son paradas ordenadas entre el origen y el destino. La ruta pasa por ellos en el orden indicado. Una solicitud puede incluir hasta 10 puntos de referencia intermedios, o de 11 a 25 como una opción Pro. Una solicitud con más de 25 devuelve un error INVALID_ARGUMENT. Las rutas de transporte público no admiten puntos de referencia intermedios.
departure_time o arrival_time Cuándo salir del origen o llegar al destino, como una marca de tiempo RFC 3339. Establece un valor como máximo. La configuración predeterminada es la hora de salida actual. Para TRANSIT, la hora puede ser de hasta 7 días en el pasado o 100 días en el futuro. Para otros medios de transporte, la hora no puede ser en el pasado y puede ser hasta 365 días en el futuro.
compute_alternative_routes Cuando se establece en true, la respuesta incluye rutas alternativas además de la ruta recomendada, cuando hay alternativas disponibles. La configuración predeterminada es false.
include_polyline Cuando se establece en true, cada ruta de la respuesta incluye encodedPolyline. La configuración predeterminada es false.
location_bias Son las coordenadas de latitud y longitud que sesgan la forma en que se resuelven los puntos de referencia de texto, por ejemplo, para eliminar la ambigüedad de una dirección.

Opciones de Pro

Dos opciones seleccionan el SKU de Maps Grounding Pro. Una solicitud que use uno o ambos se factura con el SKU Pro:

Opción Pro Cuándo se utiliza
Se estableció ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL como la dirección de tu routing_preference El usuario pregunta sobre el tráfico, la congestión o la duración del viaje que tiene en cuenta el tráfico actual. Consulta Ruta compatible con información de tráfico en tiempo real.
De 11 a 25 intermediate_waypoints La ruta necesita más de 10 paradas entre el origen y el destino.

Todas las demás opciones se facturan con el SKU de Essentials, incluidos el modo de viaje, el tiempo, las rutas alternativas, las polilíneas y la preferencia de ubicación.

Enrutamiento adaptado al tráfico

De forma predeterminada, las rutas se calculan sin condiciones de tráfico en tiempo real (ROUTING_PREFERENCE_TRAFFIC_UNAWARE). Este parámetro de configuración tiene la latencia más baja. Es adecuado para solicitudes en las que el tráfico no importa o no se aplica, como rutas a pie o planificación aproximada.

Establece routing_preference en ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL para calcular la ruta y su duración con las condiciones de tráfico actuales, cuando haya datos de tráfico disponibles. Úsala cuando el usuario pregunte cuánto tarda un viaje en auto en este momento. Para las rutas de TRANSIT, este parámetro de configuración usa datos de transporte público en tiempo real, como retrasos y cancelaciones, cuando están disponibles. No se admite para las rutas WALK ni BICYCLE. Esas solicitudes devuelven un error INVALID_ARGUMENT. Esta es una opción Pro, por lo que la solicitud se factura con el SKU Pro. Esta opción también agrega latencia.

Ejemplo

La siguiente solicitud de MCP pide una ruta de conducción con información del tráfico, una parada intermedia y una polilínea codificada. Se factura con el SKU de Pro:

{
  "method": "tools/call",
  "params": {
    "name": "compute_routes",
    "arguments": {
      "origin": {"address": "Ferry Building, San Francisco, CA"},
      "destination": {"address": "Golden Gate Park, San Francisco, CA"},
      "intermediate_waypoints": [
        {"address": "Palace of Fine Arts, San Francisco, CA"}
      ],
      "travel_mode": "DRIVE",
      "routing_preference": "ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL",
      "include_polyline": true
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}

En el siguiente ejemplo, se envía la misma solicitud al método REST computeRoutes:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-d '{
  "origin": {"address": "Ferry Building, San Francisco, CA"},
  "destination": {"address": "Golden Gate Park, San Francisco, CA"},
  "intermediateWaypoints": [
    {"address": "Palace of Fine Arts, San Francisco, CA"}
  ],
  "travelMode": "DRIVE",
  "routingPreference": "ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL",
  "includePolyline": true
}' \
"https://mapstools.googleapis.com/v1:computeRoutes"

Reemplaza API_KEY por tu clave de API.

Respuesta

La respuesta contiene routes[], ordenadas de la más a la menos recomendada. Solo se devuelve una ruta, a menos que compute_alternative_routes sea true. Cada ruta incluye lo siguiente:

  • distanceMeters: Es la distancia de viaje de la ruta, en metros.
  • duration: Es el tiempo necesario para recorrer la ruta. Con ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL, la duración tiene en cuenta las condiciones de tráfico.
  • encodedPolyline: Es la ruta de acceso de la ruta como una polilínea codificada, cuando include_polyline es true. Puedes usarla para dibujar la ruta en un mapa con otras APIs de Google Maps Platform.
  • retrievalToken: Es un token opaco que se devuelve para las rutas de DRIVE (válido durante 10 minutos) y que puedes pasar a search_along_route para encontrar lugares a lo largo de esa ruta sin volver a enviar puntos de referencia.
  • attribution: Es la atribución que debes mostrar con la ruta. Consulta los requisitos de atribución.

Facturación y cuotas

Cada solicitud de compute_routes es un evento facturable:

Solicitar rutas alternativas, una polilínea, una hora de salida o llegada, o un medio de transporte diferente no cambia el SKU.

La cuota de compute_routes es de 300 consultas por minuto para cada proyecto, que comparten ambos SKU. Para conocer los precios, consulta la tabla de precios principal y la tabla de precios de India.

Límites

  • Una solicitud puede incluir un máximo de 25 puntos de referencia intermedios; de 11 a 25 es una opción Pro. Una solicitud con más de esa cantidad devuelve un error INVALID_ARGUMENT.
  • Las rutas de transporte público no admiten puntos de referencia intermedios. Una solicitud de transporte público con puntos de referencia intermedios devuelve un error INVALID_ARGUMENT.
  • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL no se admite para las rutas a pie o en bicicleta.
  • En el caso de las rutas de transporte público, las horas de salida y llegada pueden ser de hasta 7 días en el pasado o 100 días en el futuro. Para otros medios de transporte, no pueden ser en el pasado y pueden ser hasta 365 días en el futuro.
  • Las coordenadas de los puntos de referencia deben estar dentro de límites geográficos válidos (latitud de -90 a 90, longitud de -180 a 180).
  • La herramienta no devuelve pasos, tramos ni detalles de líneas de transporte público.