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

Ещё раз: потребители бывают разные, с разными потребностями. И это не только пассажиры, которым нужно добраться из точки А в точку Б. Да, чтобы проложить маршрут с использованием ОТ, достаточно иметь точки остановок и расписание движения по ним. Но как раз расписания в 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, что бывает нужно для проездов на автобусных станциях, парках). И довольно часто этого не хватает, приходится корректировать линию, расставлять промежуточные точки, т.к. кратчайший маршрут оказывается неверным.

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

Эти дополнительные таблички не нужны: в ПДД явно указаны дорожные знаки, действие которых не распространяется на общественный транспорт (обычно в виде фразы “Действие знаков X.X.X-X.X.X не распространяется на маршрутные транспортные средства”).

P. S. Ещё пример до кучи - https://www.google.ru/maps/@59.9287715,30.4113022,3a,78.5y,62.76h,92.67t/data=!3m7!1e1!3m5!1sPOQCFMpevz_cXIWs0QhbdQ!2e0!6s%2F%2Fgeo1.ggpht.com%2Fcbk%3Fpanoid%3DPOQCFMpevz_cXIWs0QhbdQ%26output%3Dthumbnail%26cb_client%3Dmaps_sv.tactile.gps%26thumb%3D2%26w%3D203%26h%3D100%26yaw%3D161.44427%26pitch%3D0%26thumbfov%3D100!7i13312!8i6656 (знаки движения по полосам - “только прямо”, троллейбусные провода уходят налево).

Обьясните чем отличается редактор ID от джосма или поттача ?

неудобной работой с отношениями.
полач лучше просто не вспоминать…

  1. Правильно ли я понимаю, что никаких сетей общественного транспорта в России нет и все эти рандомные network=city/local/regional не имеют никакого смысла?
  2. Раз нет тегов для льготных тарифов, то стоит ли указывать полный как fee=yes + charge=XX RUB?
  3. Правильно ли обозначать маршруты с низкопольными автобусами как wheelchair=limited (т.к. неизвестно, все ли они низкопольные, да и заехать в них самостоятельно явно проблематично)?
  1. Да, но поделить на городские, пригородные и междугородние было бы полезно
  2. Тарифы это вообще не про схему движения
  3. Кроме автобуса, платформа так же должна быть подходящей. В общем это опять не про сам маршрут.

Для чего?

Но натягивать GTFS на OSM пока никто не собирается. Так может лучше так, чем никак?

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

Скорее есть.
city - маршруты, которые разработал и которыми управляет (указывает оператору параметры работы) город. Имеют единые тарифы, правила, требования к подвижному составу и т. д.
regional - аналогично, регион

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

Тут важно ещё учитывать то, что низкопольность - необходимое, но недостаточное условия для тегов wheelchair. Так как есть частые случаи, когда подвижной состав и инфраструктура пригодны для передвижения на коляске, но водители не опускают трап для заезда и/или не подъезжают близко к посадочной платформе. То есть автобусы 100% низкопольные, но wheelchair=no.

Поэтому, строго говоря, для низкопольности нужен отдельный тег, не wheelchair.

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

В общем согласен. Но насколько частое это явление? Мне кажется, это скорее исключение, которое бы сопровождалось громким скандалом.

Я бы тут проводил аналогию с сетью заведений по франшизе. Точнее, в современных российских реалиях маршруты ОТ и работают по схеме, близкой к франшизе. И один и тот же оператор может работать по городским и региональным маршрутам, потребительские качества у них разные (хотя региональные могут частично дублировать городские). К примеру, на региональных может не действовать городской безлимитный тариф (даже в границах города).

То есть только тега operator недостаточно.

Частое. Отчасти причиной служат неудобные подъезды к остановочным площадкам - их делают в расширениях дороги (карманах). Заруливать туда требует времени и усилий (небольших, но много раз за смену водителя), поэтому нормальной ситуацией становится остановка автобуса не вплотную к остановочной площадке, а в метре-двух от неё - “кому надо ехать, подойдут”.

Так в том-то и дело, что завтра маршрут отдадут другому оператору и все его потребительские качества изменятся. Стоимость проезда - это атрибут маршрута, а то и конкретного рейса (“динамическое ценообразование”).

