
В этом документе представлены рекомендации по определению параметров SelectedRoutes с использованием API выбора дорог для продукта Roads Management Insights (RMI). Правильное определение параметров SelectedRoutes является наиболее важным шагом для обеспечения получения точных и надежных данных о дорожном движении на участках дорог, которые вы планируете отслеживать. Для получения полного технического обзора обратитесь к официальной документации API выбора дорог .
Основные принципы создания выбранного маршрута
При определении параметра SelectedRoute для мониторинга следует придерживаться следующих принципов, чтобы обеспечить точность и достоверность данных SelectedRoute.
1. Укажите конкретную обочину дороги.
Объект SelectedRoute должен представлять одно направление движения. Для автомагистралей с разделительной полосой или дорог с разделительной полосой следует создавать отдельные объекты SelectedRoute для каждого направления (например, один для движения на север, другой для движения на юг). Убедитесь, что начальная и конечная точки, а также любые промежуточные точки расположены на правильной стороне дороги для направления, которое вы хотите отслеживать. Размещение начальной или конечной точки на неправильной стороне автомагистрали с разделительной полосой может привести к непреднамеренным ошибкам в объектах SelectedRoute или ошибкам в данных.
2. Обслуживание многоуровневых дорог и эстакад.
На сложных многоуровневых дорогах (например, многоуровневые автомагистрали, эстакады, сложные развязки) одна пара координат широты и долготы может быть неоднозначной, что может привести к «привязке» маршрута к неправильному уровню. Чтобы этого избежать, следует использовать промежуточные путевые точки, которые направят маршрут на правильный участок дороги и уровень. Добавление одной или нескольких путевых точек гарантирует, что маршрут будет точно соответствовать вашим намерениям.
3. Определите допустимые начальную и конечную точки.
Маршрут SelectedRoute не может начинаться или заканчиваться внутри туннеля . Начальная и конечная точки маршрута SelectedRoute должны находиться на открытом воздухе. Маршруты SelectedRoute, проходящие через туннели, поддерживаются, но сам сегмент мониторинга не может начинаться или заканчиваться внутри туннеля.

4. Определите подходящую длину маршрута.
Объект SelectedRoute является гибким и может быть определен в различных масштабах:
- Короткие маршруты: Выбранный маршрут может составлять всего один городской квартал, что полезно для детального анализа в городских районах.
- Однородные маршруты: Вы можете определить выбранные маршруты одинаковой протяженности (например, каждые 0,5 мили) для обеспечения единообразия в отчетности.
- Длинные маршруты: Выбранный маршрут может охватывать длинный непрерывный участок дороги. Это идеально подходит для мониторинга целых автомагистралей или крупных магистральных дорог между важными перекрестками.
Выберите длину маршрута SelectedRoute, которая наилучшим образом соответствует вашим потребностям в мониторинге и анализе.
5. Определите участки дорог с вертикальным разделением (туннели, эстакады, мосты и т. д.).
При определении участков дороги с использованием координат широты и долготы крайне важно учитывать сценарии, когда несколько участков дороги занимают одно и то же двухмерное географическое пространство, но вертикально разделены. Это часто встречается в случае таких сооружений, как туннели, эстакады, путепроводы и мосты. Простое использование широты и долготы без учета высоты может привести к неточностям при выборе маршрута и навигации. Например, дорога, проходящая через туннель, будет иметь те же координаты широты и долготы, что и участок дороги на поверхности над ней. Аналогично, эстакада или мост будут иметь те же горизонтальные координаты, что и дорога под ними. Неспособность различать эти вертикально расположенные участки может привести к тому, что система маршрутизации ошибочно направит транспортный поток на дорогу нижнего уровня, когда предполагается дорога верхнего уровня, или наоборот.
В этом примере, в Бостоне, по координатам 42.362347, -71.055935, находится огромный туннель, называемый «Большая траншея» (Big Dig ).

