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. que vous souhaitez faire passer. Un point de cheminement intermédiaire peut être un arrêt ou vous pouvez le spécifier comme un lieu à traverser. Voici un exemple de point de cheminement un arrêt, consultez la section Définir un arrêt sur un itinéraire. Par exemple, point de cheminement à passer, Définir le point de passage d'un itinéraire.

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

Pour chaque point de cheminement intermédiaire de la requête, le Objet Route (REST) ou Objet de routage (gRPC) dans la réponse ajoute une entrée au tableau legs pour fournir les détails cette étape du parcours.

Chaque section d'un itinéraire est représentée RouteLeg (REST) ou un objet RouteLeg (gRPC). Contrôlez les champs RouteLeg à renvoyer à l'aide de la propriété 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 vers le 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. spécifiant 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 pas de la jambe est représentées par RouteLegStep (REST) ou un objet 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": [
                {
                  ...