Рассчитать сводку маршрутизации

Чтобы использовать текстовый поиск (новая функция) или поиск поблизости (новая функция) для расчета продолжительности поездки и расстояния до каждого места в ответе:

  1. Передайте параметр routingParameters.origin в запросе, чтобы указать координаты широты и долготы начальной точки маршрута. Этот параметр необходим для расчета продолжительности и расстояния до каждой точки в ответе.

  2. Включите routingSummaries в маску поля, чтобы ответ содержал массив routingSummaries . Этот массив содержит продолжительность и расстояние от точки отправления маршрута до каждой точки в ответе.

Инструмент API Explorer позволяет отправлять запросы в режиме реального времени, чтобы вы могли ознакомиться с API и его параметрами:

В следующем запросе вы рассчитываете продолжительность поездки и расстояние до каждого места в ответе текстового поиска (новый):

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

В ответе содержатся два JSON-массива: массив places содержит соответствующие места, а массив routingSummaries — продолжительность и расстояние поездки до каждого места.

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

Каждый элемент в массиве routingSummaries находится в соответствующем месте массива, равном месту в массиве places . То есть элемент в routingSummaries[0] соответствует месту в places[0] .

Длина массива routingSummaries совпадает с длиной массива places . В случае, если routingSummary для места недоступен, элемент массива пуст.

Поскольку в этом примере вычисляются продолжительность и расстояние от начальной точки маршрута до каждого пункта назначения, поле routingSummaries.legs в ответе содержит один объект Leg , в котором указаны duration и distanceMeters от начальной точки маршрута до пункта назначения.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   
  ]
}

Из этого примера видно, что продолжительность и расстояние от начальной точки маршрута до первого места в результатах составляют 597 секунд и 2607 метров.

В этом примере вы рассчитываете продолжительность поездки и расстояние до каждого места в ответе поиска поблизости. В этом примере выполняется поиск ресторанов в Сиднее, Австралия, и устанавливается ограничение по местоположению, а также начальная точка маршрута на одних и тех же координатах широты и долготы:

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

Необязательно использовать одни и те же координаты для параметра locationRestriction и для параметра route origin. Например, вы устанавливаете locationRestriction в центр Сиднея, чтобы сместить результаты поиска в сторону этого круга. Но затем вы устанавливаете route origin в координаты вашего дома, то есть в другое место внутри круга поиска. В этом случае запрос смещает результаты поиска в сторону круга и вычисляет сводные данные маршрута на основе местоположения вашего дома.

Укажите варианты поездки

По умолчанию расчет продолжительности и расстояния производится для автомобиля. Однако вы можете выбрать тип транспортного средства, а также другие параметры в процессе поиска.

В следующем примере вы указываете режим движения как DRIVE и объезжаете автомагистрали:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

Попробуйте!

Инструмент API Explorer позволяет создавать примеры запросов, чтобы вы могли ознакомиться с API и его параметрами.

  1. Выберите значок API в правой части страницы.

  2. При желании можно отредактировать параметры запроса.

  3. Нажмите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.

  4. На панели «Обозреватель API» выберите значок полноэкранного режима, чтобы развернуть окно «Обозреватель API».