Объединение сводок маршрутов с поиском по маршруту
Вы можете комбинировать сводные расчеты маршрута с поиском по маршруту . В этом случае Текстовый поиск (Новый) возвращает продолжительность поездки и расстояние до каждого места в ответе, а затем от каждого места до конечного пункта маршрута.
Чтобы использовать текстовый поиск (новое) для расчета сводки маршрута вместе с поиском по маршруту:
Используйте API маршрутов для расчета маршрута, который возвращает в ответ полилинию маршрута .
Используйте параметр
searchAlongRouteParameters.polyline.encodedPolyline
, чтобы передать полилинию маршрута в текстовый поиск (новый), чтобы сместить результаты поиска в соответствии с маршрутом. Затем ответ содержит места, соответствующие критериям поиска, а также расположенные рядом с указанным маршрутом.Включите
routingSummaries
в маску поля, чтобы ответ включал массивroutingSummaries
. Этот массив содержит продолжительность и расстояние от источника маршрутизации до каждого места в ответе.
API Explorer позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями 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'
На следующем изображении показана карта, содержащая полилинию маршрута, новое начало координат (голубая отметка) и места в результатах поиска (зеленые отметки). Обратите внимание, что все результаты расположены по маршруту, но мимо Сан-Матео: