Définir des points de cheminement intermédiaires

Développeurs de l'Espace économique européen (EEE)

Les points de cheminement intermédiaires sont des lieux spécifiés entre le point de départ et la destination par lesquels vous souhaitez que l'itinéraire passe.

Vous pouvez définir jusqu'à 25 points de chemin intermédiaires dans une seule requête à l'aide de la propriété de tableau intermediates de la méthode REST computeRoutes ou de la méthode gRPC ComputeRoutes.

Escales et points de cheminement de transit

Vous pouvez configurer un point de cheminement intermédiaire comme un point d'arrêt ou un lieu de passage :

  • Escale : par défaut, le véhicule s'arrête à l'emplacement. Chaque point de cheminement avec arrêt divise l'itinéraire en ajoutant une entrée RouteLeg au tableau legs dans la réponse. Pour en savoir plus, consultez Définir un arrêt sur un itinéraire.
  • Point de cheminement de passage avec "via" défini sur true : le véhicule traverse le lieu sans s'arrêter. Les points de cheminement de passage n'ajoutent pas d'entrées au tableau legs. Pour en savoir plus, consultez Définir un point de passage pour un itinéraire.

Tronçons d'itinéraire et points de cheminement intermédiaires

Pour chaque arrêt intermédiaire d'une requête, la réponse contient un objet RouteLeg distinct dans le tableau routes.legs.

Par exemple, un itinéraire avec un point de départ, une étape intermédiaire et une destination contient deux sections : * Section 1 : du point de départ à l'étape intermédiaire. * Étape 2 : de l'escale intermédiaire à la destination.

Exemple : requête avec un point de chemin intermédiaire

L'exemple suivant utilise le tableau intermediates pour ajouter une seule étape intermédiaire à un itinéraire.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    }
  ],
  "travelMode": "DRIVE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Réponse avec plusieurs étapes d'itinéraire

Étant donné que le point de cheminement intermédiaire de la requête est une escale qui ne définit pas "via": true, la réponse divise l'itinéraire en deux étapes dans le tableau legs :

{
  "routes": [
    {
      "distanceMeters": 805,
      "duration": "248s",
      "legs": [
        {
          "distanceMeters": 207,
          "duration": "89s",
          "startLocation": {
            "latLng": {
              "latitude": 37.4197318,
              "longitude": -122.0826233
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.419734,
              "longitude": -122.0807792
            }
          }
        },
        {
          "distanceMeters": 598,
          "duration": "159s",
          "startLocation": {
            "latLng": {
              "latitude": 37.419734,
              "longitude": -122.0807792
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.4176166,
              "longitude": -122.0793882
            }
          }
        }
      ]
    }
  ]
}