Las preferencias de tráfico que selecciones equilibran la precisión de los detalles de la ruta con el rendimiento de la solicitud de una de las siguientes dos maneras:
- Conocimiento del tráfico: Devuelve los resultados más precisos posibles (mayor latencia).
- Sin tener en cuenta el tráfico: Devuelve los resultados lo más rápido posible (latencia más baja).
Cuando realices una solicitud, considera si es mejor devolver los resultados más precisos posibles o devolverlos lo más rápido posible. La biblioteca de Routes proporciona opciones que te permiten controlar la calidad de los datos de respuesta en comparación con la latencia de la respuesta.
Cómo establecer el nivel y el modelo de tráfico
Para especificar el nivel de tráfico, establece routingPreference en ComputeRoutesRequest. En la siguiente lista, se muestran las opciones de routingPreference disponibles:
TRAFFIC_UNAWARE(predeterminado): Muestra los resultados más rápido, con detalles de ruta aproximados.TRAFFIC_AWARE: Devuelve resultados más precisos con datos de tráfico en tiempo real, pero con una latencia mayor.TRAFFIC_AWARE_OPTIMAL: Devuelve los resultados más precisos posibles con datos de tráfico en tiempo real, pero con la latencia más alta.
La propiedad TRAFFIC_MODEL representa las suposiciones que se deben usar cuando se predice la duración en el tráfico (
TrafficModel.BEST_GUESS [predeterminado],
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
Cómo seleccionar el enrutamiento que tiene en cuenta el tráfico
Para crear una solicitud de ruta que tenga en cuenta el tráfico, sigue estos pasos:
-
Establece la propiedad
travelModeenDRIVING. -
Establece la propiedad
routingPreferenceen uno de los siguientes valores:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
NOTA:
TRAFFIC_UNAWAREes el parámetro de configuración predeterminado. -
Establece la propiedad
trafficModelen uno de los siguientes valores:-
TrafficModel.BEST_GUESS(predeterminado) -
TrafficModel.OPTIMISTIC -
TrafficModel.PESSIMISTIC
-
-
Establece la propiedad
extraComputationsenTRAFFIC_ON_POLYLINE. -
Solicita los campos
path,speedPathsyrouteLabels.
En la siguiente solicitud de ejemplo, se muestra cómo solicitar una ruta que tenga en cuenta el tráfico y que muestre datos de tráfico en la polilínea:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
Condiciones del tráfico
Las condiciones de tráfico caracterizan la velocidad del flujo de tráfico:
- Tráfico normal: No hay embotellamientos y el tráfico fluye a una velocidad normal.
- Tráfico de leve a moderado: Congestión creciente, con tráfico que fluye a una velocidad reducida.
- Mucho tráfico: Congestión grave, con una velocidad del tráfico muy reducida.
No tiene en cuenta el tráfico
TRAFFIC_UNAWARE es el parámetro de configuración predeterminado. Usa esta preferencia de ruta cuando quieras obtener respuestas lo más rápido posible y los detalles de la ruta aproximada sean suficientes.
Las rutas TRAFFIC_UNAWARE se calculan sin tener en cuenta las condiciones de tráfico actuales. Esta preferencia de enrutamiento genera la respuesta de solicitud más rápida (latencia más baja).
Si eliges TRAFFIC_UNAWARE, la ruta y la duración elegidas se basarán en la red de rutas y las condiciones de tráfico promedio, independientemente del tiempo.
Como resultado, las rutas pueden incluir caminos que se encuentren cerrados temporalmente. Los resultados de una solicitud determinada pueden variar con el tiempo debido a cambios en la red de rutas, actualizaciones de las condiciones promedio de tráfico y la naturaleza distribuida del servicio. Los resultados también pueden variar entre rutas muy similares en cualquier momento o con cualquier frecuencia.
Estas son las respuestas que verás:
duration: Contiene la ETA de la ruta.staticDuration: Es la ETA de la ruta, teniendo en cuenta solo la información histórica del tráfico. ParaTRAFFIC_UNAWARE, este campo contiene el mismo valor queduration.
Conocimiento del tráfico
Usa esta preferencia de enrutamiento cuando quieras detalles de enrutamiento más precisos que con TRAFFIC_UNAWARE y no te moleste que las respuestas se muestren con un aumento moderado en la latencia.
Cuando configuras la preferencia de enrutamiento TRAFFIC_AWARE, el servicio calcula la ruta teniendo en cuenta las condiciones de tráfico actuales. Como resultado, la ruta y sus detalles reflejan con mayor precisión las condiciones del mundo real. Dado que este aumento en la calidad de los datos se produce a expensas de la latencia de respuesta, se aplican optimizaciones de rendimiento para reducir gran parte de la latencia.
Estas son las respuestas que verás:
duration: Es la ETA que tiene en cuenta la información del tráfico en tiempo real.staticDuration: Es la ETA de la ruta, teniendo en cuenta solo la información histórica del tráfico.
Óptima con información del tráfico
Usa esta preferencia de enrutamiento cuando quieras obtener resultados de la más alta calidad sin importar cuánto tarden las respuestas. Esta preferencia de enrutamiento tiene la mayor demora en devolver respuestas (latencia más alta).
Cuando configuras la preferencia de ruta TRAFFIC_AWARE_OPTIMAL, el servicio calcula la ruta teniendo en cuenta las condiciones de tráfico actuales, pero no aplica optimizaciones de rendimiento. En este modo, el servidor realiza una búsqueda más exhaustiva de la red vial para encontrar la ruta óptima.
La preferencia de ruta TRAFFIC_AWARE_OPTIMAL es equivalente al modo que usan maps.google.com y la app de Google Maps para dispositivos móviles.
Cuando usas esta opción con computeRouteMatrix, la cantidad de elementos en una solicitud (cantidad de orígenes × cantidad de destinos) no puede exceder los 25.
Estas son las respuestas que verás:
duration: Es la ETA de la ruta que tiene en cuenta la información del tráfico en tiempo real.staticDuration: Es la ETA de la ruta, teniendo en cuenta solo la información histórica del tráfico.
Establece la hora de salida (opcional)
Usa esta propiedad solo para las solicitudes que tienen en cuenta el tráfico, en las que la hora de salida debe ser futura. Si no configuras la propiedad departureTime, se establece de forma predeterminada en la hora en la que realizas la solicitud.
Usa la propiedad departureTime junto con las opciones TRAFFIC_AWARE y TRAFFIC_AWARE_OPTIMAL cuando quieras ajustar la forma en que el servicio predice el tráfico al elegir una ruta.
TRAFFIC_UNAWARE: No se recomienda porque la elección de la ruta y la duración se basan en la red de rutas y las condiciones de tráfico promedio independientemente del tiempo.TRAFFIC_AWAREyTRAFFIC_AWARE_OPTIMAL: Se recomiendan para las salidas que se producirán en el futuro cercano, ya que estas preferencias tienen en cuenta las condiciones del tráfico en tiempo real. El tráfico en tiempo real se vuelve más importante y pertinente cuanto más se acerca el valor dedepartureTimeal momento presente. Cuanto más adelante establezcas la hora de partida, más se tendrán en cuenta las condiciones históricas del tráfico para seleccionar las rutas.
Obtén un token de ruta
Los tokens de ruta son una representación segura para la Web y codificada en Base64 de una ruta. Usa un token de ruta para compartir una ruta con el SDK de Navigation. El SDK usa este token para reconstruir la ruta y mantener la intención de navegación original, incluso durante un cambio de ruta.
Sigue estos pasos para obtener un token de ruta:
- Establece travelMode en
DRIVING. - Establece
routingPreferenceenTRAFFIC_AWAREoTRAFFIC_AWARE_OPTIMAL. - Solicita el campo
routeToken.
En la siguiente solicitud de ejemplo, se muestra cómo solicitar un token de ruta:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };