Объедините сводки маршрутизации с поиском по маршруту
Вы можете объединить расчёт сводки маршрута с поиском по маршруту . В этом случае текстовый поиск (новый) возвращает длительность поездки и расстояние до каждого места в ответе, а затем от каждого места до конечного пункта маршрута.
Чтобы использовать текстовый поиск (новый) для расчета сводки маршрута и поиска по маршруту:
Используйте API маршрутов для расчета маршрута, который возвращает полилинию маршрута в ответе.
Используйте параметр
searchAlongRouteParameters.polyline.encodedPolyline, чтобы передать ломаную линию маршрута в функцию Text Search (New), чтобы сместить результаты поиска в соответствии с маршрутом. В ответе будут отображаться места, соответствующие критериям поиска и расположенные рядом с указанным маршрутом.Добавьте параметр
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 выберите значок полноэкранного режима, чтобы развернуть окно обозревателя API.