You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2009-11-13 15:05:26

Mikado
Member
Registered: 2009-10-09
Posts: 84

Рендеринг дорожных знаков?

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

Offline

#2 2009-11-13 16:52:19

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: Рендеринг дорожных знаков?

Лол. Рестрикшены применяются для роутинга - прокладки маршрутов навигаторами и другими полезными штуками.

Offline

#3 2009-11-13 16:59:53

one_half_3544
Member
Registered: 2009-02-24
Posts: 832

Re: Рендеринг дорожных знаков?

В чём тут лол-то? Рестрикшен отражает существующие знаки. Наличие рендерера, который бы рисовал знаки по рестрикшенам, не помешало бы (Hint: пользоваться данными из OSM могут не только обладатели навигаторов и других полезных штук).

Offline

#4 2009-11-13 17:08:10

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

Re: Рендеринг дорожных знаков?

Я тоже за то, чтобы рисовались знаки! smile Понимаю, что это трудно, и не всем нужно (хотя всем нужно разное) но приятнее видеть отдачу от того, что делаешь. Те элементы, которые не рендерятся, рисовать не интересно smile

Offline

#5 2009-11-13 17:57:19

Mikado
Member
Registered: 2009-10-09
Posts: 84

Re: Рендеринг дорожных знаков?

Рад, что меня поняли.

Интересно, откуда картинки из статьи в вики? Эта функция когда-то была, но теперь убрана?

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

Offline

#6 2009-11-13 18:01:40

vvoovv
Moderator
Registered: 2008-03-04
Posts: 2,262

Re: Рендеринг дорожных знаков?

Mikado,
в редакторе Merkaator можно настроить очень красивые стили по своему усмотрению

Offline

#7 2009-11-13 19:08:33

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

Re: Рендеринг дорожных знаков?

one_half_3544 wrote:

Рестрикшен отражает существующие знаки.

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

Offline

#8 2009-11-13 20:53:37

one_half_3544
Member
Registered: 2009-02-24
Posts: 832

Re: Рендеринг дорожных знаков?

Alexandr Zeinalov wrote:
one_half_3544 wrote:

Рестрикшен отражает существующие знаки.

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

Хм. Почему не рисуем? Я лично в таких ситуациях до сих пор рисовал и ставил рестрикшен. Разрыв-то (дорога, проезд) на местности есть - он должен быть нарисован на карте. Откуда вы знаете, может картой будут пользоваться водители дорожной техники (с жёлтыми мигалками которая smile), которым, как известно, можно отступать от ряда требований правил дорожного движения.

Offline

#9 2009-11-13 22:38:01

Mikado
Member
Registered: 2009-10-09
Posts: 84

Re: Рендеринг дорожных знаков?

vvoovv wrote:

Mikado,
в редакторе Merkaator можно настроить очень красивые стили по своему усмотрению

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

Offline

#10 2009-11-14 18:44:48

coolkaas
Member
From: RU, Penza
Registered: 2009-05-28
Posts: 2,391

Re: Рендеринг дорожных знаков?

да и josm рисует отношения запретов. (точнее, отношения разрешений))), не только Меркаатор.

Mikado, это должен быть какой-то энтузиаст с рендерером -- те же CloudMade, или CycleMap -- активисты рисования с мощностями. Да и рисовать их придётся наверно на уровне 18, не меньше.

Offline

#11 2009-11-14 20:22:53

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,817

Re: Рендеринг дорожных знаков?

Кстати, насчёт ограничений - в wiki написано, что для знаков 3.2-3.8 нужно использовать =no. Но по нашим ПДД вроде как больше подходит =destination.

Offline

#12 2009-11-15 15:04:34

woidrick
Member
Registered: 2009-10-03
Posts: 27

Re: Рендеринг дорожных знаков?

Кстати, частенько на трёхсторонних перекрёстках, вместо only_right_turn ставят no_left_turn, понятно, при отсутствии червёртого луча "прямо" роутинг туда не возможен, и навигационные программы всё правильно делают, но в жосме бредово смотрится иконка на таких перекрёстках "прямо и направо" при отсутствии направления "прямо".

