Объедините сводки маршрута с поиском вдоль маршрута.
Вы можете объединить вычисления сводной информации о маршруте с поиском вдоль маршрута . В этом случае текстовый поиск (новый) возвращает продолжительность поездки и расстояние до каждого пункта в ответе, а затем от каждого пункта до конечного пункта маршрута.
Чтобы использовать текстовый поиск (новая функция) для расчета сводки маршрута и поиска вдоль маршрута:
Используйте API маршрутов для расчета маршрута, который возвращает в ответе полилинию маршрута .
Используйте параметр
searchAlongRouteParameters.polyline.encodedPolyline, чтобы передать полилинию маршрута в функцию текстового поиска (новая), что позволит сместить результаты поиска в сторону указанного маршрута. В ответе будут содержаться места, соответствующие критериям поиска и расположенные рядом с указанным маршрутом.Включите
routingSummariesв маску поля, чтобы ответ содержал массивroutingSummaries. Этот массив содержит продолжительность и расстояние от точки отправления маршрута до каждой точки в ответе.
Инструмент API Explorer позволяет отправлять запросы в режиме реального времени, чтобы вы могли ознакомиться с API и его параметрами:
По умолчанию функция «Текстовый поиск (Новая)» выполняет поиск по всему маршруту:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
}
}' \
-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' В ответе содержатся два массива: массив places , содержащий соответствующие места, и массив routingSummaries , содержащий продолжительность и расстояние поездки до каждого места.
{ "places": [ { "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA", "priceLevel": "PRICE_LEVEL_INEXPENSIVE", "displayName": { "text": "Vegan Mob - Vegan BBQ and Soul Food", "languageCode": "en" } }, { "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Enjoy Vegetarian", "languageCode": "en" } }, … ], "routingSummaries": [ { "legs": [ { "duration": "285s", "distanceMeters": 1616 }, { "duration": "2466s", "distanceMeters": 58147 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0" }, { "legs": [ { "duration": "696s", "distanceMeters": 4704 }, { "duration": "2787s", "distanceMeters": 58901 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0" }, … ] }
Для каждой записи в массиве legs функция текстового поиска (новая) возвращает время поездки по двум участкам :
Первый этап включает в себя продолжительность и расстояние от начальной точки до конечного пункта. В этом примере продолжительность и расстояние от начальной точки до первого пункта в результатах составляют 285 секунд и 1616 метров.
Второй отрезок пути включает в себя продолжительность поездки и расстояние от точки отправления до пункта назначения. В этом примере продолжительность и расстояние составляют 2466 секунд и 58147 метров.
Укажите начальную точку маршрута, вид транспорта и модификаторы маршрута.
Вы можете изменить расчет сводки поиска и маршрутизации, указав начальную точку маршрута, вид транспорта, модификаторы маршрута и предпочтения маршрутизации. Вид транспорта и модификаторы маршрута работают так же, как и при расчете сводок маршрутизации без указания маршрута, как показано в разделе «Указание параметров поездки ».
По умолчанию первый сегмент каждого результата содержит расстояние от начальной точки, определенной полилинией, до каждой точки. Однако вы можете изменить это значение по умолчанию, явно указав начальную точку маршрута в запросе. Если это указано, первый сегмент всех ответов будет указывать расстояния и продолжительность от указанной начальной точки маршрута, переопределяя начальную точку, заданную полилинией.
В следующем примере вы указываете в качестве начальной точки маршрута координаты города Сан-Матео, штат Калифорния, указываете, что хотите избежать платных дорог, и устанавливаете количество результатов равным 5:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"maxResultCount": 5,
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
},
"routingParameters": {
"origin": {
"latitude": 37.56617,
"longitude": -122.30870
},
"travelMode":"DRIVE",
"routeModifiers": {
"avoidTolls": 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» выберите значок полноэкранного режима, чтобы развернуть окно «Обозреватель API».