Установите промежуточные путевые точки

Разработчики Европейской экономической зоны (ЕЭЗ)

Промежуточные путевые точки — это местоположения между исходной и конечной точкой, через которые должен проходить маршрут. Промежуточная путевая точка может быть остановкой или вы можете указать ее как местоположение для проезда. Пример путевой точки для остановки см. в разделе Установка остановки вдоль маршрута . Пример путевой точки для проезда см. в разделе Установка точки для маршрута для проезда .

Используйте свойство массива intermediates точек метода computeRoutes (REST) ​​или метода ComputeRoutes (gRPC), чтобы определить до 25 промежуточных точек маршрута.

Для каждой промежуточной точки маршрута в запросе объект Route (REST) ​​или объект Route (gRPC) в ответе добавляет запись в массив legs , чтобы предоставить подробную информацию об этом этапе пути.

Каждый участок маршрута представлен объектом RouteLeg (REST) ​​или RouteLeg (gRPC). Управляйте возвращаемыми полями RouteLeg с помощью маски поля ответа .

Пример — установка промежуточной точки маршрута

В следующем примере свойство массива intermediates используется для добавления одной промежуточной точки маршрута в тело запроса POST маршрута.

В этом примере используется маска поля ответа в заголовке X-Goog-FieldMask , которая указывает на необходимость возврата следующих полей в ответе:

  • routes.duration
  • routes.distanceMeters
  • routes.legs , соответствующие всему объекту 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'

Ответ этого вызова содержит массив legs . Каждый шаг leg представлен объектом RouteLegStep (REST) ​​или 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": [
                {
                  ...