Обзор поиска на маршруте

Функции поиска вдоль маршрута доступны в следующих версиях Places API (New):

  • Только текстовый поиск (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 – это места, возвращенные в ответе на поисковый запрос.

Точки A, B и C – это места, возвращенные в ответе на поисковый запрос.

Для каждого места в результатах ответ содержит продолжительность поездки и расстояние от начальной точки маршрута до места, если они доступны.

По умолчанию время в пути и расстояние рассчитываются с помощью параметра TRAFFIC_UNAWARE в Routes API. При необходимости вы можете задать настройки маршрута, чтобы при расчетах учитывалась загруженность дорог в реальном времени (TRAFFIC_AWARE_OPTIMAL) или загруженность дорог в реальном времени с уменьшенной задержкой (TRAFFIC_AWARE).

Маршруты, отрезки и путевые точки

Маршрут, рассчитанный Routes API, состоит из нескольких компонентов:

Компоненты, из которых состоит маршрут.

Маршрут состоит из следующих компонентов:

  • Waypoint Чтобы рассчитать маршрут, необходимо указать как минимум начальную и конечную точки. Эти местоположения определяются как путевые точки на маршруте. Промежуточные путевые точки – это места между пунктами отправления и назначения, через которые должен проходить маршрут.
  • Маршрут – вся поездка от начальной путевой точки через промежуточные до конечной. Маршрут состоит из одного или нескольких этапов.

    При передаче маршрута в текстовый поиск вы передаете закодированную ломаную линию маршрута, возвращенную Routes API. Кодированная ломаная линия – это закодированный список точек широты и долготы, который позволяет представить ломаную линию маршрута в виде строки.

  • Этап. Путь от одной путевой точки маршрута до следующей. Каждый отрезок состоит из одного или нескольких отдельных шагов.

    Маршрут содержит отдельный отрезок для пути от каждой путевой точки до следующей. Например, если маршрут содержит одну начальную и одну конечную путевую точку, то он состоит из одного этапа.

    Для каждой дополнительной путевой точки, которую вы добавляете в маршрут после начальной и конечной точек (такие точки называются промежуточными), API добавляет отдельный этап.

Дополнительную информацию о маршрутах и их расчете можно найти в статье Routes API.

Как рассчитать сводку маршрута с поиском по маршруту

Вы можете объединить расчеты сводки маршрута с поиском вдоль маршрута. В этом случае текстовый поиск (New) возвращает в ответе продолжительность поездки и расстояние до каждого места, а затем от каждого места до конечного пункта назначения маршрута. Этот расчет позволяет узнать, сколько времени и какое расстояние потребуется, чтобы отклониться от указанного маршрута и заехать в место из результатов поиска, а затем продолжить путь к конечному пункту назначения.

Рассмотрим следующий маршрут от пункта отправления до пункта назначения, рассчитанный Routes API. Передайте этот маршрут в API текстового поиска (New) вместе с критериями поиска.

Маршрут от начальной путевой точки до пункта назначения с объездом до результата поиска.

В этом примере местоположение A – это место, возвращенное в результатах поиска из Text Search (New). Для каждого места в ответе поиск включает продолжительность и расстояние, необходимые для объезда этого места в виде поездки из двух этапов:

  • Первый этап содержит продолжительность поездки и расстояние от пункта отправления до места. В этом примере – от начальной точки до места A.
  • Второй этап содержит продолжительность поездки и расстояние от места до пункта назначения маршрута. В этом примере – от точки A до пункта назначения.

На основе информации в ответе вы можете рассчитать продолжительность и расстояние объезда, где:

  • \(t_{OD}\)  – продолжительность поездки от пункта отправления до пункта назначения; \(s_{OD}\)  – расстояние от пункта отправления до пункта назначения.
  • \(t_{OA}\)  – продолжительность поездки от пункта отправления до точки A; \(s_{OA}\)  – расстояние от пункта отправления до точки A.
  • \(t_{AD}\)  – продолжительность поездки из точки A в пункт назначения; \(s_{AD}\)  – расстояние от точки A до пункта назначения.

Продолжительность объезда – это разница в продолжительности между исходной поездкой (из пункта отправления в пункт назначения) и новой поездкой (из пункта отправления в пункт назначения через точку A):

$$ t_{detour} = t_{OA} + t_{AD} - t_{OD} $$

Расстояние объезда – это разница расстояний между исходной поездкой (от пункта отправления до пункта назначения) и новой поездкой (от пункта отправления до пункта назначения через точку A):

$$ s_{detour} = s_{OA} + s_{AD} - s_{OD} $$