OpenStreetMap

Егор Смирнов's Diary

Recent diary entries

По работе мне часто приходится работать с 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

Наш пешеходный навигатор обзавелся Android версией. Да, это еще один Android навигатор по OSM данным, но с уникальной фичей - он ищет не кратчайшие, а наиболее интересные для пешехода маршруты, идущие мимо парков, памятников и дворцов.

Кроме прямых маршрутов между двумя точками можно строить круговые, с возвратом назад за указанное время. Ну вот есть два часа до поезда, далеко от вокзала не уйдешь, а посмотреть что-то интересное поблизости хочется.

Скрин из Play Market Скрин из Play Market

Раньше писал уже тут про идею алгоритма.

Уже есть 100+ городов России и мира, благодаря OSM новые добавлять можно в пару кликов.

Кому интересно - скачивайте, пользуйтесь, все бесплатно и без рекламы. Ссылка на приложение в Play Market

Сделал тут пешеходный навигатор, который строит не кратчайшие, а наиболее интересные пешеходные маршруты - т.е. содержащие больше достопримечательностей и всяких туристических объектов, проходящие через парки и набережные.

Вот пример, вместо кратчайшего пути через дворы (как поведет любой другой навигатор, что Яндекс, что Гугл, что дефолтный GraphHopper) мой ведет мимо исторического музея, Чесменской церкви и дворца и дома Советов. Примерно на 10% длиннее, но гораздо интереснее, сам таким маршрутом предпочитал ходить. Слева еще показывает список достопримечательностей со ссылками (если у объектов есть теги wikipedia или url или website):

скрин маршрута

Пока только веб-версия тут: http://sightsafari.city

Как работает: выдираем из OSM данные о достопримечательностях (объекты с тегами tourism, а так же парки, набережные и исторические здания), строим области видимости (простой raycast алгоритм), затем берем библиотеку GraphHopper для роутинга, уменьшаем веса ребер графа там где видны какие-то достопримечательности, тем самым притягивая маршруты к этим точкам.

Конечно в реальности там вагон и маленькая тележка нюансов, часть из них я описал на хабре

Пока работает только в нескольких городах (на карте выделены красным пунктиром), по заявкам добавляю новые. Можно тестировать и писать отзывы в группе ВК

Обсуждение на хабре показало, что спрос на подобный навигатор есть, теперь думаю как его развивать дальше.