OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2010-09-21 17:58:43

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

turn restriction: неудобный стандарт

В продолжение http://forum.openstreetmap.org/viewtopi … 3358#p3358

К сожалению в текущей реализации turn restriction (from_way->via_node->to_way) приходится бить дороги. Назвать это иначе как подгонкой под системы навигации - язык не поворачивается.
Например в формате полиша каждый запрет описывается пятью параметрами: from_way->to_way и from_node->via_node->to_node. При этом дороги бить не надо, это происходит автоматически при компиляции полиша в бинарник (навител, гармин и т.д). По идее было бы достаточно только трех параметров (from_node->via_node->to_node), но в полише ноды имеют NodeID только если они роутинговые, и из одного роутингового нода до другого может быть несколько альтернативных веев.
Но в ОСМ _каждый_ нод имеет уникальный node_id ! Возникает вопрос - зачем надо было вводить мутную реализацию с веями, если каждый запрет однозначно описывается тремя нодами - via_node (то же что и сейчас), и по одному _ближайшему_ ноду на каждом из веев со стороны нужной для описания запрета, т.е. from_node->via_node->to_node. При этом полилинии разбивать не надо.

Текущая реализация в ОСМ:
restrictionaproved.th.png

Как описать то же самое без дробления вея:
restrictionproposed.th.png

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

Last edited by chnav (2010-09-21 18:03:25)

Offline

#2 2010-09-21 18:03:23

tmprec
Member
From: Санкт-Петербург
Registered: 2009-08-09
Posts: 611

Re: turn restriction: неудобный стандарт

Оба варианты было бы хорошо реализовать.

Last edited by tmprec (2010-09-21 18:03:55)

Offline

#3 2010-09-21 18:03:24

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,446
Website

Re: turn restriction: неудобный стандарт

chnav wrote:

Но в ОСМ _каждый_ нод имеет уникальный node_id ! Возникает вопрос - зачем надо было вводить мутную реализацию с веями, если каждый запрет однозначно описывается тремя нодами - via_node (то же что и сейчас), и по одному _ближайшему_ ноду на каждом из веев со стороны нужной для описания запрета, т.е. from_node->via_node->to_node.

Кто-нибудь станет уточнять дорогу и добавит нод между этими двумя - и?
Формат, бесспорно, не самый удобный, но ничего лучше пока не придумали

Offline

#4 2010-09-21 18:05:44

tmprec
Member
From: Санкт-Петербург
Registered: 2009-08-09
Posts: 611

Re: turn restriction: неудобный стандарт

Кто-нибудь станет уточнять дорогу и добавит нод между этими двумя - и?

id нода, под который распространяется запрет, от этого не изменится.

Offline

#5 2010-09-21 18:07:36

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

При добавлении нодов ближайший нод (из новых добавленных) к node_via должен взять на себя роль from_node или to_node вместо предыдущего. Конечно это должно быть реализовано автоматически в редакторе, даже диалоговое окно юзеру показывать не надо.

Кстати так будет легче соединять веи, имеющие рестрикшины: после объединения запреты поворотов останутся без изменений.

Last edited by chnav (2010-09-21 18:16:24)

Offline

#6 2010-09-21 18:13:59

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

Re: turn restriction: неудобный стандарт

liosha wrote:

Кто-нибудь станет уточнять дорогу и добавит нод между этими двумя - и?
Формат, бесспорно, не самый удобный, но ничего лучше пока не придумали

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

А вообще нынешней системе больше не хватает возможности добавить несколько членов с ролью "to" smile

Offline

#7 2010-09-21 21:46:27

dedNikifor
Member
From: Свердловская обл.
Registered: 2009-09-11
Posts: 3,414

Re: turn restriction: неудобный стандарт

//А вообще нынешней системе больше не хватает возможности добавить несколько членов с ролью "to"

а зачем тебе несколько членов с такой ролью? )


Графическая (в виде карты с точками опасных объектов) база спидкамов для разных навигационных программ. Подложка OSM присутствует

Offline

#8 2010-09-21 21:51:33

osmisto
Member
Registered: 2010-06-16
Posts: 633
Website

Re: turn restriction: неудобный стандарт

А чем плохо дробить? Мы же дробим, например, для maxspeed-а и для кусков с плохим surface. Хотя и то и другое можно было бы описать релейшином с двумя точками (start, end).

Offline

#9 2010-09-21 22:02:49

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

osmisto wrote:

Мы же дробим, например, для maxspeed-а и для кусков с плохим surface. Хотя и то и другое можно было бы описать релейшином с двумя точками (start, end).

Отличная идея, хотя в данном случае для однозначности лучше указать way_id+node_start+node_end, тогда можно создавать скоростные профили с любой детальностью. Дробить же веи для этого похоже на вандализм smile
Сложности с таким дроблением могут привести к тому, что раздробленые улицы мы начнем собирать обратно в рилейшены, например для того чтобы не менять одинаковые атрибуты у десятка веев вместо одного.

Last edited by chnav (2010-09-21 22:05:11)

Offline

#10 2010-09-21 22:11:28

osmisto
Member
Registered: 2010-06-16
Posts: 633
Website

Re: turn restriction: неудобный стандарт

chnav wrote:

Отличная идея, хотя в данном случае для однозначности лучше указать way_id+node_start+node_end, тогда можно создавать скоростные профили с любой детальностью. Дробить же веи для этого похоже на вандализм smile

