Définir des points de cheminement intermédiaires

Les points de cheminement intermédiaires sont des lieux situés entre le point de départ et la destination que vous souhaitez que l'itinéraire emprunte. Un point de cheminement intermédiaire peut être un arrêt ou un lieu de passage. Pour obtenir un exemple de point de cheminement pour un arrêt, consultez Définir un arrêt sur un itinéraire. Pour voir un exemple de point de cheminement à transmettre, consultez Définir un point pour un itinéraire à transmettre.

Utilisez la propriété de tableau intermediates de la méthode computeRoutes (REST) ou de la méthode ComputeRoutes (gRPC) pour définir jusqu'à 25 points de cheminement intermédiaires.

Pour chaque point de cheminement intermédiaire de la requête, l'objet Route (REST) ou l'objet Route (gRPC) de la réponse ajoute une entrée au tableau legs pour fournir les détails de cette partie du trajet.

Chaque étape d'un itinéraire est représentée par un objet RouteLeg (REST) ou RouteLeg (gRPC). Contrôlez les champs RouteLeg à renvoyer à l'aide du masque de champ de réponse.

Exemple : Définir un point de cheminement intermédiaire

L'exemple suivant utilise la propriété de tableau intermediates pour ajouter un seul point de cheminement intermédiaire au corps de la requête POST d'un itinéraire.

Cet exemple utilise un masque de champ de réponse dans l'en-tête X-Goog-FieldMask qui spécifie de renvoyer les champs suivants dans la réponse:

  • routes.duration
  • routes.distanceMeters
  • routes.legs correspondant à l'ensemble de l'objet RouteLeg.
curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    },
    "sideOfRoad": true
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "departureTime": "2022-10-15T15:01:23.045123456Z",
  "computeAlternativeRoutes": false,
  "routeModifiers": {
    "avoidTolls": false,
    "avoidHighways": false,
    "avoidFerries": false
  },
  "languageCode": "en-US",
  "units": "IMPERIAL"
}'
-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'

La réponse de cet appel contient le tableau legs. Chaque étape de l'étape est représentée par un objet RouteLegStep (REST) ou RouteLegStep (gRPC).

{
  "routes": [
    {
      "legs": [
        # First leg
        {
            "distanceMeters": 207,
            "duration": "89s",
            "staticDuration": "89s",
            "polyline": {
                "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?"
            },
            "startLocation": {
                "latLng": {
                    "latitude": 37.4197318,
                    "longitude": -122.0826233
                }
            },
            "endLocation": {
                "latLng": {
                    "latitude": 37.419734,
                    "longitude": -122.08077919999998
                }
            },
            "steps": [            {
              "distanceMeters": 21,
              "staticDuration": "6s",
              "polyline": {
                "encodedPolyline": "ipkcFjgchVd@@"
              },
              "startLocation": {
                "latLng": {
                  "latitude": 37.4197318,
                  "longitude": -122.0826233
                }
              },
              "endLocation": {
                "latLng": {
                  "latitude": 37.41954,
                  "longitude": -122.08262750000002
                }
              }
            },
            ...
        },
        # Second leg
        {
            "distanceMeters": 598,
            "duration": "159s",
            "staticDuration": "159s",
            "polyline": {
                "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?"
            },
            "startLocation": {
                "latLng": {
                    "latitude": 37.419734,
                    "longitude": -122.08077919999998
                }
            },
            "endLocation": {
                "latLng": {
                    "latitude": 37.417616599999995,
                    "longitude": -122.07938820000001
                }
            },
            "steps": [
                {
                  ...