OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

Announcement

A fix has been applied to the login system for the forums - if you have trouble logging in please contact support@openstreetmap.org with both your forum username and your OpenStreetMap username so we can make sure your accounts are properly linked.

#1 2012-10-28 18:07:58

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Подготовка базы для ж/д роутинга

В рамках соседней темы http://forum.openstreetmap.org/viewtopic.php?id=18869 я написал простой роутер по железным дорогам. Пока он позволяет проверить наличие маршрута между двумя станциями и показывает длину самого короткого маршрута.
oneway учитывается. Запрет поворотов на >90° пока нет (вообще, стоит? поезд может остановиться и поехать в другую сторону; такое встречается на практике для, например, пригородных электричек?). Сам маршрут тоже пока не выдаётся. Сейчас роутер позволяет проверить связность ж/д сети, а если будут данные о длинах перегонов, и качество отрисовки ж/д линий. В будущем, возможно, пригодится где-то ещё.

Тестовый прогон показал, что основная проблема на данный момент - отсутствие точек остановки на railway линиях. Поэтому в рамках сабжа я предлагаю начать приводить станции к следующей схеме:
- если через станцию проходит несколько путей (и нарисовано, соответственно, несколько путей)
  - точки остановки поездов у всех платформ отмечать как public_transport=stop_position + train=yes + name=название станции
  - точку станции (railway=station) убирать с путей
- если через станцию проходит один путь, или несколько путей, но они нарисованы как один, допустимо как ставить railway=station на этот путь, так и использовать схему выше

Тут нет ничего нового, всё полностью соответствует как wiki:
http://wiki.openstreetmap.org/wiki/Tag: … %3Dstation
http://wiki.openstreetmap.org/wiki/Tag: … p_position
так и ситуации де-факто, за исключением того что public_transport=stop_position мало где проставлены, а railway=station много где незаслуженно стоит на одном пути из многих.

Поясню, почему stop_position должны быть проставлены руками, и не могут быть вычислены автоматически. Допустим, точка станции находится не на путях, и мы берём ближайшую к ней точку на каждом пути и считаем её за stop_position.
- точки будут проставлены на неправильных путях: например, сквозных через станцию http://osm.org/go/0v39aIKNr-- либо вообще сортировочной горке http://osm.org/go/0t21pNR3f-
- точки будут проставлены не в том месте, ибо бывает, что разные платформы смещены друг относительно друга: http://osm.org/go/0t3iKPGAA-

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

For complex or larger stations it is often best to create a node within the main concourse area and use a public_transport=stop_area to associate this with the rest of the elements of the station.

но вцелом это опционально.

Last edited by AMDmi3 (2012-10-28 18:08:20)

Offline

#2 2012-10-28 18:42:20

trolleway
Member
Registered: 2011-02-09
Posts: 537
Website

Re: Подготовка базы для ж/д роутинга

Любой поезд запросто может развернутся на 180 градусов, и даже несколько раз, например http://rasp.yandex.ru/thread/6815x6816A … 10-28#data или все что проходят через Мичуринск-Уральский.
Я еще где-то в вики видел railway=stop, и где-то его поставил.

Last edited by trolleway (2012-10-28 18:43:41)

Offline

#3 2012-10-28 18:46:39

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,579
Website

Re: Подготовка базы для ж/д роутинга

> поезд может остановиться и поехать в другую сторону; такое встречается на практике для, например, пригородных электричек?
В Германии - да, я на таком ездил.
Ехал из Dusseldorf-а в Paderborn, в Hamm-е после остановки поезд трогается в обратную сторону.


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#4 2012-10-28 18:51:34

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

Ну ok, в принципе можно будет разрешать/запрещать такие развороты для отдельных перегонов, если захочется.

Offline

#5 2012-10-28 19:12:48

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,579
Website

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

в рамках сабжа я предлагаю начать приводить станции к следующей схеме:

Привёл Спирово к схеме, включая релейшн. Пойдёт?


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#6 2012-10-28 20:01:36

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

  - точку станции (railway=station) убирать с путей

Такая крамольная мысль ломает все традиции и вики не соответствует.

For simple modeling of simple stations with a single track (or one in each direction) just add a node with railway=station and name=* at an appropriate point on the railway (tagged railway=rail, railway=subway etc).

Last edited by wowik (2012-10-28 20:04:14)

Online

#7 2012-10-28 20:05:35

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

выбрать все stop_position и добавить к ним какой-либо тэг - путь со station придётся обрабатывать отдельно.

Почему там нельзя добавить stop_position?

Online

#8 2012-10-28 20:27:13

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

wowik wrote:

Такая крамольная мысль ломает все традиции и вики не соответствует.

Традиции она не ломает, ибо станцию и так часто ставят вне путей. Между путями, на здание вокзала - обычное дело.
Wiki она соответствует, цитату я уже привёл. Правда в wiki случай с 2 путями почему-то тоже отнесли к simple, хотя логики в этом никакой, очевидно, нет. Если чешется к этому придраться, начнём со случев с >2 путей.

wowik wrote:

Почему там нельзя добавить stop_position?

Тэги stop_position будут перемешаны с тэгами station. Кроме того, обоснования почему station именно на этом пути от этого не появится.

Offline

#9 2012-10-28 20:36:26

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

Традиции она не ломает, ибо станцию и так часто ставят вне путей

Как это не ломает, если большинство стоит именно на путях, а предлагается убрать специально все такие (во всем мире)?
Вики я приводил — призывает делать именно на путях, если случай не сложный.
2 пути — случай не сложный, хоть и не симметричный.

Last edited by wowik (2012-10-28 20:44:54)

Online

#10 2012-10-28 20:41:56

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

Тэги stop_position будут перемешаны с тэгами station.

В чем проблема? Не хотите на ту же точку - поставте рядом отдельнуу, причем в более точное место.

AMDmi3 wrote:

Кроме того, обоснования почему station именно на этом пути от этого не появится.

А оно нужно? Стоит, где хочет. Где осмысленнее подпись выглядит - вполне за обоснование.
Если рутинг основывается на stop_position, то зачем трогать старый добрый station и мутить воду?
Надо расставлять новомодные stop_position и т.п. куда идея велит, а на местоположение station не обращать внимание.

Last edited by wowik (2012-10-28 20:42:55)

Online

#11 2012-10-28 21:01:23

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

wowik wrote:

Как это не ломает, если большинство стоит именно на путях, а предлагается убрать специально все такие (во всем мире)?

Совершенно не факт что большинство. Станции вне путей - обычное явление по всему миру

http://www.openstreetmap.org/?lat=48.71 … 07&zoom=17
http://www.openstreetmap.org/?lat=49.02 … 02&zoom=18
http://www.openstreetmap.org/?lat=38.97 … 61&zoom=18
http://www.openstreetmap.org/?lat=57.52 … 61&zoom=17
http://www.openstreetmap.org/?lat=51.26 … 7&layers=M

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

wowik wrote:

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

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

Offline

#12 2012-10-28 21:04:52

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

wowik wrote:

то зачем трогать старый добрый station и мутить воду?

Не трогай и не мути - никто не заставляет, я ясно написал что это опционально. А те кто считает привязку к какому-то конкретному пути нелогичной - отвяжут.

Offline

#13 2012-10-28 21:31:07

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

я ясно написал что это опционально

Отнюдь! Ясно, что не опционально:

AMDmi3 wrote:

я предлагаю начать приводить станции к следующей схеме:
...
  - точку станции (railway=station) убирать с путей

Ясно написано, что предлагается: раз увидел на путях, то убери!
Разборки на "простой" или "сложный" случаи не играют роли. Предлагается убирать то, что веками расставлялось с неким смыслом.

Last edited by wowik (2012-10-28 21:34:21)

Online

#14 2012-10-28 21:35:14

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

, и приведение к одной из них ничего не может сломать

Может. Это сломает одну из них, причем без всякой надобности.

Online

#15 2012-10-28 21:42:55

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

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

Всё наоборот!
Именно призывает. Дает рецепт что делать.

For simple modeling of simple stations with a single track (or one in each direction) just add a node with railway=station and name=* at an appropriate point on the railway (tagged railway=rail, railway=subway etc).

А вот для "сложного случая" как раз скорее "считает допустимым", чем предписывает.

For complex or larger stations it is often best to create a node within the main concourse area

"часто лучше создать" — мягкая рекомендация

Online

#16 2012-10-28 21:47:37

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Подготовка базы для ж/д роутинга

wowik wrote:
AMDmi3 wrote:

, и приведение к одной из них ничего не может сломать

Может. Это сломает одну из них, причем без всякой надобности.

У меня один вопрос - много ли на самом деле точек станций, принадлежащих путям, и тех, которые им не принадлежат. А то вот беглый осмотр в нескольких случайных местах показал что это более чем непостоянная практика, даже в основательно отрисованных областях.


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

Offline

#17 2012-10-28 21:48:27

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

wowik wrote:

Отнюдь! Ясно, что не опционально

Читай первый пост до конца.

wowik wrote:

