Как рассчитать сводку маршрутов
Чтобы использовать текстовый поиск (новая версия) или поиск поблизости (новая версия) для расчета продолжительности поездки и расстояния до каждого места в ответе:
-
Передайте в запросе параметр
routingParameters.origin, чтобы указать координаты широты и долготы начальной точки маршрута. Этот параметр необходим для расчета времени и расстояния до каждого места в ответе. -
Добавьте
routingSummariesв маску поля, чтобы ответ содержал массивroutingSummaries. Этот массив содержит продолжительность и расстояние от точки отправления до каждого места в ответе.
API Explorer позволяет отправлять запросы в реальном времени, чтобы вы могли ознакомиться с API и его возможностями:
Как использовать новую версию текстового поиска
В следующем запросе вы рассчитываете продолжительность поездки и расстояние до каждого места в ответе от Text Search (New):
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предварительной версии, поскольку 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'Попробовать
В API Explorer можно отправлять примеры запросов, чтобы ознакомиться с API и его возможностями.
Нажмите на значок API api в правой части страницы.
При необходимости измените параметры запроса.
Нажмите кнопку Выполнить. В диалоговом окне выберите аккаунт, который хотите использовать для запроса.
На панели APIs Explorer нажмите на значок полноэкранного режима , чтобы развернуть окно APIs Explorer.