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

Согласен с Котярой

Согласен с shadowjack)

ps. И вот посмотри, Александр, читая моё согласие, ты должен прочитать сначала мысль ШадовДжека, а от неё взойти на исходную мысль Котяры – вот типичное “отношение на отношение”, что то же самое, что твой “вей на отношение”))

  1. вполне может быть, но как по другому изобразить схему движения на картинке?
  2. совсем неправда
  3. тоже неправда, хотя и не такая очевидная. уточнят веи скорее всего вместе

Изложите алгоритм

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

Что такое сегмент вея - участок между соседними узлами? Получается, что с уровня веев алгоритмы переходят на уровень сегментов. т.е. каждый вей нужно разобрать на сегменты, произвести необходимые действия, собрать обратно в веи. Если под порядком понимать двоичный порядок (2 раза), то на порядок - точно сложнее.

Теперь статистика по адресу http://stat.latlon.org/public_transport/ будет обновляться ежедневно. Просьба использовать в работе.

Давно пора :slight_smile: А то я вчера почти создал заново один уже готовый маршрут :slight_smile:

Да, пока что только для мос. области.
Что еще добавить в статистику?

Свердловскую область :slight_smile:

Координаты, пожалуйста.

В каком виде? Можно квадратом с запасом?

Хочу Нижегородскую. А зачем координаты? Разве от обычной статистики нельзя их взять?

Редактируя маршруты трамваев, заметил, что основным стилем их описания является объединение всех остановок и линий в одном отношении. Примеры таких маршрутов: 1, 2. С моей точки зрения есть более лучший подход, когда каждый маршрут разбивается на два - прямой и обратный. Пример такого маршрута прямое направление и обратное. У такого подхода есть важное преимущество - остановки и улицы всегда идут в том порядке, в котором их проезжает транспорт, и гипотетической программе маршрутизации будет тривиально расчитать маршрут между двумя точками, не заморачиваясь на запреты повортов. В моем подходе я вижу следующие минусы:

  1. Вместо одного отношения создается два и во многих случаях приходится выполнять двойную работу.
  2. Два отношения хорошо бы объединить в одно - под общим названием и тегами маршрута. К сожалению, пока нет общепринятого средства такого объединения.
  3. Для визуального различения маршрутов также нужен тег(и) для определения начальной и конечной остановки. Общепринятого формата для этого тоже нет.
    Собственно, хотелось бы выслушать мнения по данной технике, и может быть получится выработать общее решение, которое можно будет вынести в вики.

А что мешает расставить веи и остановки по порядку в двухстороннем маршруте?

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

Правда, остаётся очень трудный момент с привязкой остановок к улице.

Начальная и конечная остановки вычисляются тривиально. Это первая и последняя точка с ролью {forward,backward}:stop. Если на маршруте такие остановки совпадают (например, он кольцевой), то можно обозначать просто stop.

Формальное наименование маршрута может отличаться от местонахождения его конечных. Например, транспорт до м. Новоясеневская (Битцевский парк) реально в качестве конечной имеет остановку “Битцевский рынок”.

Да не нужно это обилие ролей. Достаточно все отрезки маршрута собрать в единую неразрывную линию (замкнутую, если маршруты туда и обратно различаются, иначе незамкнутую). Тогда направление движения легко определяется по месту соединения с предыдущим или поледующим куском. По большому счёту даже отдельные роли для остановок и путей — чисто для удобства. Их отличить по тегам и виду (node/way) можно.

А forward и backward для путей и остановок в описании имеют одинаковый смысл — направление относительно way direction (а не маршрута). Впрочем, разброд в действительном использовании этих ролей должен в итоге привести к статусу deprecated. :slight_smile:

Что касается приязки остановок к улице, то я поддержу пропозал:
http://wiki.openstreetmap.org/wiki/Proposed_features/unified_stoparea
Он логичным образом определяет соответствующие теги:
highway=bus_stop — место остановки автобуса/троллейбуса, должно быть на way так что принадлежность к части маршрута определяется тривиально (оригинальное описание не говорит так делать, но и не запрещает явно, хотя говорит о распространённой прктике их расположения сбоку).
highway=platform — место ожидания.
Я так уже остановки у себя в районе замапил. :slight_smile:

Izhl, у нас есть транспортный роутинг в ННовгороде:
http://www.doroga.tv/transport/route (надо выбрать при этом регион Нижний Новгород)
в теории, использовать алгоритм можно и для OSM данных…

еее!! заработал latlon.org!!! дансинг
Маршруты краше прежнего, с маршрутками!! Скетч заработал обратно))
Только пока статистики нет.
Котяра, :-*

Спасибо за прекрасный сервис - видишь, что не зря отрисовываешь маршруты!

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