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