Définir les options de trafic

Développeurs de l'Espace économique européen (EEE)

Les préférences de trafic que vous sélectionnez équilibrent la précision des informations sur l'itinéraire et les performances des requêtes de deux manières :

  • Trafic pris en compte : renvoie les résultats les plus précis possible (latence plus élevée).
  • Sans tenir compte du trafic : renvoyez les résultats le plus rapidement possible (latence la plus faible).

Lorsque vous envoyez une requête, réfléchissez à la pertinence de renvoyer les résultats les plus précis possible ou de renvoyer les résultats le plus rapidement possible. La bibliothèque Routes fournit des options qui vous permettent de contrôler la qualité des données de réponse par rapport à la latence de la réponse.

Définir le niveau et le modèle de trafic

Pour spécifier le niveau de trafic, définissez routingPreference sur ComputeRoutesRequest. La liste suivante présente les options routingPreference disponibles :

  • TRAFFIC_UNAWARE (par défaut) : renvoie les résultats le plus rapidement possible, avec des informations de routage approximatives.
  • TRAFFIC_AWARE : renvoie des résultats plus précis à l'aide de données de trafic en temps réel, mais avec une latence plus élevée.
  • TRAFFIC_AWARE_OPTIMAL : renvoie les résultats les plus précis possible à l'aide de données de trafic en temps réel, mais avec la latence la plus élevée.

La propriété TRAFFIC_MODEL représente les hypothèses à utiliser pour prédire la durée du trajet en fonction du trafic ( TrafficModel.BEST_GUESS (par défaut), TrafficModel.OPTIMISTIC, TrafficModel.PESSIMISTIC).

Sélectionner le routage tenant compte du trafic

Pour créer une demande d'itinéraire tenant compte du trafic, procédez comme suit :

  1. Définissez la propriété travelMode sur DRIVING.

  2. Définissez la propriété routingPreference sur l'une des valeurs suivantes :

    • TRAFFIC_AWARE
    • TRAFFIC_AWARE_OPTIMAL

    REMARQUE : TRAFFIC_UNAWARE est le paramètre par défaut.

  3. Définissez la propriété trafficModel sur l'une des valeurs suivantes :

  4. Définissez la propriété extraComputations sur TRAFFIC_ON_POLYLINE.

  5. Demandez les champs path, speedPaths et routeLabels.

L'exemple de requête suivant montre comment demander un itinéraire tenant compte du trafic qui affiche les données de trafic sur la polyligne :

// 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'],
};
    

Conditions de circulation

Les conditions de circulation caractérisent le débit du trafic :

  • Trafic normal : aucune congestion, le trafic circule à une vitesse normale.
  • Trafic faible à modéré : la circulation se densifie et le trafic ralentit.
  • Trafic dense : embouteillages importants, avec une vitesse de circulation très réduite.

Non conscient du trafic

TRAFFIC_UNAWARE est le paramètre par défaut. Utilisez cette préférence de routage lorsque vous souhaitez obtenir les réponses le plus rapidement possible et que des informations de routage approximatives vous suffisent.

Les itinéraires TRAFFIC_UNAWARE sont calculés sans tenir compte des conditions de circulation actuelles. Cette préférence de routage permet d'obtenir la réponse la plus rapide à la requête (latence la plus faible).

Si vous sélectionnez TRAFFIC_UNAWARE, l'itinéraire et la durée sont déterminés en fonction du réseau routier et des conditions de circulation moyennes toutes heures confondues, et non de l'état actuel des routes. Par conséquent, l'itinéraire peut inclure des routes temporairement fermées. Les résultats d'une requête donnée peuvent varier au fil du temps en raison des modifications du réseau routier, des nouvelles moyennes de conditions de circulation et de la nature distribuée du service. Les résultats peuvent également varier entre plusieurs itinéraires presque équivalents à tout moment et à n'importe quelle fréquence.

Voici les réponses que vous verrez :

  • duration : contient l'heure d'arrivée prévue pour l'itinéraire.
  • staticDuration : heure d'arrivée prévue pour l'itinéraire, en tenant compte uniquement des informations historiques sur le trafic. Pour TRAFFIC_UNAWARE, cette valeur est identique à celle de duration.

