Par défaut, l'API Routes renvoie la route par défaut, qui est généralement l'itinéraire le plus rapide entre le point de départ et la destination. Lorsque vous demandez des routes alternatives, l'API renvoie jusqu'à trois routes en plus de la route par défaut. Vos clients peuvent alors choisir l'itinéraire qui correspond le mieux à leurs besoins.
Éléments à prendre en compte lors de la demande d'itinéraires alternatifs
Pour demander d'autres itinéraires, tenez compte des points suivants:
Vous ne pouvez demander des itinéraires alternatifs que pour les itinéraires sans points de cheminement intermédiaires. Demander des itinéraires alternatifs lorsque l'itinéraire spécifie des points de cheminement intermédiaires n'entraîne pas d'erreur. Toutefois, aucune route alternative n'est renvoyée.
La réponse contient un maximum de trois itinéraires alternatifs. Toutefois, parfois aucune route alternative n'est disponible. La réponse ne contient donc que la route par défaut.
En raison du traitement supplémentaire requis pour calculer les routes alternatives, la demande de routes alternatives peut augmenter le temps de réponse de l'API.
Exemple de requête d'itinéraires alternatifs
Définissez computeAlternativeRoutes
sur true
pour demander d'autres itinéraires. L'exemple suivant montre comment demander des routes alternatives dans une requête de méthode computeRoutes (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Dans cet exemple, vous spécifiez un masque de champ afin que la réponse ne contienne que les propriétés duration
, distanceMeters,
et routeLabels
pour chaque itinéraire. Votre client peut alors choisir la voie à suivre à l'aide de ces informations. Pour en savoir plus, consultez la section Choisir les informations à renvoyer.
Exemple de réponse d'un itinéraire alternatif
Dans la réponse, utilisez la propriété de tableau routeLabels
pour identifier la route d'accès:
Pour la route par défaut, la propriété
routeLabels
contientDEFAULT_ROUTE
.Pour tout itinéraire bis, la propriété
routeLabels
contientDEFAULT_ROUTE_ALTERNATE
.
Dans cet exemple, la réponse contient la route par défaut et deux routes alternatives. Notez que les valeurs des propriétés duration
et distanceMeters
sont différentes pour chaque itinéraire:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Inclure des polylignes dans la réponse
Pour que l'utilisateur puisse sélectionner plus facilement l'itinéraire, ajoutez la polyligne de chaque itinéraire à la réponse. Vous pouvez ensuite afficher chaque polyligne sur une carte.
Pour ajouter la polyligne, incluez routes.polyline
dans le masque de champ:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
La réponse contient ensuite la polyligne pour chaque itinéraire:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }