You are not logged in.
- Topics: Active | Unanswered
Announcement
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: Рендеринг дорожных знаков?
Я тоже за то, чтобы рисовались знаки!
Понимаю, что это трудно, и не всем нужно (хотя всем нужно разное) но приятнее видеть отдачу от того, что делаешь. Те элементы, которые не рендерятся, рисовать не интересно ![]()
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: Рендеринг дорожных знаков?
Рестрикшен отражает существующие знаки.
Необязательно. Например, на дороге есть разделитель. В каком-то месте в этом разделителе разрыв, возле него знак "движение только прямо", но на карте мы просто не рисуем там место для разворота.
Offline
#8 2009-11-13 20:53:37
- one_half_3544
- Member

- Registered: 2009-02-24
- Posts: 832
Re: Рендеринг дорожных знаков?
one_half_3544 wrote:Рестрикшен отражает существующие знаки.
Необязательно. Например, на дороге есть разделитель. В каком-то месте в этом разделителе разрыв, возле него знак "движение только прямо", но на карте мы просто не рисуем там место для разворота.
Хм. Почему не рисуем? Я лично в таких ситуациях до сих пор рисовал и ставил рестрикшен. Разрыв-то (дорога, проезд) на местности есть - он должен быть нарисован на карте. Откуда вы знаете, может картой будут пользоваться водители дорожной техники (с жёлтыми мигалками которая
), которым, как известно, можно отступать от ряда требований правил дорожного движения.
Offline
#9 2009-11-13 22:38:01
- Mikado
- Member
- Registered: 2009-10-09
- Posts: 84
Re: Рендеринг дорожных знаков?
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: Рендеринг дорожных знаков?
А 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: Рендеринг дорожных знаков?
решаемо прямо в браузере при помощи 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: Рендеринг дорожных знаков?
Вроде нашёл то, что надо: OpenLayers Dynamic POI. Суть вкратце - на готовые тайлы mapnik накладывать маркеры-POI. Остаётся вопрос рендера маркеров под углом (перпендикулярно вею/рубашкой к перекрёстку), но это, кажется, решаемо прямо в браузере при помощи CSS (-moz-transform, DXImageTransform).
Есть у кого-нибудь желание разобраться?
Если есть возможность легко вычислить на сервере необходимый угол поворота - лучше вместо marker-ов использовать vector features, там это легко задать параметрами отображения. Вот пример:
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: Рендеринг дорожных знаков?
Сергей, спасибо за инфу.
Кстати, появились мысли о недостаточности типов рестрикшенов. Всё-таки 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
а multi-from заодно не пригодится? ![]()
1) ... only_way сразу отвязывает суть запрета от его графического представления
в этом и минус -- как программа сообразит, какой знак генерировать? Логическая инверсия запрета в разрешение хотя бы представляется возможной программно, а при упрощении -- что, углы мерять?
"Прямо", "лево" и "право" -- совсем не очевидные вещи на многих развязках с точки зрения алгоритма.
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