Определите узлы перекрестка в данных openstreetmap (.pbf)
Кто-нибудь знает, если есть способ, которым я могу отделить только узлы перекрестка, которые включены в файл.pbf? Включена ли эта подсказка (если узел является перекрестком или нет) в формат этого файла?
2 ответа
Другой вариант решения вашей проблемы - использование нового проекта Atlas.
Как часть загрузки .osm.pbf
файлы в файлы Atlas в памяти, он заботится о том, чтобы делать разметку дорог:
- Загрузите ваш файл pbf в Атлас. После этого у вас будет объект Atlas, который вы можете сохранить в файл и использовать повторно.
- Используйте API Атласа для доступа ко всем пересечениям
В конце концов, каждый Атлас Node
который подключен к более чем 4 Edge
s на дороге с двусторонним движением или 2 Edge
s на дороге с односторонним движением будет кандидатом, если я правильно понимаю ваш вопрос.
Я не знаю о готовом решении этой задачи, но это все еще должно быть относительно легко сделать.
Для анализа файла.pbf я рекомендую использовать существующую библиотеку, такую как Osmosis или Osmium. Таким образом, вам нужно только реализовать фактическую семантику вашего варианта использования.
Сами узлы не имеют каких-либо специальных атрибутов, которые помечают их как перекресток. Таким образом, вместо этого вам придется искать пути, содержащие узлы.
Некоторые соображения при реализации этого:
- Вам нужно проверить метки пути, чтобы узнать, дорога ли это. Наиболее важным ключом для этого является шоссе. Детали зависят от вашего конкретного случая использования - например, вам необходимо решить, должны ли учитываться пешеходные дорожки, лесные тропы, проезды,...
- Важным является количество соединяющихся сегментов пути в узле, а не количество путей. Например, узел, который является частью двух путей, может быть перекрестком (если по крайней мере один из путей продолжается за этим узлом) или не может (если оба пути начинаются / заканчиваются в этом узле).