Маршруты общественного транспорта

Ну да, рисует отель в 600 метрах от реальности

Так это не из-за технических проблем совмещения, а из-за кривых данных.

Ну не все так плохо :slight_smile: Просто особенность ОСМ - обсуждение рисков происходит в присутствии Заказчика :slight_smile: В реальности я взглянул на данные. В Ленинграде все прилично. Остановки и маршруты вроде как введены по стандарту, по крайней мере в центре города. Так что может сработать даже автоматический (вернее полуавтоматический - программа, буде такая будет написана, строит маршрут и подбирает остановки, пользователь проверяет и нажимает Большую Зелёную Кнопку) ввод. Отдельные ошибки есть, конечно, но не будем придираться. От данных по Ё-бургу пятилетней давности отличается как небо от земли. Естественно, что инфраструктуру - дороги, рулёжки на конечных и т.д. надо смотреть отдельно. Ручной ввод маршрута в таких условиях занимает минут 15. Проблема правок существует, но реально вероятность наткнуться на то, что снесли кусок маршрута, равна 0.0001 % в год. Ну разве что какой-нибудь ремонт дорог затеют. В остальных условиях это называется вандализмом и порицается. Исправить поврежденный маршрут вручную очень легко, но опять же вопрос в трудовых ресурсах.

Этот вариант действительно наилучший в текущих условиях, если Вы не хотите осваивать редактор JOSM. Что касается ввода данных в ОСМ, то я бы их Вам ввел, но я в Ленинграде был один раз лет 30 назад и не знаю местных особенностей. Так что буду ошибаться, как та гипотетическая программа. Вот например в системе есть аж три троллейбусных остановки “Станция метро Гостиный двор” в 10 метрах друг от друга. Если Ваш автобус останавливается на одной из них, мне ее никак не выбрать. Так что лучше, чтобы кто-нибудь из питерцев.
Кстати, нашел аж два сервиса, позволяющих публиковать фиды в гугловском формате - https://transit.land и https://transitfeeds.com. Но, насколько я понял, наши ничего там не публикуют

На втором есть какая то информация по Питеру притом вроде с ежедневным обновлением :roll_eyes:

Прошу прощения.
Я Екатеринбург искал. Его нету. А Санкт Петербург второпях набрал с ошибкой на англицком :slight_smile:

Ну давайте так и запишем. ОСМ не работает с ОТ. Точка. Пользуйтесь Викироутес и Гугл мапс.
На самом деле ОСМовские данные могут быть полезны, если нужно подобрать маршрут в оффлайне или если для региона/города нет фидов, положения транспорта онлайн и т.д. Как в прочем и вся остальная информация.

По этой ссылке маршрутов много, возможно все, в том числе коммерция. Значит кто-то уже заморочился выкладыванием маршрутов в GTFS, а в OSM их при этом нет. Печально.

На безрыбье конечно может быть полезно, но куда лучше было бы иметь ровно те же данные, но в GTFS. Проблема только в том, что нет общедоступного адекватного визуального редактора GTFS и нет общего места хранения (хотя можно в github хранить). Есть несколько web-редакторов разной степени глючности, но обычный пользователь там хрен разберётся.

Ещё в 2012 году я этим заморочился и реализовал, в составе портала ОРГП.
Они тянут информацию с этого портала, там даже ссылка на источник приведена: http://transport.orgp.spb.ru/Portal/transport/internalapi/gtfs/

Проблема в том, что в ОРГП решили официально предоставлять доступ к api только по заявкам и только со статических адресов: http://transport.orgp.spb.ru/Portal/transport/userAgreementApi
Неофициально сейчас ограничений нет, но в любой момент этот доступ могут опять прикрыть.
Вот если убрать это ограничение (которое больше политическое и технически нафиг не нужно), то всем будет проще.

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

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

Так попробовали хоть один внести?

А у нас везде за пределами столиц безрыбье. С другой стороны я не вижу проблемы. Базовый функционал - карта маршрутов, справочник, подбор маршрутов без пересадки или с одной пересадкой можно реализовать на базе ОСМ. Если есть интернет может подключаться дополнительный функционал за счет фидов, подключения к онлайн-службам и т.д. В простейшем случае - перехода на сайт перевозчика. id маршрута в фиде и id master_route в ОСМ ставится в соответствие 1 к 1 через подгружаемый справочник и вперед. И не забывайте, что оффлайновость - главный козырь ОСМ. Там где можно работать онлайн рулят Яндекс и Гугл. А вот оффлайновые справочники и навигаторы - это ОСМовская ниша. Ну и к тому же где эти навигаторы, использующие расписания? тот же викироутес. Какой такой роутинг с учетом расписания он предоставляет? От силы подобрать маршрут от точки до точки без пересадок. А 3 миллиона посещений в месяц декларируют. 2ГИС и Яндекс тоже расписание по моему не учитывают. Так что тут у нас один Гугл. Но на нем я как-то погорел вечером пару раз, поэтому никому его не рекомендую.