Не совсем так. На самом деле network - это сеть, которой принадлежит маршрут. Для сети устанавливаются общие правила движения и оплаты. В России администрированием сетей заняты, как я понимаю, муниципалитеты и органы государственной власти. Для каждой сети формируется реестр маршрутов, в рамках которого номер маршрута уникален, правила проезда, утверждается периодичность, количество машин и т.д. Также в сеть входят остановочные пункты. Их реестр с названиями, адресом и координатами тоже составляется администратором сети. Дальше, видимо, выбираются подрядчики, которые и осуществляют перевозки, а создатель сети выступает в качестве надзорного органа. Сеть эта имеет название. Что-нибудь вроде, “Единая сеть маршрутов регулярных пассажирских перевозок Свердловской области”, администрируемая Министерством транспорта Свердловской области, или "Сеть маршрутов регулярных перевозок МО “Город Екатеринбург”, администрируемая Администрацией Екатеринбурга. Ну или как-то так. Иногда это название даже на автобусах/трамваях/поездах пишут. Вот это название теоретически и должно быть указано в тэге “network”. Это важная информация, т.к. номер маршрута обычно уникален в пределах сети, а правила оплаты и прочее отличаются именно между сетями. Ну и потребитель знает кому жаловаться. Иначе буквально по одной улице может в легкую идти два 101-х автобуса. Один из одного города, другой из другого. И по карте их не различишь.
Тэг “operator” - это название подрядчика, который законтрактован осуществлять перевозки по маршруту. Тут есть сложность. Один оператор может работать на разных маршрутах и в разных сетях. И наоборот. На одном маршруте может быть несколько операторов. Через точку с запятой :wink:

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

Да. И остановки по назначению тоже. Это важно и для потребителя, и для рендеринга. Конечно рендеров ОТ осталось чуть больше нуля, но они распределяют масштаб, на котором надо отображать маршруты и остановки исходя из типа транспорта, а не назначения. Т.е. все автобусы считаются пригородными и на месте городов образуются кляксы. А дальние перевозки видны только, если приблизить. Трамваи и троллейбусы видны только на городском уровне, а поезда считаются дальнего следования. Это неверно. Масштаб для отображения должен определяться назначением маршрута. Но для этого нужен отдельный тэг. Я предлагал скопировать систему кодирования поездов в Германии и использовать тэг service. Но это как то не понравилось. И второй вопрос. Как определять назначение маршрута? По документам или по факту?

Теоретически - да. Но вы уверены, что это официальное название? И в каких документах его искать?

Какая-то она не очень продуманная. Мне кажется, это и на уровне рендера можно решить. Например, скрывая маршруты, которые полностью находятся внутри области с определённым admin_level

“Назначение” остановки можно вычислить по маршрутам, которые там останавливаются

Ну честно говоря, не уверен. Ибо разбираться в этих бюрократических дебрях лень. Но на междугородних автобусах такая наклейка была. Основной документ, по которому можно посмотреть структуру сети - это реестр маршрутов. Легко гуглится по запросу “Реестр маршрутов регулярных перевозок <название субъекта>”. За исключением ж/д. Там на сайте РЖД или их пригородных компаний искать надо. А так это видимо обязательный документ, который они публикуют на сайте. Но надо быть осторожным. Документ принимается и публикуется раз в год и может не соответствовать текущим изменениям. Они проходят под названием “Постановление <должность> о внесении изменений в схему маршрутов регулярных пассажирских перевозок <название субъекта> с <дата> в связи с <формальная причина> в соответствии с <какая-нибудь еще бумага>” $) Из его заголовка можно предположить, как власти свою сеть называют :slight_smile: Проблема в том, что название из заголовка абсолютно нечитаемое и правильнее всего переводить с русского бюрократического на русский обиходный. Ибо редкий пассажир дочитает до конца. Я прочитал только потому что картографированием увлекся, а, например, маме важно лишь екатеринбургский автобус (действует льготная Е-карта) или, скажем, березовский (не действует, но за деньги проехать удобнее, ибо ходит раз в 15 минут). Плюс поле для показа такого названия в приложении должно быть на полэкрана :slight_smile: Так что лучше наверное писать “Гортранспорт Екатеринбурга” (я написал длиннее, о чем жалею), а остальное в “network:official”. В англовики рекомендуется вообще вместо названий сетей аббревиатуры использовать. Но у нас они, кроме той же РЖД, никому ничего не скажут.
Но лучше бы этот вопрос уважаемый Сергей Астахов осветил. Он этой темой профессионально занимался

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

Та же проблема. Во-первых, расчетов еще больше. Во-вторых, формальные признаки могут давать неверный результат. Скажем, пригородный автобус 111 “Екатеринбург-Среднеуральск” останавливается на всех городских остановках. И на 50 % используется, как городской. Формально, им надо всем давать “пригородный” статус и карта вновь перегружена. Реально, на пригородный статус тянут только конечные и еще пара остановок, где основная посадка/высадка в связи с пересадкой на метро и по приезду в Верхнюю Пышму. А междугородные поезд или автобус дальнего следования могут тормозить у каждой Караболки (или на Разъездах №1 - 5) по пути из Екатеринбурга в Челябинск, где окромя знака даже скамейки нет. Понятно, что остановками уровня дальнего следования являются вокзалы и автовокзалы Екатеринбурга или Челябинска, которые являются хабами для межрегиональных перевозок. А остановка “Татарская Караболка (поворот)” - пригородная, ибо предназначена для транспортировки пассажиров в сельское поселение. Но отмечать ее на карте надо на меньшем масштабе, чем городскую. Ибо она одна на 20 км трассы.
Ну и опять же есть остановки спецтранспорта.