Проект веб-сайта общественного транспорта

Представляю небольшой проект веб-сайта по просмотру и валидации маршрутов общественного транспорта.

Что сейчас есть:

  • Отображение кликабельных остановок на карте. При клике открывается попап с маршрутами данной остановки.
  • Отображение маршрутов автобусов, троллейбусов, маршрутных такси, трамваев и поездов на карте.
  • Просмотр маршрутов в виде списка остановок.
  • Проверка маршрутов на наличие тегов (ref, name, from, to).
  • Вывод списка маршрутов в определенном населенном пункте в виде таблицы.
  • Суммарная статистика по стране (кол-во маршрутов, остановок, мест остановки транспорта, станций).
  • Статистика данных по регионам.

Планы:

  • Улучшение интерфейса.
  • Доработка просмотра маршрутов.
  • Доработка валидации маршрутов.

Ссылки:

Хотелки/пожелания приветствуются :slight_smile:

Какая крутотень! А почему не в онлайне?

Хостинг пока еще не нашел.

Выглядит очень здорово!

Ну если на рамблере место на дадут, видимо придётся переписать на sqlite и гонять чисто свою область.

Это всё умеет overpass-turbo.eu.

Лучше доработайте показывалку CSV таблиц в нём. Пока ничего нового для OSM, только ковыряния ненужного PHP и Apache…

https://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide#Relations
https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Output_Format_.28out.29

“Example 3ː Count the number of pharmacies per county”
https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Map_way.2Frelation_to_area_.28map_to_area.29

Я знаю что умеет overpass-turbo. Сам иногда им пользуюсь :slight_smile:

Цель же данного проекта - отображение данных общественного транспорта из OSM в удобном виде.

Ровно такая цель у overpass-turbo!

Допиливайте его, его автор крайне смышлён.

  1. Скрестите уже переведённые текстовые метки заготовок с выводом overpass https://github.com/openstreetmap/iD/tree/master/data/presets.
    Напишите out:meta-with-presets. Это проще чем повторять практически всего в overpass.

  2. Добавьте стандартные шаблоны из https://wiki.openstreetmap.org/wiki/Overpass_turbo/Examples для новичков

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

https://github.com/tyrasd/overpass-turbo
https://wiki.openstreetmap.org/wiki/User:Tyr

Если Tyr будет напрочь против реализации - форкайте overpass-turbo в свой проект.

Мне казалось, что это фильтрация данных.

Не вижу смысла добавлять общественный транспорт в overpass-turbo. Это не его задача.

А зачем повторять все, что есть в overpass? У меня своя структура БД. Данные маршрутов вырезаются из выгрузки РФ и предварительно обрабатываются.
Отобразить остановки и маршруты на карте не проблема. Это уже реализовано. Есть другие вещи, которые нужно дорабатывать.

Поиск маршрута ОТ - это другая задача, не фильтрация?

Жаль что вы так думаете. Потому что Tyr настолько хитёр что сделал поиск amenity=fountain запросом по-умолчанию.

Круто,

Напиши в личку, дам хостинга.

Есть open source проект, который строит маршруты https://github.com/KathmanduLivingLabs/yatayat может быть пригодится.

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

Зачем хостинг от рамблера? Мне кажется тут хватит дешевого виртуального сервера долларов за 5 в месяц.

overpass-turbo - он же большой и медленный. Отдельный сайт должен быстрее работать.

  1. overpass-turbo это только интерфейс обращения к серверам overpass

  2. Если всю планету не спрашивать либо если данных в ответе мало - сильно тормозить не должно.

Маршрут ОТ туда-обратно это средний запрос для overpass.

  1. более специализированный (ограниченный) 2. оффлайновый

Проект dmitri-s93 - это отчётилка с большим лагом для маленького региона.
Overpass API это интерактивное зеркало главной базы, с задержкой в 1-10 минут. https://wiki.openstreetmap.org/wiki/Overpass_API#Introduction

Пока есть только три больших сервера доступных всем - французкий, немецкий и Рамблера

Для OSM гораздо полезнее поднять ещё один сервер региона или планеты чем писать миллион лагающих отчётилок:
https://wiki.openstreetmap.org/wiki/Overpass_API/install

Для OSM гораздо полезнее избавляться от деятелей (с большим лагом и маленьким регионом), которые уж точно знают, что полезнее для OSM.

Написал :slight_smile:

Такое есть в планах.

Интересный проект. Его бы с osmstreetmap.ru интегрировать. ПМСМ, сервиса поиска общественного транспорта нам сильно не хватает

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

Зачем расписание картографическому сервису? ОСМ достаточно показывать карту маршрутов (уже есть, претензии к дизайну), остановки (уже есть), останавливающиеся на остановке виды транспорта, справочник маршрутов, ближайшие к точке маршруты и в идеале роутинг, но это сложно. Вместо расписания достаточно ссылки на сайт перевозчика или специализированной системы, где это расписание есть. Ещё можно показывать текущее положение машин на карте :slight_smile:

Ну есть wikiroutes, но это уже не картографический проект, а отдельная задача, достаточно сложная и труднореализуемая.

Роутинг без расписания - малополезная вещь.
Например, расчет маршрута А-Б по расстоянию покажет целесообразность пересадки в пункте В. Но в реальности, автобус В-Б уйдет за пару минут до прибытия автобуса А-В, и ждать следующего придется 40 минут. А если бы роутер выдал другой вариант А-Г-Б (который был более длинным и поэтому признан невыгодным) - то там будет удобная стыковка, скажем, с пятиминутным ожиданием. В итоге (с учетом расписания) маршрут А-Г-Б окажется выгоднее (быстрее), хотя А-В-Б и был короче.
Сумбурно написал, но надеюсь мысль понятна.