Обзор функции поиска на маршруте
Функции поиска вдоль маршрута доступны в следующих новых API Places:
- Только для новой версии текстового поиска: поиск мест вдоль заданного маршрута.
- Новые функции "Текстовый поиск" и "Поиск поблизости". Вычисляют сводку маршрута от указанного начального местоположения до каждого места в результатах поиска.
- Только для нового текстового поиска. Рассчитывать сводку маршрута для каждого места на заданном маршруте поездки.
Как искать места вдоль маршрута
Вы используете Routes API, чтобы рассчитать маршрут между двумя точками. Routes API может рассчитать маршрут для автомобиля, велосипеда, двухколесного транспортного средства, общественного транспорта или пешехода.
Новая версия текстового поиска позволяет использовать рассчитанный маршрут для поиска вдоль маршрута. В этом случае вы передаете предварительно рассчитанный маршрут из Routes API в запрос к новой версии текстового поиска. В ответе будут места, которые соответствуют критериям поиска и находятся рядом с указанным маршрутом.
Поиск вдоль маршрута похож на использование параметров запроса locationRestriction или locationBias для смещения результатов поиска. locationRestriction возвращает результаты поиска, которые находятся в границах области просмотра, а locationBias может возвращать результаты поиска за пределами области просмотра. Однако, если параметры locationBias и locationRestriction позволяют указать регион, чтобы повлиять на результаты поиска, функция поиска по маршруту в текстовом поиске также позволяет повлиять на результаты поиска, чтобы включить в них те, которые требуют минимального времени отклонения от маршрута от его начала до конца. Вы можете задать приоритет для результатов поиска, используя locationBias или locationRestriction в сочетании с ломаной линией.
Например, рассмотрим маршрут от начальной точки (путевой точки в Routes API) до конечной точки, рассчитанный с помощью Routes API:
При поиске вдоль маршрута результаты будут отсортированы так, чтобы показывать места, расположенные рядом с маршрутом, с минимальным временем отклонения от него. В этом примере точки А, Б и В – это места, найденные в результате поиска.
Как рассчитать сводку маршрутов
Новая версия текстового поиска и новая версия поиска поблизости могут рассчитывать сводку маршрута, то есть продолжительность и расстояние, до каждого места в ответе на основе исходного местоположения для построения маршрута, указанного в запросе. Если вы укажете начальную точку маршрута, ответ будет содержать не только список мест, соответствующих поисковому запросу, но и время в пути и расстояние от начальной точки до каждого места.
На следующем изображении точки A, B и C – это места, возвращенные в ответе на поисковый запрос.
Для каждого места в результатах ответа указывается продолжительность поездки и расстояние от начальной точки маршрута до места, если эти данные доступны.
По умолчанию время в пути и расстояние рассчитываются с помощью параметра TRAFFIC_UNAWARE в Routes API. При желании вы можете задать параметры прокладки маршрута, чтобы при расчете учитывались данные о загруженности дорог в реальном времени TRAFFIC_AWARE_OPTIMAL или с уменьшенной задержкой TRAFFIC_AWARE.
О маршрутах, отрезках и путевых точках
Маршрут, рассчитанный с помощью Routes API, состоит из нескольких компонентов:
Маршрут состоит из следующих компонентов:
- Waypoint Чтобы рассчитать маршрут, необходимо указать как минимум начальную и конечную точки. Эти местоположения определяются как путевые точки на маршруте. Промежуточные путевые точки – это местоположения между пунктом отправления и пунктом назначения, через которые должен проходить маршрут.
-
Маршрут – вся поездка от начальной путевой точки через промежуточные до конечной. Маршрут состоит из одного или нескольких отрезков.
При передаче маршрута в текстовый поиск вы передаете закодированную ломаную линию маршрута, возвращенную Routes API. Кодированная ломаная линия – это кодированный список точек широты и долготы, который позволяет представить ломаную линию маршрута в виде строки.
-
Этап. Путь от одной путевой точки маршрута до следующей. Каждый отрезок состоит из одного или нескольких отдельных шагов.
Маршрут содержит отдельный отрезок для пути от каждой путевой точки до следующей. Например, если маршрут содержит одну путевую точку отправления и одну путевую точку назначения, то маршрут содержит один отрезок.
Для каждой дополнительной путевой точки, добавленной к маршруту после пункта отправления и пункта назначения (промежуточной), API добавляет отдельный этап.
Подробнее о маршрутах и их расчете можно узнать в документации по Routes API.
Как рассчитать сводку маршрута с поиском по маршруту
Вы можете объединить расчеты сводки маршрута с поиском вдоль маршрута. В этом случае функция Текстовый поиск (новая версия) возвращает в ответе продолжительность поездки и расстояние до каждого места, а затем от каждого места до конечного пункта маршрута. Этот расчет позволяет узнать, сколько времени и какое расстояние потребуется, чтобы отклониться от заданного маршрута, посетить место из результатов поиска и продолжить путь к конечному пункту назначения.
Рассмотрим следующий маршрут от начальной до конечной точки, рассчитанный Routes API. Передайте этот маршрут в API текстового поиска (новинка) вместе с критериями поиска.
В этом примере место А – это место, возвращенное в результатах поиска с помощью новой функции текстового поиска. Для каждого места в ответе поиск включает продолжительность и расстояние, необходимые для объезда этого места в виде поездки из двух этапов:
- Первый этап содержит продолжительность поездки и расстояние от пункта отправления до места. В этом примере – от начальной точки до места А.
- Второй отрезок содержит информацию о продолжительности поездки и расстоянии от места до пункта назначения. В нашем примере – от точки A до пункта назначения.
На основе информации в ответе можно рассчитать продолжительность и расстояние объезда.
- \(t_{OD}\) – продолжительность поездки от пункта отправления до пункта назначения; \(s_{OD}\) – расстояние поездки от пункта отправления до пункта назначения.
- \(t_{OA}\) – продолжительность поездки от пункта отправления до точки A; \(s_{OA}\) – расстояние от пункта отправления до точки A.
- \(t_{AD}\) – продолжительность поездки из точки А в пункт назначения; \(s_{AD}\) – расстояние от точки А до пункта назначения.
Продолжительность объезда – это разница в продолжительности между исходной поездкой (из пункта отправления в пункт назначения) и новой поездкой (из пункта отправления в пункт назначения через точку A):
Расстояние объезда – это разница расстояний между исходной поездкой (из пункта отправления в пункт назначения) и новой поездкой (из пункта отправления в пункт назначения через точку A):