Построение графа дорог Нижнего Тагила на основе данных проекта OpenStreetMap
- Список смежности
- Список рёбер
- Визуализация графа
- Матрица смежности (7.5 GiB)
- git clone https://github.com/magauran/RoadGraph
- cd RoadGraph/
- pod install
- open RoadGraph.xcworkspace
- ⌘R
-
Получение карты города в формате .osm (OpenStreetMap XML)
-
Парсинг xml-файла при помощи библиотеки SWXMLHash
- Оставляем только пути с тегами
"motorway","motorway_link","trunk","trunk_link","primary","primary_link","secondary","secondary_link","tertiary","tertiary_link","unclassified","road"и"residential".
- Оставляем только пути с тегами
-
Подготовка графа:
- Все вершины сохраняем в Dictionary<String, OSMNode>.
- Все рёбра сохраняем в Set<OSMNode>.
- Для каждой вершины находим и сохраняем "соседние" вершины.
- Удаляем все изолированные вершины.
-
Сохранение списка смежности и списка рёбер в формате .csv
-
Визуализация графа
- Преобразовываем координаты из географической системы координат в прямоугольную.
- Преобразовываем координаты в систему координат рисунка.
- Генерируем svg-файла (либо svg + html).
- Отображаем html-файла в WKWebView.
