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

1-10-13-7-4

А можно я?
Возможно я не прав, но с точки зрения пользователя услугами общественного транспорта мне в принципе без разницы, КАК и ГДЕ будет ехать этот теоретический автобус от одной остановки до другой. Мне важно только знать очередность этих остановок, что в обычной жизни и называется Маршрутом ОТ.
Не?

Вы реальные примеры, пожалуйста, предоставляйте, а не свои домыслы.

Всё отлично строится как надо. И это ещё не учитывая, что маршрут будет строиться для последовательности точек, а не между парами, т.е. для маршрута по Gätternstrasse там добавятся ещё петли для разворотов.

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

Пропозал конечно надо-бы написать, но это дело муторное, и особо желания в это болото окунаться пока нет. Возможно когда-нибудь…

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

там, где есть улицы с выделенной А-полосой, иногда очень важно знать, по ней или не по ней (а, значит, по пробкам) поедет автобус

Не совсем так. У пассажиров пользуются популярностью именно схемы маршрутов. И для их отрисовки, собственно, и затевается это дело с указанием отрезков улиц.

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

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

Но почему же в трамвае висят именно схемы линий, а не списки остановок?

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

Ну и список остановок из данного предложения никто не мешает наложить на карту и соединить в нужном порядке условными линиями (типа линий метро. Мне глубоко пофиг, проходит тоннель 10 метров правее или левее того места, где нарисована линия).
Дикие маршрутки отваливаются, правда…

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

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

newpavlov, как я понял, предлагает несколько другое - рендер ОТ берет отношение route, вытаскивает из него все члены stop* и via - скармливает их последовательность автороутеру - получает линию движения.
ее кеширует и отображает совместно с членами patform.

неидеальный пример. в городе остановки слишком близко.

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

т.е. никогда :slight_smile: как собственно всегда и получается.

можно набросать последовательность остановок локально, построить маршрут, если он отличается от фактического, поставить точки via

Т.е. вместе с пропозалом должен быть приложен эталонный алгоритм для построения маршрута, чтобы все могли одинаково понимать что нужны точки via?

в идеале – да.

Да, всё верно.

Ну дык, “идеальный” пример в студию. :wink: Только чур не приводит примеры маршрутов проходящих по дорогам только для общественного транспорта. Предполагаю, что и для междугородних маршрутов надо будет очень постараться чтобы найти хороший пример.

Ещё раз: потребители бывают разные, с разными потребностями. И это не только пассажиры, которым нужно добраться из точки А в точку Б. Да, чтобы проложить маршрут с использованием ОТ, достаточно иметь точки остановок и расписание движения по ним. Но как раз расписания в OSM нет, а значит нормативы движения неизвестны (в отличии от того же GTFS). Для часто ходящих маршрутов его в какой-то мере можно заменить геометрией и средней скоростью движения автобуса.

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

Ну и наконец наглядное представление маршрутов на карте, про что тут уже упоминали.

С учётом того, что маршрутным ТС разрешается отступать от правил ПДД при движении по установленному маршруту (в частности они могут игнорировать запрещающие знаки) - ошибок будет море.

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

а как же bus = * ?

Ну вот например: http://transport.orgp.spb.ru/Portal/transport/stop/18367

Все 4 маршрута, которые проходят через эту остановку выполняют левый поворот с Ленинского на Кубинскую.

А этот поворот запрещён для обычного транспорта: https://goo.gl/maps/MxZDXEex8So

Или вот, например: https://goo.gl/maps/M1SA2s5JeZn
Стоит знак “только прямо”. Однако смотрим вверх и видим троллейбусные провода, поворачивающие в нарушение этого знака. И троллейбусы постоянно туда поворачивают, по пути в парк/из парка. В основном это служебные рейсы, но один троллейбусный маршрут тоже там проходит: http://transport.orgp.spb.ru/Portal/transport/route/12276

И таких мест достаточно много.

Благодарю, хорошие примеры. Вижу два потенциальных решения (не считая стауса-кво):

  • Использовать except=bus в отношениях ограничений
  • Расширение via на линии, т.е. если в маршруте между остановками есть одна или несколько соединённых линий via, то маршрут строиться до начала этих линий и продолжается с их конца.

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

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

У нас в системе (управления и мониторинга за ОТ) как раз так и сделано - когда прокладывается новый маршрут, при добавлении очередной остановки линия перегона строится автоматом, прокладкой кратчайшего пути для psv|bus (service по умолчанию отключен, если только там не стоит явный psv|bus=yes, что бывает нужно для проездов на автобусных станциях, парках). И довольно часто этого не хватает, приходится корректировать линию, расставлять промежуточные точки, т.к. кратчайший маршрут оказывается неверным.

разве в этих случаях запрещающий/предписывающий знак не дополняется табличкой?