Рассчитать сводку маршрутизации
Чтобы использовать текстовый поиск (новое) или поиск поблизости (новое) для расчета продолжительности поездки и расстояния до каждого места в ответе:
Передайте параметр
routingParameters.origin
в запросе, чтобы указать координаты широты и долготы источника маршрутизации. Этот параметр необходим для расчета длительности и расстояния до каждого места ответа.Включите
routingSummaries
в маску поля, чтобы ответ включал массивroutingSummaries
. Этот массив содержит продолжительность и расстояние от источника маршрутизации до каждого места в ответе.
Использовать текстовый поиск (новинка)
В следующем запросе вы рассчитываете продолжительность поездки и расстояние до каждого места в ответе текстового поиска (новое):
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": [ { "legs": [ object (Leg) ] } ] }
Каждый элемент массива routingSummaries
находится в соответствующем месте массива в качестве места в массиве places
. То есть элемент routingSummaries[0]
соответствует месту places[0]
.
Длина массива routingSummaries
такая же, как длина массива places
. В случае, когда routingSummary
для места недоступна, запись массива пуста.
Поскольку в этом примере вычисляются продолжительность и расстояние от начала маршрута до каждого места, поле 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 } ] }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ] }, … ] }
Из этого примера видно, что продолжительность и расстояние от начала маршрута до первого места в результатах составляет 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
и для источника маршрутизации. Например, вы устанавливаете locationRestriction
на центральную точку Сиднея, чтобы сместить результаты поиска к этому кругу. Но затем вы устанавливаете начало маршрута в координатах вашего дома, то есть в другом месте в круге поиска. Затем запрос смещает результаты поиска к кругу и вычисляет сводные данные о маршруте на основе местоположения вашего дома.
Укажите варианты поездки
По умолчанию расчеты продолжительности и расстояния относятся к автомобилю. Однако вы можете контролировать тип транспортного средства, а также другие параметры в поиске.
Используйте параметр
routingParameters.travelMode
, чтобы установить способ передвижения:DRIVE
,BICYCLE
,WALK
илиTWO_WHEELER
. Дополнительную информацию об этих опциях см. в разделе Доступные типы транспортных средств для маршрутов .- Используйте свойство
routingParameters.routingPreference
, чтобы установить для параметра предпочтения маршрутизации значениеTRAFFIC_UNAWARE
(по умолчанию),TRAFFIC_AWARE
илиTRAFFIC_AWARE_OPTIMAL
. Каждый вариант имеет разные уровни качества данных и задержки. Дополнительные сведения см. в разделе Укажите, как и если включать данные о трафике . - Используйте
routingParameters.routeModifiers
, чтобы указать, чтобыavoidTolls
,avoidHighways
,avoidFerries
иavoidIndoor
. Дополнительную информацию об этих параметрах см. в разделе «Указание особенностей маршрута, которых следует избегать» .
В следующем примере вы указываете режим движения 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'