YourMaps - экспорт и процессинг OSM данных с использованием визуального редактора
Posted by Егор Смирнов on 17 April 2020 in Russian (Русский).По работе мне часто приходится работать с OSM данными. Мы используем их в самых разных исследованиях и проектах, про некоторые из них я писал на хабре (раз, два).
И всегда повторялся один и тот же муторный процесс импорта OSM данных. Взять библиотеку, скачать, распарсить, сконвертить из сложного OSM XML представления в GeoJSON так как мне надо (и нет, всякие JOSM это делают плохо и пользоваться их конвертацией не получалось). И все это еще нужно делать из кода и регулярно.
В итоге родилась идея проекта для упрощения этого процесса экспорта.
Да, уже есть проекты, позволяющие из OSM что-то выдирать. Есть API фильтрации объектов и язык запросов у Overpass, есть проект HOT. Но там все либо слишком сложно (учить еще один язык запросов мне лень), либо примитивно (фильтрация только по тегам). А хотелось чего-то и более мощного, и более простого в освоении.
В итоге я быстро набросал прототип сервиса https://yourmaps.io
Процесс экспорта представляет собой пайплайн с некоторым количеством входов и одним выходом, по которому идет поток объектов карты. Представляется он в виде графа, где каждый узел - это какая-либо операция над объектами, например фильтр. Создается граф в простом визуальном редакторе.
Вот пример такого графа, выбирающего все парки в границах МО “Черная речка” в СПб:
Рисование такого графа не требует навыков программирования, просто мышкой потыкать и нажать кнопочку “запустить обработку”. Кроме банальных фильтров по тегам можно делать фильтры по геометрическим операциям (например, пересечение заданной области). В будущем можно будет добавить еще больше всяких разных видов операций
Чтобы не натыкивать каждый раз одно и то же, повторяющийся участок графа можно сохранить как шаблон, и затем вставлять его одним узлом в другие графы. Например, узел City Greenery из картинки выше разворачивается вот в такой подграф:
Запускать экспорт и скачивать результаты можно либо из веб-админки, либо через API.
Хочется узнать, будет ли такой инструмент полезен кому-то кроме меня и будут ли какие-то идеи и предложения. Если кого проект заинтересовал и есть мысли по его поводу - пишите мне или тут, или на evsmirnov@itmo.ru
Сам сайт: https://yourmaps.io Документация https://docs.yourmaps.io