image
Вышел небольшой open-source построитель пешеходных маршрутов для людей с ограниченными возможностями.

Сразу ссылка на исходники: https://github.com/korifey/Smooth


Сейчас это организованно так:
Крутится это всё на Java сервере, в т.ч. алгоритм маршрутизации.
На первых этапах пришлось повозиться над оптимизацией, чтобы переварить карты размером с большой город и больше.
В качестве исходных данных используются актуальные дампы OpenStreetMaps, которые периодически обновляются.
Препятствия (высокие поребрики, ограждения и прочее) берутся у «Красивого Петербурга».

Так же авторам удалось получить данные по общественного транспорту — берутся они через API транспортного портала Санкт-Петербурга. Он не открыт, доступ предоставляется по заявке для определённого IP. Чтобы интегрировать их в систему необходимо очень серьёзно обработать и привести к нужному формату. Пока авторы работают над обеспечением ключевого функционала сервиса — прокладкой пеших маршрутов и обработкой сообщений о препятствиях.

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

Другая проблема — направление. Ведь в отличие от тротуаров с узла-остановки можно двигаться только в одном направлении.

К сожалению, информация по тротуарам сегодня далеко не полная. Поэтому пока приложение строит маршрут по линии дорог, но с повышающим коэффициентом. Даже если путь через известный тротуар длиннее, будет использован он, а не проезжая часть.

Это, конечно, не оптимальное решение. Одна из важных задач, которая стоит перед создателями сервиса, — это найти человеко-ресурсы для нанесения тротуаров на карту OSM (авторы обещают подготовить инструкцию, следуя которой люди смогут помочь сервису и движению OpenStreetMap одновременно).

К слову — требуются волонтеры: при помощи редактора на сайте OSM наносить тротуары на карту. Со всей доступной информацией по этому тротуару.

Основные изменения сейчас происходят на фронт-энде. Хотя в ближайшее время и бэкенд тоже будет доработан для более качественного приёма препятствий.

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

Авторы и сами пробовали пользоваться своим сервисом. Иногда он плохо строит маршрут из-за незнания тротуаров. Но местами знает город лучше более серьёзных навигационных сервисов. Яркий пример — путь с Дворцовой площади на Большую Конюшенную улицу (Smooth строит маршрут через дворы Капеллы).

В коде местами всё достаточно сумбурно, но если есть понимание, как сделать лучше — присылайте ваши пуллреквесты!

image

Авторы проекта – Никита и Виталий Касьяновы, Дмитрий Иванов и Наталья Давыдова. Они представили свою идеюна хакатоне Open Data Hackathon 2014: Hack for Piter, который организовали Теплица социальных технологий, Фонд «Открытый город» и Университет ИТМО.

Комментарии (8)


  1. alltiptop
    11.06.2015 00:44
    -2

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


  1. alcanoid
    11.06.2015 01:43
    +2

    Боюсь вас расстроить, но по дворам Капеллы приятно пройти пешком, а вот на коляске вряд ли проехать беспрепятственно получится.


    1. kascode
      11.06.2015 11:00
      +1

      Да, насквозь там проехать трудно. Но важно что мы, благодаря сообществу OSM, знаем о таких маршрутах. Ведь без знания путей любые знания препятствий бесполезны. Со знанием путей тоже не всё гладко. Покрытие тротуаров на карте OSM Санкт-Петербурга не полное даже в центре. Сейчас ищем добровольцев, которые помогли бы с отрисовкой пеших путей в городе.


  1. gsuvorov Автор
    11.06.2015 11:29

    собственно вот ссылка где можно попробовать smooth.city


  1. vlivyur
    11.06.2015 13:06

    А какие теги для тротуаров, проходов интересуют в первую очередь? wheelchair, width, smoothness — что ещё?
    Ну и про центр Питера это вы загнули. В центре вообще всё плохо.


    1. kascode
      11.06.2015 13:43

      В первую очередь важны теги surface, width, wheelchair_access. Но в последнем случае должно быть выполнено много условий для того чтобы поставить однозначное yes, поэтому если есть cомнения, то лучше ставить limited. Мы сейчас готовим туториал и рекомендации для тех, кто хочет помочь отрисовкой. Скоро выложим.


  1. Kasheftin
    11.06.2015 15:23

    Литовский идейный аналог — beslenksciu.lt. Здесь роутинг не так важен, потому что обычно нет проблемы с проездом на коляске. На stops.lt есть так же расписание транспорта, в том числе подходящего для инвалидов. Поэтому перемещение по городу — это не проблема, и суть be slenksciu не в роутинге, а в базе доступных для посещения объектов. Из статьи понял, что был написан свой роутинговый код, почему было не взять готовый?


    1. kascode
      11.06.2015 21:22

      Карты доступности POI существуют и в России. Объём и актуальность данных в них, к сожалению, часто оставляют желать лучшего. Да и проблему перемещения, которая у нас очень актуальна, они не решают. До доступного места ведь нужно как-то добраться.
      Свою маршрутизацию писали в первую очередь из-за того, что это изначально был проект на хакатон Hack for Piter 2014. Мы знаем о таких проетах как OSRM или Graphhopper, следим за ними. Но в данный момент смена бэкенда не принесла бы большой пользы.