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, который имеет глобальный масштаб. Теперь мы напрямую подходим к вопросу вычисления оптимального маршрута между объектами.
- Содержание
- Введение
- 1 Анализ предметной области
- 2 Определение способа реализации
- 2.1 Выбор аппаратной платформы
- 2.2 Выбор операционной системы
- 2.2.1 Особенности архитектуры ос Android
- 2.3 Выбор средств разработки и тестирования
- 2.3.1 Язык Java
- 2.3.3 Интегрированная среда разработки Eclipse
- 3 Функциональные требования к системе
- 4 Разработка проекта
- 4.1 Обзор и решение ключевых задач
- 4.1.1 Определения текущего местоположения
- 4.1.2 Прокладка оптимального маршрута
- 4.1.3 Особенности построения графа дорог в OpenStreetMap
- 4.1.4 Поиск оптимального маршрута
- 4.1.5 Прогнозирование времени прохождения маршрута
- 4.1.6 Диспетчеризация
- 4.2 Графический интерфейс системы
- 4.2.1 Интерфейс арм Курьера
- 4.2.2 Интерфейс арм Диспетчера
- 4.3 Развертывание системы
- 5 Технико-экономическое обоснование дипломного проекта
- 5.1 Swot-анализ
- 5.2 Pest-анализ
- 5.3 Расчет экономических показателей
- 5.4 Расчет затрат на разработку программы
- 5.5 Расчет цены разработанной программы
- 5.6 Расчет капитальных вложений
- 5.7 Расчет эксплуатационных расходов
- 5.8 Расчет денежного годового экономического эффекта
- 6 Безопасность и экологичность дипломного проекта
- 6.1 Электробезопасность
- 6.2 Электромагнитные излучения
- 6.3 Требования к эргономике, освещенности, уровню шума и
- 6.4 Пожарная безопасность
- Заключение
- Список использованных источников
- Приложение а
- Исходний код программы. Курьерская часть
- Приложение б
- Исходний код программы. Диспетчерская часть
- Приложение в
- Графический материал