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