Да, печально. Слишком много ручного ввода достаточно нетривиального для человека, не связанного с перевозками. ОСМ ведь создавался из расчета, чтобы любой школьник мог нарисовать дорогу от дома до школы через веб-браузер и увидеть ее на карте. Причем крутиться все это должно на дешевых серверах. Поэтому никаких сложных структур данных, никаких хранимых процедур и никакого обеспечения целостности. Вообще говоря, результат для такого подхода просто фантастический :slight_smile:
А вот с ОТ какой-то странный облом получился. Дело в том, что изначально данные вводились лишь для рисования схем ОТ. Версия 1 стандарта ввода данных ОТ большего не позволяла. Она лишь определяла, что по такому-то вэю проложен такой-то маршрут, а такая-то остановка используется в таком-то маршруте. Т.е. создавалось отношение маршрут № такой-то и туда в произвольном порядке заносились вэи и остановки. Рендеры рисовали схему, она накладывалась на карту и все были довольны. Для роутинга и даже справочника эти данные не годились. Т.е скажем автобус 150/66 Екатеринбург-Первоуральск мог содержать остановки в следующем порядке: Екатеринбург - Первоуральск - гора Хрустальная - Мега-Талица. И после всех вэев, также живописно перемешанных еще добавлялся Дворец Молодежи. До кучи. Чтоб было. Но в общем то и у конкурентов тогда было не лучше.
Потом была принята вторая версия стандарта и вот тут и произошел раскол. Эта версия видимо была слизана с какой-то профессиональной диспетчерской системы. Там появились master_route и stop_area, а маршруты создавались отдельно для каждого направления, причем все вэи и остановки должны были быть упорядочены. На мой взгляд оформленных таким образом данных хватает и для роутинга и для справочника, и для карты и даже для администрирования трафика перевозчиком. Единственный минус - для маршрутов и остановок не предусмотрен тэг service, ну или назовите его как хотите. Как следствие, нет разделения маршрутов на городские, пригородные, дальнего следования, туристические, фабричные и т.д. И рендеры отображают маршруты и остановки различного назначения одинаково и либо пытаются показать городские маршруты на карте России, как LatLon, либо перестают показывать автобусные маршруты дальнего следования уже на 10-м уровне, как openbusmap. С остановками тоже самое. Mapnik перестает их показывать на 16 уровне и для выбора загородного маршрута карта становится непригодной.
Стандарт был принят, но как-то очень трудно приживался. Инструментов для ввода маршрутов так и не было создано. Через браузер ввести маршрут по такой схеме практически невозможно. Остается JOSM, но он требует большей квалификации, надо понимать структуру данных, помнить названия тэгов и их значения. И в нем это делать тоже трудоемко. Мэперам не понятно было, зачем нужны эти зоны остановок и точки останова. Борьба за отказ от них идет до сих пор. Т.е. абсолютно понятно, зачем они нужны для роутинга и диспетчеризации движения ТС по маршруту. Но если человек просто хочет увидеть маршрут на карте, то ему это не нужно. И в результате данные вводились мало и не всегда правильно. Да что там говорить. Тот же мэпник спустя несколько лет после принятия стандарта так и не начал отображать остановки, закодированные в соответствии с ним. По моему это саботаж. Вот уважаемый Runge в свой картостиль поддержку этого стандарта внес. Но где сейчас Runge? Вот и пришли к нынешней ситуации, когда конкуренты за 5 лет создали вполне работоспособные системы, а ОСМ остался на том же уровне. И тут замкнутый круг. Нет данных - нет смысла писать навигаторы. Нет навигаторов - нет смысла вводить маршруты. Положение мог бы спасти редактор маршрутов пользовательского уровня. Такой же, как в викироутес. Хотел написать, но времени не хватило. Ну и есть техническая проблема. Чтобы пользоваться таким редактором, нужно выкачать дамп данных из БД и построить роутинговый граф. А это не быстро. А хранить его нельзя. Данные могут устареть через секунду после выгрузки. И если между выгрузкой данных и окончанием редактирования маршрута кто-то поменяет то же, что и редактирующий маршрут пользователь, то все придется повторить. Вероятность этого мала, но существует. Поэтому проще иметь собственную БД маршрутов и роутинговый граф в памяти сервера для некоей версии карты, которую можно обновлять скажем раз в месяц. Тогда все работает быстро и без сбоев. Тот же викироутес видимо так и делает. Причем думаю, что карту он использует ОСМ. Ну не у Гугла же он ее покупает. Дорого.

Да нормально она туда лезет. Собственно, на базе ОСМ можно заделать неплохую навигационно-диспетчерскую систему, если поднять собственный сервер с копией необходимых данных. А что? Карта есть, навигаторы есть, отслеживание положение ТС в онлайне есть, рендеры… Осталось только обучить OsmAnd остановки объявлять :slight_smile: Ну и интегрировать с системой, хранящей расписание, данные о транспорте, водителях и расходе топлива. Но проблема в том, что в эту систему импорт данных из ОСМ производить будет легче, чем обратно. Парадокс