Définir des points de cheminement intermédiaires

Les points de cheminement intermédiaires sont des emplacements situés entre le point de départ et la destination par lesquels vous souhaitez que l'itinéraire passe. 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 la section Définir un arrêt sur un itinéraire. Pour obtenir un exemple de point de cheminement à passer, consultez la section Définir le point d'un itinéraire à passer.

Utilisez la propriété de tableau intermediates de la méthode computeRoutes (REST) ou 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 section du trajet.

Chaque section d'une route 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'une route.

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

  • routes.duration
  • routes.distanceMeters
  • routes.legs correspondant à l'intégralité 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 à cet appel contient le tableau legs. Chaque étape de la section 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": [
                {
                  ...