Рассчитать сводку маршрутизации
Чтобы использовать текстовый поиск (новое) или поиск поблизости (новое) для расчета продолжительности поездки и расстояния до каждого места в ответе:
Передайте параметр
routingParameters.origin
в запросе, чтобы указать координаты широты и долготы источника маршрутизации. Этот параметр необходим для расчета длительности и расстояния до каждого места ответа.Включите
routingSummaries
в маску поля, чтобы ответ включал массивroutingSummaries
. Этот массив содержит продолжительность и расстояние от источника маршрутизации до каждого места в ответе.
API Explorer позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями 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
и для источника маршрутизации. Например, вы устанавливаете locationRestriction
на центральную точку Сиднея, чтобы сместить результаты поиска к этому кругу. Но затем вы устанавливаете начало маршрута в координатах вашего дома, то есть в другом месте в круге поиска. Затем запрос смещает результаты поиска к кругу и вычисляет сводные данные о маршруте на основе местоположения вашего дома.
Укажите варианты поездки
По умолчанию расчеты продолжительности и расстояния относятся к автомобилю. Однако вы можете контролировать тип транспортного средства, а также другие параметры в поиске.
Используйте параметр
routingParameters.travelMode
, чтобы установить способ передвижения:DRIVE
,BICYCLE
,WALK
илиTWO_WHEELER
. Дополнительную информацию об этих опциях см. в разделе Доступные типы транспортных средств для маршрутов .- Используйте свойство
routingParameters.routingPreference
, чтобы установить для параметра предпочтения маршрутизации значениеTRAFFIC_UNAWARE
(по умолчанию),TRAFFIC_AWARE
илиTRAFFIC_AWARE_OPTIMAL
. Каждый вариант имеет разные уровни качества данных и задержки. Дополнительные сведения см. в разделе Укажите, как и если включать данные о трафике .routingParameters.routingPreference
влияет на маршруты, содержащиеся в полеdirectionsUri
предварительного просмотра (Pre-GA), поскольку Карты Google отображают параметры трафика при открытии ссылки. - Используйте свойство
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'