Par défaut, la méthode computeRoutes de la bibliothèque Routes calcule un itinéraire passant par plusieurs arrêts, appelés points de cheminement intermédiaires, dans l'ordre dans lequel vous les fournissez.
Vous pouvez demander à l'API Routes d'optimiser l'itinéraire fourni en réorganisant les arrêts dans un ordre plus efficace. L'optimisation des points de cheminement optimise le temps de trajet, mais tient également compte d'autres facteurs tels que la distance et le nombre de bifurcations pour déterminer l'itinéraire le plus efficace.
Pour optimiser les points de cheminement
- Assurez-vous qu'aucun des waypoints de l'itinéraire n'a la valeur
viadéfinie surtrue. - Assurez-vous que
routingPreferencen'est pas défini surTRAFFIC_AWARE_OPTIMAL. - Définissez
optimizeWaypointOrdersurtrue. - Spécifiez le champ
optimizedIntermediateWaypointIndicesdans le masque de champ.
Comprendre comment l'ordre des points de repère est optimisé
Voici comment l'API Routes optimise l'ordre des points de cheminement d'un itinéraire :
- Indexe automatiquement les waypoints en fonction de l'ordre dans lequel vous les fournissez dans la requête, en commençant par 0.
- Optimise l'ordre des points de cheminement à l'aide des numéros d'index qu'il leur a attribués dans la requête.
- Renvoie l'ordre optimisé des points de repère dans la réponse sous
optimizedIntermediateWaypointIndices.
Exemple de requête
L'exemple suivant montre comment demander des waypoints optimisés dans un itinéraire allant d'Adélaïde, en Australie-Méridionale, à chacune des principales régions viticoles d'Australie-Méridionale, puis retournant à Adélaïde.
const request = { origin: 'Adelaide, SA', destination: 'Adelaide, SA', intermediates: [ {location: "Barossa+Valley,SA"}, {location: "Clare,SA"}, {location: "Coonawarra,SA"}, {location: "McLaren+Vale,SA"}, ], travelMode: 'DRIVING', optimizeWaypointOrder: true, fields: ['path','optimizedIntermediateWaypointIndices'], };
Exemple de réponse
La réponse inclutoptimizedIntermediateWaypointIndices.
Response: [ { "optimizedIntermediateWaypointIndices": [ 3, // McLaren+Vale, SA 2, // Coonawarra, SA 0, // Barossa+Valley, SA 1 // Clare, SA ], ...