Optimiser l'ordre des arrêts sur votre itinéraire

Par défaut, la méthode Compute Routes de l'API Routes calcule un itinéraire passant par plusieurs arrêts, appelés points de cheminement avec arrêt, dans l'ordre dans lequel vous les indiquez.

L'API Routes peut 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 quel itinéraire est le plus efficace.

Pour optimiser les points de cheminement

  1. Assurez-vous qu'aucun point de cheminement de l'itinéraire n'est via défini sur true, par exemple: {"address": "Clare,SA", "via": true}. Pour en savoir plus sur les points de cheminement intermédiaires, consultez Spécifier des points de cheminement intermédiaires.

  2. Assurez-vous que routing_preference n'est pas défini sur TRAFFIC_AWARE_OPTIMAL.

  3. Définissez optimize_waypoint_order sur true. Exemple :

    "optimizeWaypointOrder": "true",
    
  4. Spécifiez le champ routes.optimizedIntermediateWaypointIndex dans le masque de champ:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Découvrez comment optimiser l'ordre des points de cheminement

Voici comment l'API Routes optimise l'ordre des points de cheminement sur un itinéraire:

  1. Indexe automatiquement les points de cheminement en fonction de l'ordre dans lequel vous les indiquez dans la requête, en commençant par 0.

  2. Optimise l'ordre des points de cheminement en utilisant les numéros d'index qu'il a attribués aux points de cheminement dans la requête.

  3. Renvoie l'ordre optimisé des points de cheminement dans l'objet routes, dans le champ waypoint_order, sous routes.optimizedIntermediateWaypointIndex.

Exemple

Cette demande porte sur l'optimisation d'un itinéraire depuis Adélaïde, en Australie-Méridionale, vers chacune des principales régions viticoles d'Australie-Méridionale, avant de retourner à Adélaïde.

curl -X POST -H 'content-type: application/json' -d ' {
  "origin": {
    "address": "Adelaide,SA"
  },
  "destination": {
    "address": "Adelaide,SA"
  },
  "intermediates": [
    {"address": "Barossa+Valley,SA"},
    {"address": "Clare,SA"},
    {"address": "Connawarra,SA"},
    {"address": "McLaren+Vale,SA"}
  ],
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": "true"
  }' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

L'API Routes indexe les points de cheminement intermédiaires fournis dans la requête, à partir de 0. Exemple :

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Connawarra,SA"},
3    {"address": "McLaren+Vale,SA"}

En utilisant les numéros d'index des quatre points de cheminement fournis dans la requête, le service renvoie ensuite l'ordre optimisé:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]