А как же перемещение точки? А если вей между точками все же разобьют, например, мостом. (сам себе противоречу: сначала сказал что можно через start/end, а теперь показываю что нельзя ... плохо поступил, знаю smile

Offline

#11 2010-09-21 22:11:31

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,321
Website

Re: turn restriction: неудобный стандарт

Простите, а кому плохо от того, что вей раздроблен?


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#12 2010-09-21 22:22:56

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

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

Last edited by chnav (2010-09-21 22:25:08)

Offline

#13 2010-10-07 08:44:29

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

Господа, требуется ваша помощь.
Как инициировать обсуждение варианта с тремя точками, описанного в первом посте ?
Я дробить дороги не хочу, рилейшены создаю (пока без загрузки на сервер), но толку от них мало, если они не будут использоваться в конечном формате для навигации. Еще меньше шансов выжить без поддержки такого типа в JOSM, а это уже требует внимания зарубежных коллег.
Куда следует постить свои предложения - в Relation:restriction/Proposals или Relation:restriction/Talk, или вообще связываться с авторами JOSM ? Каковы шансы что на эти страницы вообще кто-то зайдет ?
Спасибо!

Offline

#14 2010-10-07 08:47:07

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,690
Website

Re: turn restriction: неудобный стандарт

Создаёшь пропозал в Proposed_Features/

Offline

#15 2010-10-07 09:18:04

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

Можно ли править Proposed Features по результатам обсуждения (что-то добавить, убавить, переименовать) ? Сомневаюсь что могу всё описать правильно с первого раза smile

Offline

#16 2010-10-07 09:45:41

Alexandr Zeinalov
Member
From: New-Peredelkino, Moscow, RU
Registered: 2009-08-26
Posts: 1,690
Website

Re: turn restriction: неудобный стандарт

http://wiki.openstreetmap.org/wiki/Proposed_features тут написано как всё делать. Пока пишешь draft - меняй как хочешь.

Offline

#17 2010-10-07 13:21:02

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

Re: turn restriction: неудобный стандарт

Alexandr Zeinalov wrote:

Пока пишешь draft - меняй как хочешь.

Когда после draft начнется стадия RFC — тоже можно менять (верно?).

Offline

#18 2010-10-07 13:52:42

VikDD
Member
From: RU, Moscow-Yaroslavl
Registered: 2010-04-21
Posts: 1,867

Re: turn restriction: неудобный стандарт

Рисую то, почему точка->точка->точка "не катят". Хотя об это уже ранее писалось...
47bfdbcbe4fdt.jpg
Проблем именно в том, что кто-то вставит точку "между" start и via

Last edited by VikDD (2010-10-07 13:53:18)

Offline

#19 2010-10-07 14:13:15

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

Это понятно, JOSM надо править, чтобы рестрикшен изменялся автоматом. Зато минимум конфликтов при объединении веев.

Offline

#20 2010-10-07 14:17:27

VikDD
Member
From: RU, Moscow-Yaroslavl
Registered: 2010-04-21
Posts: 1,867

Re: turn restriction: неудобный стандарт

Честно признаюсь, из 2-х редакторов, которыми пользуюсь ни один не называется JOSM big_smile
Первоочередным должен быть potlatch, через него все начинают. Надо решить проблему в принципе, а не писать надстройки под конкретный редактор... текущая система наиболее понятна. Единственное что, нужно что бы в роли via мог выступать way или node->way->node.

Offline

#21 2010-10-07 14:29:35

siberiano
Moderator
From: Novosibirsk
Registered: 2010-02-25
Posts: 1,003
Website

Re: turn restriction: неудобный стандарт

А почему бы не переделать роли: вместо from и to сделать from_forward, to_forward и from_backward, to_backward, чтобы было понятно откуда в каком направлении. Если в обоих направлениях запрещён левый поворот, просто 2 релейшена с теми же самыми путями.

Offline

#22 2010-10-07 14:33:33

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,321
Website

Re: turn restriction: неудобный стандарт

А почему бы не провести по трём точкам вей, в котором написать restriction=yes? И запрет опишете, и релейшены не нужны.

PS: неудобство текущей схемы так и не было нормально обосновано.


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#23 2010-10-07 14:37:55

siberiano
Moderator
From: Novosibirsk
Registered: 2010-02-25
Posts: 1,003
Website

Re: turn restriction: неудобный стандарт

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

Кстати, у меня в josm плагин этот не работает, приходится всё делать вручную - создавать отношение, добавлять объекты, роли писать.

Offline

#24 2010-10-07 14:38:03

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,950

Re: turn restriction: неудобный стандарт

Я о том и говорю, что надо решать в принципе. Есть же Relation:destination sign, практически один-в-один то что я предлагаю.
Ну давайте назовем его не Turn Restriction, а, например, road_sign.
Дробить междугородные трассы ради примыкающей грунтовки с запретом "налево" - я не понимаю... Или десяток сегментов одной улицы с дублирующимися тегами только ради запретов поворота...

Komяpa wrote:

А почему бы не провести по трём точкам вей, в котором написать restriction=yes? И запрет опишете, и релейшены не нужны.

Тоже вариант. Только подправить валидаторы чтобы они не ругались на overlapping ways.

Last edited by chnav (2010-10-07 14:41:29)

Offline

#25 2010-10-07 14:46:11

Eugene120
Member
From: Moscow
Registered: 2008-11-27
Posts: 322

Re: turn restriction: неудобный стандарт

Откуда такая боязнь дробить?

Offline

Board footer

Powered by FluxBB