Par défaut, l'API Routes renvoie l'itinéraire par défaut, qui est généralement l'itinéraire le plus rapide du point de départ à la destination. Lorsque vous demandez des itinéraires alternatifs, l'API renvoie jusqu'à trois itinéraires en plus de l'itinéraire par défaut. Vos clients peuvent ensuite choisir l'itinéraire qui répond le mieux à leurs besoins.
Éléments à prendre en compte lorsque vous demandez des itinéraires bis
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 ne provoque pas d'erreur. Cependant, aucun itinéraire alternatif n'est renvoyé.
La réponse contient au maximum trois itinéraires alternatifs. Toutefois, il arrive qu'aucun itinéraire alternatif ne soit disponible. Dans ce cas, la réponse ne contient que l'itinéraire par défaut.
Étant donné que le calcul d'itinéraires alternatifs nécessite un traitement supplémentaire, la demande d'itinéraires alternatifs 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 des itinéraires bis. L'exemple suivant montre comment demander des itinéraires alternatifs 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 ensuite utiliser ces informations pour choisir l'itinéraire à emprunter. Pour en savoir plus, consultez Choisir les informations à renvoyer.
Exemple de réponse pour les itinéraires alternatifs
Dans la réponse, utilisez la propriété de tableau routeLabels
pour identifier l'itinéraire de couverture :
Pour la route par défaut, la propriété
routeLabels
contientDEFAULT_ROUTE
.Pour tout itinéraire alternatif, la propriété
routeLabels
contientDEFAULT_ROUTE_ALTERNATE
.
Dans cet exemple, la réponse contient l'itinéraire par défaut et deux itinéraires alternatifs. 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 permettre à l'utilisateur de sélectionner plus facilement l'itinéraire, ajoutez la polyline 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" ] } ] }