Trafic pris en compte

Utilisez cette préférence de routage lorsque vous souhaitez obtenir des informations de routage plus précises que TRAFFIC_UNAWARE, mais que vous ne craignez pas que les réponses soient renvoyées avec une augmentation modérée de la latence.

Lorsque vous définissez la préférence de routage TRAFFIC_AWARE, le service calcule l'itinéraire en tenant compte des conditions de circulation actuelles. Par conséquent, l'itinéraire et ses détails reflètent plus précisément les conditions réelles. Comme cette amélioration de la qualité des données se fait au détriment de la latence de réponse, des optimisations des performances sont appliquées pour réduire une grande partie de la latence.

Voici les réponses que vous verrez :

  • duration : heure d'arrivée prévue en tenant compte des informations sur le trafic en temps réel.
  • staticDuration : heure d'arrivée prévue pour l'itinéraire, en tenant compte uniquement des informations historiques sur le trafic.

Routage optimal prenant en compte le trafic

Utilisez cette préférence de routage lorsque vous souhaitez obtenir des résultats de la meilleure qualité possible, sans tenir compte du temps de réponse. Cette préférence de routage présente le délai de réponse le plus long (latence la plus élevée).

Lorsque vous définissez la préférence de routage TRAFFIC_AWARE_OPTIMAL, le service calcule l'itinéraire en tenant compte des conditions de trafic actuelles, mais n'applique pas d'optimisations des performances. Dans ce mode, le serveur effectue une recherche plus exhaustive du réseau routier pour trouver l'itinéraire optimal.

La préférence de routage TRAFFIC_AWARE_OPTIMAL est équivalente au mode utilisé par maps.google.com et par l'application mobile Google Maps.

Lorsque vous utilisez cette option avec computeRouteMatrix, le nombre d'éléments dans une requête (nombre d'origines × nombre de destinations) ne peut pas dépasser 25.

Voici les réponses que vous verrez :

  • duration : heure d'arrivée prévue pour l'itinéraire, en tenant compte des informations sur le trafic en temps réel.
  • staticDuration : heure d'arrivée prévue pour l'itinéraire, en tenant compte uniquement des informations historiques sur le trafic.

Définir une heure de départ (facultatif)

N'utilisez cette propriété que pour les requêtes tenant compte du trafic, lorsque l'heure de départ doit être dans le futur. Si vous ne définissez pas la propriété departureTime, la valeur par défaut est l'heure à laquelle vous envoyez la requête.

Utilisez la propriété departureTime avec les options TRAFFIC_AWARE et TRAFFIC_AWARE_OPTIMAL lorsque vous souhaitez ajuster la façon dont le service prédit le trafic lors du choix d'un itinéraire.

  • TRAFFIC_UNAWARE : Non recommandé, car le choix de l'itinéraire et de la durée est basé sur le réseau routier et les conditions de circulation moyennes toutes heures confondues.
  • TRAFFIC_AWARE et TRAFFIC_AWARE_OPTIMAL : Recommandé pour les départs prévus dans un avenir proche, car ces préférences tiennent compte des conditions de trafic en temps réel. Plus departureTime est proche de l'heure actuelle, plus la circulation en temps réel devient importante et pertinente. Plus vous définissez une heure de départ éloignée dans le futur, plus les conditions de trafic historiques sont prises en compte pour sélectionner les itinéraires.

Obtenir un jeton d'itinéraire

Les jetons de route sont une représentation d'une route encodée en base64 et adaptée au Web. Utilisez un jeton de route pour partager une route avec le SDK Navigation. Le SDK utilise ce jeton pour reconstruire l'itinéraire et conserver l'intention de navigation d'origine, même en cas de changement d'itinéraire.

Pour obtenir un jeton d'itinéraire, procédez comme suit :

  • Définissez travelMode sur DRIVING.
  • Définissez routingPreference sur TRAFFIC_AWARE ou TRAFFIC_AWARE_OPTIMAL.
  • Demandez le champ routeToken.

L'exemple de requête suivant montre comment demander un jeton de route :

// 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'],
};