Стоит ли переправлять такое?

Offline

#13 2009-11-15 15:22:43

Yuri Nazarov
Member
Registered: 2008-04-12
Posts: 237

Re: Рендеринг дорожных знаков?

А no_left_turn запрещает разворот?!? Ой-ой-ой.

Offline

#14 2009-11-15 15:46:51

GranD
Member
From: St. Petersburg
Registered: 2009-09-03
Posts: 187

Re: Рендеринг дорожных знаков?

Yuri Nazarov wrote:

А no_left_turn запрещает разворот?!? Ой-ой-ой.

Ну у нас в России не запрещает. А какой роутинг запрещает?


Я тоже считаю, что нужно перебираться на вики.

Offline

#15 2009-11-15 22:32:12

Mikado
Member
Registered: 2009-10-09
Posts: 84

Re: Рендеринг дорожных знаков?

Вроде нашёл то, что надо: OpenLayers Dynamic POI. Суть вкратце - на готовые тайлы mapnik накладывать маркеры-POI. Остаётся вопрос рендера маркеров под углом (перпендикулярно вею/рубашкой к перекрёстку), но это, кажется, решаемо прямо в браузере при помощи CSS (-moz-transform, DXImageTransform).

Есть у кого-нибудь желание разобраться?

Offline

#16 2009-11-15 22:50:41

Kotelnikov
Member
From: Krasnodar, RU
Registered: 2009-05-07
Posts: 2,854
Website

Re: Рендеринг дорожных знаков?

Mikado wrote:

решаемо прямо в браузере при помощи CSS (-moz-transform, DXImageTransform).

В Фаерфоксе. А как же остальные браузеры? Для кроссбраузерности все же прийдется JS пользовать.


1 000 000 points: 80% complete

Offline

#17 2009-11-16 00:33:20

Mikado
Member
Registered: 2009-10-09
Posts: 84

Re: Рендеринг дорожных знаков?

До кроссбраузерности не хватает только оперы, все остальные поддерживают transform в какой-либо форме. Но это неважно пока.

Дёрнул сейчас рестрикшены из родного городка через XAPI:
http://www.informationfreeway.org/api/0.6/relation[type=restriction][bbox=30.56,59.75,30.62,59.73]
Сыплется довольно много мусора - сломанные релейшены с несоединёнными частями, отсутствующими ролями и т.п.

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

Last edited by Mikado (2009-11-16 00:35:22)

Offline

#18 2009-11-16 08:42:35

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,817

Re: Рендеринг дорожных знаков?

Mikado wrote:

Вроде нашёл то, что надо: OpenLayers Dynamic POI. Суть вкратце - на готовые тайлы mapnik накладывать маркеры-POI. Остаётся вопрос рендера маркеров под углом (перпендикулярно вею/рубашкой к перекрёстку), но это, кажется, решаемо прямо в браузере при помощи CSS (-moz-transform, DXImageTransform).

Есть у кого-нибудь желание разобраться?

Если есть возможность легко вычислить на сервере необходимый угол поворота - лучше вместо marker-ов использовать vector features, там это легко задать параметрами отображения. Вот пример:

http://dev.openlayers.org/releases/Open … ation.html

Offline

#19 2009-11-16 18:12:04

Mikado
Member
Registered: 2009-10-09
Posts: 84

Re: Рендеринг дорожных знаков?

Сергей, спасибо за инфу.

Кстати, появились мысли о недостаточности типов рестрикшенов. Всё-таки no_left_turn должен быть отличим от only_straight_or_right, которого как бы нет. Разумеется, если использовать свой визуализатор, то можно игнорировать документацию и создавать любые теги, но по хорошему надо бы это в proposed features.

Offline

#20 2009-11-16 19:53:56

dimuzz
Member
From: Екатеринбург
Registered: 2009-09-10
Posts: 1,843

