В рамках соседней темы http://forum.openstreetmap.org/viewtopic.php?id=18869 я написал простой роутер по железным дорогам. Пока он позволяет проверить наличие маршрута между двумя станциями и показывает длину самого короткого маршрута.
oneway учитывается. Запрет поворотов на >90° пока нет (вообще, стоит? поезд может остановиться и поехать в другую сторону; такое встречается на практике для, например, пригородных электричек?). Сам маршрут тоже пока не выдаётся. Сейчас роутер позволяет проверить связность ж/д сети, а если будут данные о длинах перегонов, и качество отрисовки ж/д линий. В будущем, возможно, пригодится где-то ещё.
Тестовый прогон показал, что основная проблема на данный момент - отсутствие точек остановки на railway линиях. Поэтому в рамках сабжа я предлагаю начать приводить станции к следующей схеме:
если через станцию проходит несколько путей (и нарисовано, соответственно, несколько путей)
точки остановки поездов у всех платформ отмечать как public_transport=stop_position + train=yes + name=название станции
точку станции (railway=station) убирать с путей
если через станцию проходит один путь, или несколько путей, но они нарисованы как один, допустимо как ставить railway=station на этот путь, так и использовать схему выше
Поясню, почему stop_position должны быть проставлены руками, и не могут быть вычислены автоматически. Допустим, точка станции находится не на путях, и мы берём ближайшую к ней точку на каждом пути и считаем её за stop_position.
точки будут проставлены не в том месте, ибо бывает, что разные платформы смещены друг относительно друга: http://osm.org/go/0t3iKPGAA-
Поясню почему станцию имеет смысл убирать с путей, когда их несколько: потому что иначе создаётся впечатление что один из путей отличается от других и имеет больший приоритет, когда на деле это не так, и усложняется редактирование, потому что нельзя будет, например, выбрать все stop_position и добавить к ним какой-либо тэг - путь со station придётся обрабатывать отдельно. wiki с этим согласна:
поезд может остановиться и поехать в другую сторону; такое встречается на практике для, например, пригородных электричек?
В Германии - да, я на таком ездил.
Ехал из Dusseldorf-а в Paderborn, в Hamm-е после остановки поезд трогается в обратную сторону.
Традиции она не ломает, ибо станцию и так часто ставят вне путей. Между путями, на здание вокзала - обычное дело.
Wiki она соответствует, цитату я уже привёл. Правда в wiki случай с 2 путями почему-то тоже отнесли к simple, хотя логики в этом никакой, очевидно, нет. Если чешется к этому придраться, начнём со случев с >2 путей.
Тэги stop_position будут перемешаны с тэгами station. Кроме того, обоснования почему station именно на этом пути от этого не появится.
Как это не ломает, если большинство стоит именно на путях, а предлагается убрать специально все такие (во всем мире)?
Вики я приводил — призывает делать именно на путях, если случай не сложный.
2 пути — случай не сложный, хоть и не симметричный.
В чем проблема? Не хотите на ту же точку - поставте рядом отдельнуу, причем в более точное место.
А оно нужно? Стоит, где хочет. Где осмысленнее подпись выглядит - вполне за обоснование.
Если рутинг основывается на stop_position, то зачем трогать старый добрый station и мутить воду?
Надо расставлять новомодные stop_position и т.п. куда идея велит, а на местоположение station не обращать внимание.
Сейчас и де-факто, и де-юре существуют и допустимы обе схемы, и приведение к одной из них ничего не может сломать. Вопрос только в выборе более логичной.
Не призывает, а считает допустимым. И не всегда, а только в простых случаях. Не более двух путей. Станция на пути где таковых больше двух wiki уже явно противоречит.
Не трогай и не мути - никто не заставляет, я ясно написал что это опционально. А те кто считает привязку к какому-то конкретному пути нелогичной - отвяжут.
Ясно написано, что предлагается: раз увидел на путях, то убери!
Разборки на “простой” или “сложный” случаи не играют роли. Предлагается убирать то, что веками расставлялось с неким смыслом.
У меня один вопрос - много ли на самом деле точек станций, принадлежащих путям, и тех, которые им не принадлежат. А то вот беглый осмотр в нескольких случайных местах показал что это более чем непостоянная практика, даже в основательно отрисованных областях.
Нельзя сломать то, что не работает. При наличии кучи станций вне путей, схема которая ожидала их на путях, очевидным образом не работала. Схема, которая описана в вики “станция может быть на путях, может быть вне путей, а может быть вообще на полигоне, без точек” и которую же имеем де-факто ни коим образом не нарушается.
Возражу.
“For simple modeling of simple stations” – для простого моделирования простых станций. Но где здесь настоятельная рекомендация для простых станций применять обязательно простое моделирование? Я полагаю, здесь выбор способа картографирования – за самим картографом, и ничто не запрещает ему картографировать простые станции не самым простым способом.
Эту фразу в вики следует понимать так: “если для простых станций применено простое моделирование …” и далее по тексту.