Lorsque vous effectuez une requête, vous devrez peut-être décider s'il est préférable de renvoyer les résultats les plus précis possible ou aussi rapidement que possible. L'API 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.
Configurer le niveau des données de trafic
L'API Routes fournit les fonctionnalités RoutingPreference (REST) et RoutingPreference (gRPC) qui vous permettent de spécifier des préférences de routage pour le calcul des routes. Ces préférences diffèrent dans la mesure où elles tiennent compte des conditions de trafic dans le calcul de l'itinéraire. Chaque préférence de routage produit des résultats qui diffèrent pour la qualité de l'itinéraire, l'heure d'arrivée prévue et la latence des réponses.
Les conditions de circulation caractérisent la vitesse de circulation. Exemple :
- En l'absence d'encombrement, les conditions de circulation sont considérées comme normales, et le trafic circule à vitesse normale.
- Très proche de l'heure de pointe, la densité du trafic augmente, ce qui ralentit le trafic, produisant de légères conditions de circulation.
- Dans le trafic bumper, le débit s'arrête et la circulation est dense.
Trafic inconscient
Lorsque vous définissez la préférence de routage TRAFFIC_UNAWARE
, les routes sont calculées sans tenir compte des conditions de trafic actuelles. Cette préférence de routage fournit la latence de réponse la plus faible (les réponses sont renvoyées le plus rapidement).
TRAFFIC_UNAWARE
est le paramètre par défaut.
Dans la réponse:
L'heure d'arrivée prévue est contenue dans la propriété de réponse
duration
.Les propriétés de réponse
duration
etstaticDuration
contiennent la même valeur.
Utilisez cette préférence de routage lorsque vous souhaitez que les réponses renvoient le plus rapidement possible et que les détails de routage approximatifs soient suffisants.
Infos trafic
Lorsque vous définissez la préférence de routage TRAFFIC_AWARE
, les routes sont calculées en tenant compte des conditions de circulation actuelles. Par conséquent, les détails de la route reflètent plus précisément les conditions réelles. Cette augmentation de la qualité des données s'effectue au détriment de la latence des réponses. Des optimisations de performances sont donc appliquées pour réduire la latence.
Dans la réponse:
L'heure d'arrivée prévue en tenant compte du trafic en temps réel est contenue dans la propriété de réponse
duration
.La propriété de réponse
staticDuration
contient la durée de la route sans tenir compte des conditions de circulation.
Utilisez cette préférence de routage lorsque vous souhaitez des informations de routage plus précises que TRAFFIC_UNAWARE
, et que cela ne vous dérange pas que les réponses soient renvoyées avec une augmentation modérée de la latence.
Trafic optimal optimal
Lorsque vous définissez la préférence de routage TRAFFIC_AWARE_OPTIMAL
, les routes sont calculées en tenant compte des conditions de trafic actuelles, mais aucune optimisation des performances n'est appliquée. Dans ce mode, le serveur effectue une recherche plus exhaustive sur le réseau routier afin de trouver l'itinéraire optimal.
La préférence de routage TRAFFIC_AWARE_OPTIMAL
équivaut au mode utilisé par maps.google.com et par l'application mobile Google Maps.
Lorsque vous utilisez cette option avec la matrice de routage de Compute, le nombre d'éléments dans une requête (nombre d'origines × nombre de destinations) ne peut pas dépasser 100. Pour en savoir plus sur les limites de la matrice de routage Compute, consultez la section Calculer une matrice de routes.
Dans la réponse:
L'heure d'arrivée prévue en tenant compte du trafic en temps réel est contenue dans la propriété de réponse
duration
.La propriété de réponse
staticDuration
contient la durée de la route sans tenir compte des conditions de circulation.
Cette préférence de routage fournit la latence de réponse la plus élevée (les réponses renvoient le délai le plus long). Utilisez cette préférence de routage lorsque vous souhaitez obtenir des résultats de la plus haute qualité, quelle que soit la durée des réponses.
Effet de la définition de l'heure de départ
Vous pouvez éventuellement utiliser la propriété departureTime
pour définir l'heure souhaitée de départ d'un trajet. Si vous ne définissez pas la propriété departureTime
, la valeur par défaut est l'heure à laquelle vous effectuez la requête.
Pour
TRAFFIC_UNAWARE
, vous ne pouvez pas définirdepartureTime
, car le choix de l'itinéraire et la durée sont basés sur le réseau routier et les conditions de circulation moyennes toutes heures confondues.Pour
TRAFFIC_AWARE
etTRAFFIC_AWARE_OPTIMAL
, qui prennent en compte les conditions de trafic en temps réel, le trafic en direct devient plus important à l'approche dedepartureTime
. Plus vous définissez une heure de départ dans le futur, plus les conditions de circulation historiques sont prises en compte.
Exemple de paramétrage d'une préférence de routage
Le code JSON suivant montre comment définir la préférence de routage dans un corps d'entité de message de requête.
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
Configurer la qualité des polylignes
L'API Routes vous permet d'obtenir des informations sur les conditions de circulation le long d'une polyligne tenant compte du trafic. Pour en savoir plus, consultez Demander des polylignes.
La qualité d'une polyligne peut être décrite dans les termes suivants:
Nombre de points qui composent la polyligne
Plus il y a de points, plus la polyligne est lisse (en particulier dans les courbes).
Précision des points en virgule flottante
Les points sont spécifiés en tant que valeurs de latitude et de longitude, représentées par un format à virgule flottante à simple précision. Cela fonctionne bien pour les petites valeurs (qui peuvent être représentées avec précision), mais la précision diminue à mesure que les valeurs augmentent en raison d'erreurs d'arrondi à virgule flottante.
Les méthodes computeRoutes (REST) et ComputeRoutes (gRPC) acceptent l'option de requête polylineQuality
pour contrôler la qualité des polylignes.
Exemple de paramétrage de la qualité des polylignes
polylineQuality
spécifie la qualité de la polyligne en tant que HIGH_QUALITY
ou OVERVIEW
(valeur par défaut). Avec OVERVIEW
, la polyligne est composée d'un petit nombre de points et présente une latence de requête inférieure à HIGH_QUALITY
.
Par exemple, dans le corps de la requête:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "polylineQuality": "HIGH_QUALITY", "polylineEncoding": "ENCODED_POLYLINE", "departureTime": "2023-10-15T15:01:23.045123456Z", ... }