Re: Рендеринг дорожных знаков?

Mikado wrote:

Сергей, спасибо за инфу.

Кстати, появились мысли о недостаточности типов рестрикшенов. Всё-таки no_left_turn должен быть отличим от only_straight_or_right, которого как бы нет. Разумеется, если использовать свой визуализатор, то можно игнорировать документацию и создавать любые теги, но по хорошему надо бы это в proposed features.

Недостаточно не типов рестрикшенов (их всего два - no_* и only_*), а значков.
Имхо, если бы была возможность указать тип значка (a или b из примеров в вики), это полностью покрыло бы потребности в картографировании.

Offline

#21 2009-11-17 05:47:15

dimuzz
Member
From: Екатеринбург
Registered: 2009-09-10
Posts: 1,843

Re: Рендеринг дорожных знаков?

Кстати, по уму надо бы совсем разделить вид запрета и вид значка - нынешняя система слишком часто вводит в заблуждение.
Я бы предложил следующие поправки в существующий Relation:restriction:
1) уменьшить число видов запрета до двух: restriction=no_way или restriction=only_way (это полностью совместимо с существующей системой, в которой все, что начинается с no_ - запрет, с only_ - предписание, зато сразу отвязывает суть запрета от его графического представления).
2) разрешить несколько членов отношения to в одном отношении (например, разрешены движение только направо и разворот)
3) допускать только один via и только в виде точки (т.е. запрет всегда описывается с точки зрения подъезжающего к перекрестку)
4) добавить описание дорожного знака restriction_sign=(выбирается из списка "старых" запретов, например, no_left_turn), но уже необязательное, знак можно будет отрисовывать по необходимости.

Offline

#22 2009-11-17 10:41:23

coolkaas
Member
From: RU, Penza
Registered: 2009-05-28
Posts: 2,391

Re: Рендеринг дорожных знаков?

2) разрешить несколько членов отношения to в одном отношении

ценная вещь была бы, multi-to smile а multi-from заодно не пригодится? smile

1) ... only_way сразу отвязывает суть запрета от его графического представления

в этом и минус -- как программа сообразит, какой знак генерировать? Логическая инверсия запрета в разрешение хотя бы представляется возможной программно, а при упрощении -- что, углы мерять? smile "Прямо", "лево" и "право" -- совсем не очевидные вещи на многих развязках с точки зрения алгоритма.

4) добавить описание дорожного знака restriction_sign=

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

Offline

#23 2009-11-17 12:01:43

Mikado
Member
Registered: 2009-10-09
Posts: 84

Re: Рендеринг дорожных знаков?

По-моему dimuzz чрезмерно усложняет. Значение тега restriction= должно сооответствовать стоящему знаку, это самый очевидный вариант. Три знака запрета no_* и шесть предписаний only_* полностью покроют нужды и роутинга, и отображения.
А вот насчёт "3) допускать только один via и только в виде точки (т.е. запрет всегда описывается с точки зрения подъезжающего к перекрестку)" - полностью согласен, а то некоторые такого наворотят! Все куски путей и точки в пределах перекрёстка засовывают в "via". Это требование прекрасно согласуется с тем фактом, что знаки 4.1.* действуют только на пересечении проезжих частей - то есть на точке в osm.

Offline

#24 2009-11-17 12:04:01

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

Re: Рендеринг дорожных знаков?

dimuzz как раз упрощает! И с чего это направление должно соответствовать знаку? Есть ещё разметка...

Offline

#25 2009-11-17 13:37:03

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,817

Re: Рендеринг дорожных знаков?

По хорошему - в карте должно быть только указание какие знаки стоят. Один знак - одно значение тега. А правила роутинга уже вычисляться из них.
То, что знаки 3.18.1 и 4.1.5 у нас задаются одним и тем же тегом - это неправильно.
По логике у 3.18.1 должно быть restriction=no_right_turn, а у 4.1.5 - что-то типа restriction=only_left_turn_or_straight_on

Offline

Board footer

Powered by FluxBB