logo
Мой Диплом

4.1.3 Особенности построения графа дорог в OpenStreetMap

OpenStreetMap использует топологическую структуру данных, состоящую из объектов:

- node (точка) – точка с указанными координатами;

- way (линия (путь)) – упорядоченный список точек, составляющих линию или полигон;

- relation (отношение) – группы точек, линий и других отношений, которым назначаются некоторые свойства;

- tag (тег) – пары «ключ – значение», могут назначаться точкам, линиям и отношениям.

Пример графа дорог OpenStreetMap, редактируемый в системе Potlatch2 можно видеть на рисунке 7. Можно видеть, что разные типы дорог привязываются к реальным географическим координатам. Подробнее об этом будет сказано в следующей главе.

Рисунок 7 – визуализация графа дорог в OpenStreetMap

Все возможные виды карт состоят из базовых элементов, которыми являются «точка» (node) и «путь» (way). С каждым из базовых элементов связано множество его свойств (т.н. «меток») [14].

Точка  – базовый элемент в структуре данных OSM. Точка имеет параметры «широта» и «долгота». Точки используются для того, чтобы определить «линию», однако точка может являться и самостоятельным элементом карты, и использоваться для обозначения отдельного ни с чем не связанного объекта (например, телефонной будки, бара, для указания координат, к которым привязано название населённого пункта или любого интересного места. Отдельные точки (т.е. не входящие в состав линий или областей) всегда должны иметь хотя бы одно свойство.

Точки, входящие в состав линии, часто не имеют свойств и нужны только для описания линии; однако это не является незыблемым правилом.

Путь представляет собой ломаную линию, проходящую через точки.

Путь имеет в своём составе, как минимум, две точки. Обычно путями обозначаются улицы, дороги или что-то похожее. Одна точка может принадлежать нескольким линиям одновременно.

Линия характеризуется свойствами, которые распространяются на линию на всём её протяжении. Например, для линии, обозначающей дорогу, такими свойствами могут являться тип и качество покрытия, допустимая скорость движения и т.п. Если при уточнении выясняется, что не все свойства линии сохраняются на всём её протяжении (например, на дороге, которой соответствует линия, имеется участок с другим типом покрытия), то линия может быть разделена на части [3].

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

В OpenStreetMap нет ограничений на свойства (теги), которыми могут быть помечены элементы (Точки и Пути). Однако, выгоднее использовать некий рекомендованный набор объектов и соответствующих им тегов.

Тег highway – основной и часто единственный для обозначения дорог и улиц. Ряд значений, которые он может принимать приведен в таблице 8.

Таблица 8 – Типы дорог в OpenStreetMap

Значение 

Описание

primary

Автомобильные дороги регионального значения

secondary

Автомобильные дороги областного значения

tertiary

Более важные автомобильные дороги среди дорог местного значения

living_street

Улицы, на которых пешеходы имеют преимущество перед автомобилями

pedestrian

Для обозначения улиц городов, выделенных для пешеходов.

track

Дороги сельскохозяйственного назначения.

path

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

Окончание таблицы 8

footway

Пешеходные дорожки. Если по ним разрешено передвижение на велосипеде, то необходимо добавить тег bicycle=yes.

cycleway

Велодорожка. Если это дорожка и для пешеходов, можно добавить тег foot=yes.

Для описания характеристик дорог следующие теги:

- Maxspeed:practical – практически достижимая на участке дороги скорость.

- Surface – используется для более подробного описания покрытия. дороги. Этот тег позволяет учитывать, например, тот факт, что езда по грунтовым дорогам более медленная (занимает большее время).

- Smoothness – cлужит для указания состояния и проходимости дороги. Цель этого тега – дать способ классификации дорог по их физической проезжаемости для различных видов колесной техники.

Принимает такие значения, как excellent, good, intermediate, bad, horrible, impassable.

- Bicycle – тег, устанавливающий, возможность проезда велотранспорта.

- Foot – могут ли перемещаться пешеходы.

Все покрытия можно разделить на две основные группы: paved и unpaved road.  В США, термин unpaved road называют разбитую дорогу. В России используется термины не грунтовая/грунтовая дорога (таблица 9).

Навигационное программное обеспечение должно учитывать, что езда по грунтовым дорогам более медленная (занимает большее время) и может быть вообще невозможна в ненастье.

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

Таблица 9 – Типы качества дорог в OpenStreetMap.

Значение 

Описание

Качество покрытия

asphalt

Асфальтное покрытие

paved

cobblestone

Булыжник — специально уложенные относительно ровными поверхностями вверх камни.

paved

concrete

Бетон. Бетонное покрытие может заливаться на месте или выкладываться железо-бетонными плитами.

paved

grass

Трава, укатанная транспортными средствами, утоптанная людьми

unpaved

gravel

Гравий — мелкие камни с неровной поверхностью

unpaved

ground

Голая почва, специальное покрытие отсутствует.

unpaved

Таким способом описывается граф дорог в системе OpenStreetMap, который имеет глобальный масштаб. Теперь мы напрямую подходим к вопросу вычисления оптимального маршрута между объектами.