По работе мне часто приходится работать с OSM данными. Мы используем их в самых разных исследованиях и проектах, про некоторые из них я писал на хабре (раз, два).
И всегда повторялся один и тот же муторный процесс импорта OSM данных. Взять библиотеку, скачать, распарсить, сконвертить из сложного OSM XML представления в GeoJSON так как мне надо (и нет, всякие JOSM это делают плохо и пользоваться их конвертацией не получалось). И все это еще нужно делать из кода и регулярно.
В итоге родилась идея проекта для упрощения этого процесса экспорта.
Да, уже есть проекты, позволяющие из OSM что-то выдирать. Есть API фильтрации объектов и язык запросов у Overpass, есть проект HOT. Но там все либо слишком сложно (учить еще один язык запросов мне лень), либо примитивно (фильтрация только по тегам). А хотелось чего-то и более мощного, и более простого в освоении.
В итоге родился проект https://yourmaps.io
Я закодил там визуальный редактор, позволяющий накликать мышкой блоки, отвечающие простым операциям (скачать карту для территории, отфильтровать объекты по условию, применить какие-то преобразования). Про технические нюансы реализации можно прочитать в моей статье на Хабре.
Вот понадобились мне для исследования радиусы доступности школ в определенном районе СПб. Я пошел и быстро накликал мышкой вот такой граф:
Он скачивает указанную область карты из OSM, выделяет из нее школы и границы нужного МО, оставляет только те школы, что попадают внутрь границы, находит центроид их геометрии и строит буфер вокруг них. На выходе сразу GeoJSON, который можно скачать или посмотреть и поделиться ссылкой.
Можно, конечно, делать и более сложные примеры. Некоторые из них описаны в документации, например весьма нетривиально делается получение полигонов зданий больниц или школ, так как иногда нужные amenity теги стоят на самом здании, а иногда - на точке внутри здания. Или на области, в которой здание стоит. Но все это тоже можно обработать в визуальном редакторе, без привлечения сторонних инструментов типа QGIS или написания скриптов.
Сервис позволяет работать не только с OSM данными. Можно загружать свои собственные GeoJSONы. Например, в одном из исследований мы взяли официальные данные по зеленым насаждениям в Питере и пересекли их с данными из OSM. Получив зеленые зоны, которые не добавлены в официальный список ЗНОПов и по которым можно было бы запросить их добавление (статус ЗНОП защищает зеленую зону от застройки и дает еще некоторые бонусы). Вот так выглядит интерфейс редактора и граф для этой задачи:
В итоге инструмент позволяет быстро проверять какие-то гипотезы на OSM данных и получать готовые данные для работы наших сервисов в простом формате. Надеюсь, кому-нибудь тут он тоже окажется полезным.
Предложения и замечания по работе можно писать тут или на info@yourmaps.io
Ссылка: https://yourmaps.io
Документация: https://docs.yourmaps.io
Основные понятия и пример работы: https://docs.yourmaps.io/graphs-and-pipelines/
Видео-урок по рисованию карты (в конце страницы): https://docs.yourmaps.io/about/