Когда мы размещаем путевую точку на дороге, даже незначительная неточность в ее точных географических координатах может привести к совершенно иному расчету маршрута. Эта чувствительность к размещению путевой точки является критически важным фактором в алгоритмах выбора маршрута SelectedRoute.
Например, рассмотрим ситуацию, когда путевая точка изначально установлена непосредственно внутри туннеля. Если затем местоположение этой путевой точки незначительно скорректировано относительно соседней подъездной дороги, несмотря на практически идентичные координаты широты и долготы, система построения маршрута может сгенерировать совершенно другой маршрут. Это явление подчеркивает важность точного ввода путевых точек и сложность оптимизации маршрута, особенно в районах со сложной дорожной сетью и географическими особенностями.


6. Не все дороги пригодны для проезда.
Выбранный вами маршрут может быть не всегда отслеживаемым.
- За пределами зарегистрированной «юрисдикции»
- Низкий уровень "дорожной полезности"
- Это может привести к изменению отслеживаемости с течением времени.
Проверка выполняется асинхронно ⇒ проверьте, прошли ли все зарегистрированные SelectedRoutes это условие.
Рекомендации по определению выбранного маршрута
Следуйте этим рекомендациям, чтобы повысить качество определений SelectedRoute и получаемых данных.
Используйте промежуточные путевые точки (средние точки).
Даже для коротких, казалось бы, простых маршрутов SelectedRoutes настоятельно рекомендуется включать как минимум одну промежуточную точку.
- Почему?
- Функция построения маршрута: гарантирует, что выбранный вами маршрут будет следовать указанному вами пути, особенно если между начальной и конечной точками существуют альтернативные дороги.
- Включает циклы: необходимо для корректного отображения циклов или маршрутов типа «туда и обратно» в SelectedRoutes, где пункт отправления и пункт назначения совпадают.
- Улучшает обнаружение объездов: чем больше путевых точек вы укажете, тем проще будет обнаружить и отметить точки данных, где транспортный поток мог отклониться от намеченного маршрута SelectedRoute.
- Как?
- С помощью геопространственных функций можно программно найти середину известного маршрута SelectedRoute.
- Пример (BigQuery): Используйте функцию ST_LINEINTERPOLATEPOINT.
- Пример (JavaScript): Используйте функцию along из библиотеки Turf.js.
Сопоставление маршрутов из внешних систем
Если вы импортируете данные о маршруте из внешней ГИС или системы, построенной на основе другой дорожной сети, координаты могут не идеально совпадать с дорожной сетью Google. Это может привести к появлению «непредусмотренных маршрутов».
- Как исправить:
- Проверьте обочину дороги: Прежде всего, убедитесь, что ваша отправная и начальная точка находится на правильной стороне дороги.
- Привязка к дороге: Используйте метод matchPath API Roads v2 , чтобы привязать существующие данные маршрута к дорожной сети Google.
- Ручная корректировка и перерисовка: вручную скорректируйте путевые точки в инструменте, чтобы они соответствовали дорогам Google. Затем используйте метод computeRoute API Routes (с параметром traffic, установленным на "unaware") для создания аккуратной полилинии, которая следует сети Google.
- Трассировка: В крайнем случае, наложите свои данные на дорожную сеть Google в инструменте ГИС и вручную проследите маршрут, чтобы создать новые путевые точки.
Очистка и проверка данных
Данные, получаемые в BigQuery, отражают реальные условия. Вам следует применить шаги по очистке, чтобы отфильтровать данные, которые не соответствуют вашему основному типу SelectedRoute.
Обход объездных путей
API маршрутов, лежащий в основе RMI, всегда будет пытаться вернуть действительный маршрут. Если ваш заданный маршрут SelectedRoute заблокирован или сильно перегружен, API может вернуть маршрут, который будет объезжать и отклоняться от заданных вами промежуточных точек. Например, если ваш SelectedRoute указывает путь от A -> B -> C, объезд может привести к возврату маршрута, который идет напрямую от A до C.
Например, если мы проложим такой маршрут: https://www.google.com/maps/dir/OR-213,+Oregon+City,+OR+97045/Caufield,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/643+OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/Oregon+City,+OR+97045/Washington+Dr ,+Oregon+City,+OR+97045/@45.3754391,-122.5822044,15.2z/data=!4m50!4m49!1m5!1m1!1s0x549570b9f466b4a1:0x6390dd57f70701fd!2m2!1d-122.5787!2d45.3231933!1m5!1m1!1s0x549570ca19ded1b3:0xd28eaf8da19c4509!2m2!1d-122.5756369!2d45.3303343!1m5!1m1!1s0x549576c6b49921 37:0xb6ed1e1848a8e2a5!2m2!1d-122.5841289!2d45.3640919!1m5!1m1!1s0x549576c0c48ee6f1:0x86497e036c5dd444!2m2!1d-122.5850086!2d45. 3662193!1m5!1m1!1s0x549576bfbca6fa93:0xf6b573219354d3f!2m2!1d-1 22.5851045!2d45.3696112!1m5!1m1!1s0x549576be3782e5db:0xd0ea93d91 e8a0792!2m2!1d-122.5857424!2d45.371047!1m5!1m1!1s0x5495769635216053:0x150f4a4f811b98d6!2m2!1d-122.5870571!2d45.3752342!1m5!1m1!1s0x54957697b928b269:0x2b114f280e6ab0f0!2m2!1d-122.5875209!2d45.3760557!3e0?entry=ttu&g_ep=EgoyMDI1MTAxMy4wIKXMDSoASAFQAw%3D%3D Мы видим большой объезд, который, вероятно, вызван состоянием дороги, но если это не будет тщательно исправлено, это может привести к некорректному сбору данных.