Может. Это сломает одну из них, причем без всякой надобности.

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

Offline

#18 2012-10-28 21:50:45

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

OverQuantum wrote:

Привёл Спирово к схеме, включая релейшн. Пойдёт?

С точки зрения роутинга - вполне. Про отношение я не в курсе.

Offline

#19 2012-10-29 04:00:41

Surly
Member
From: Екатеринбург
Registered: 2009-09-17
Posts: 806

Re: Подготовка базы для ж/д роутинга

wowik wrote:

Именно призывает. Дает рецепт что делать.

For simple modeling of simple stations with a single track (or one in each direction) just add a node with railway=station and name=* at an appropriate point on the railway (tagged railway=rail, railway=subway etc).

Возражу.
"For simple modeling of simple stations" -- для простого моделирования простых станций. Но где здесь настоятельная рекомендация для простых станций применять обязательно простое моделирование? Я полагаю, здесь выбор способа картографирования -- за самим картографом, и ничто не запрещает ему картографировать простые станции не самым простым способом.
Эту фразу в вики следует понимать так: "если для простых станций применено простое моделирование ..." и далее по тексту.

Offline

#20 2012-10-29 06:58:38

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

AMDmi3 wrote:

Нельзя сломать то, что не работает.

Как это не работает? Ни мапник, ни навигаторы не рисуют?:o

Last edited by wowik (2012-10-29 07:21:03)

Online

#21 2012-10-29 07:31:46

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

Побудительное наклонение — приказ, просьба, запрещение, рекомендация, совет и т.д...

For simple modeling of simple stations with a single track ... just add a node with railway=station and name=* at an appropriate point on the railway

Для простого моделирования ... просто добавьте точку на railway...
Это именно призыв, рекомендация делать именно так. Я нигде не пишу, что это запрет на обратное.

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

Про сложное моделирование сказано как раз обтекаемо, без призывов: "часто(не редко) бывает лучше точку поместить на ..."
Ну, стало быть, также не редко (часто) так делать нет нужды.

Last edited by wowik (2012-10-29 07:48:51)

Online

#22 2012-10-29 07:53:16

AMDmi3
Member
From: Москва
Registered: 2009-08-12
Posts: 3,315

Re: Подготовка базы для ж/д роутинга

wowik wrote:

Как это не работает? Ни мапник, ни навигаторы не рисуют?:o

А что, если убрать с путей - перестанут рисовать?

Offline

#23 2012-10-29 08:43:14

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 6,865

Re: Подготовка базы для ж/д роутинга

wowik wrote:

Побудительное наклонение — приказ, просьба, запрещение, рекомендация, совет и т.д...

For simple modeling of simple stations with a single track ... just add a node with railway=station and name=* at an appropriate point on the railway

Для простого моделирования ... просто добавьте точку на railway...
Это именно призыв, рекомендация делать именно так. Я нигде не пишу, что это запрет на обратное.

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

Про сложное моделирование сказано как раз обтекаемо, без призывов: "часто(не редко) бывает лучше точку поместить на ..."
Ну, стало быть, также не редко (часто) так делать нет нужды.

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

Offline

#24 2012-10-29 08:49:58

Felis Pimeja
Member
Registered: 2010-10-27
Posts: 1,033

Re: Подготовка базы для ж/д роутинга

AMDmi3, с предложениями, в принципе согласен. Схема получается вполне ясная. Без противоречий с текущей ситуацией.
Если у тебя получится поднять под это дело валидатор ж. д., то сможем всё это хозяйство систематизировать и привести более-менее в порядок. В общем, яростно плюсую это начинание.
wowik, не подменяй суть буквоедством. Какой-то убогий троллинг, ей Богу.

Offline

#25 2012-10-29 10:30:34

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 7,011

Re: Подготовка базы для ж/д роутинга

Felis Pimeja wrote:

wowik, не подменяй суть буквоедством.

Я за то, чтобы смягчить формулировку.
"  - точку станции (railway=station) убирать с путей" - может толковаться слишком привратно и прямо, как запрет оставлять точку на путях, которые туда традиционна ставили, следуя указаниям вики.

Положение точки станции, как я понимаю, на рутинг не повлияет, раз все одно расставлять стоп-позишн. Так чего ж ее трогать? Предлагается некий новый мутноватый "эстетический" критерий - "незаслуженно стоит на одном из путей", "создаётся впечатление что один из путей отличается от других и имеет больший приоритет".
Это так прелестно для базы данных. И никакого буквоедства — всё гламурно и воздушно на чувственном уровне: "создаётся впечатление". smile

Online

Board footer

Powered by FluxBB