Для RMI эти записи об объезде менее полезны, поскольку они не представляют конкретный отслеживаемый вами SelectedRoute.
- Действие: Не просто удаляйте эти строки. Необходимо пометить их для анализа, чтобы понять, когда и почему происходят обходные пути.
- Как отмечать объездные пути: Существует два основных метода программного определения объездных путей:
- Несоответствие путевых точек: проверьте, не включает ли возвращенная геометрия маршрута все указанные вами промежуточные путевые точки.
- Разница в расстоянии: Проверьте, существенно ли отличается
distanceуказанное в возвращаемом маршруте, от ожидаемого расстояния, указанного в вашемSelectedRoute. Обычно пороговое значение составляет 5%.
- Пример использования BigQuery для пометки объездных маршрутов: вы можете объединить таблицу
SelectedRoutes(содержащую ожидаемое расстояние) с таблицейRouteResponsesи использовать операторCASEдля создания флага.
Обработка геометрических объектов типа «MultiLineString».
Тип данных GEOGRAPHY в BigQuery имеет ограничение: он не может хранить одну LineString , которая перекрывает саму себя (например, изогнутый U-образный разворот, маршрут, который делает петлю из-за объезда).
- Симптом: В этом случае BigQuery сохраняет геометрию как объект
MultiLineString, и часть маршрута может отсутствовать. - Действие: Вам следует исключить эти записи из основного анализа.
- Фильтр BigQuery: Используйте
WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString"
- Фильтр BigQuery: Используйте
- Решение:
- Если наложение вызвано объездом, запись можно отфильтровать, как описано выше.
- Если в вашем предполагаемом объекте SelectedRoute есть перекрытие, вам следует переопределить его, разделив SelectedRoute на два или более отдельных объекта
SelectedRoute.
Перевод часовых поясов
Все данные о времени в экспорте RMI BigQuery предоставляются в скоординированном универсальном времени (UTC). Для создания отчетов или анализа в местном часовом поясе необходимо преобразовать эти метки времени.
- Пример использования функции преобразования времени в BigQuery: используйте функции
DATETIMEиTIMESTAMPдля преобразования метки времени UTC в определенный местный часовой пояс, например, 'America/Los_Angeles'.
Заключение
Следуя рекомендациям, изложенным в этом руководстве, вы можете обеспечить точность и надежность определений SelectedRoute, что приведет к получению достоверных и полезных данных о дорожном движении от продукта Roads Management Insights. Правильное определение маршрутов, обработка сложной геометрии дорог и проверка полученных данных являются важнейшими шагами для использования всего потенциала RMI в ваших потребностях в управлении дорогами.
Авторы
Сартак Гангопадьяй: Google Maps Devrel Наоя Моритани: Google Maps Devrel