Здание на площади

Я в очередной раз нарисвал сенную площадь
a mapnik меня расстроил
http://osm.org/go/0zOF7tCR5
тогда как osmarenderer отрисовал правильно
http://osm.org/go/0zOF7tCR@-?layers=0B00FTF
Это моя бага или mapnik-а?

А как на счет сделать мультиполигон?

Ну с точки зрения топологии дом с внутренним двором это мультиполигон
А здания стоят на площади
И если ради каждого ларька ковырять дырку в площади…
Но если коллективное бессознателньое скажет что надо дырявить , будем дырявить

а вот не надо ставить area=yes на хайвеи

Почему? http://wiki.openstreetmap.org/wiki/Pedestrian

бага мапника

п.с.: не надо вырезать дырки в площадях. это неправильно

Пока единственный нормальный путь - делать мультиполигон из полигона площади и здания и уже на него вешать highway+area.
Здесь три таких объекта и каких либо проблем от этого я не заметил.

А еще дом - он явно выше площади, можно layer…

Не, layer низя! Дом же не висит в воздухе на столбах над площадью! Это было бы эквивалентно тому, что под домом можно по площади ходить.

Ошибка мапника, причем известная.
Потому что, как ни не красиво совмещать теги highway с area, однако же такая практика повсеместна и прописана в вики.

Так как площади правильно тэжить?

Видимо вот этот http://trac.openstreetmap.org/ticket/2153
Но судя по активности в нем, ждать когда его пофиксят доолго :slight_smile:

Как указано в вики. А то, что рендер кривоват — ну, исправят когда-нибудь…

Это неверно. Layer говорит только о взаимном положении объектов.

Ерунда, ставить надо. Это совершенно естественное сочетание для площадей и различных площадок.

По теме: дом на площади - building=yes на highway=*+area=yes, без layer и дырок.

Layer действительно говорит о взаимном положении объектов, но layer=0 — это всегда уровень земли (объекта на земле, если угодно). Значит положительные значения всегда будут обозначать надземные объекты, а отрицательные — подземные.

Скорее layer=0 это значение, подразумеваемое при отсутствии layer=*. Т.е. скорее всего можно задать landuse с layer=1, объекты на нем с layer=2, а все без layer будет считаться находящимся под ним.

Вот это в вики

чисто так, для красоты написано?

Оттуда же:

т. е. нельзя.

Это никак не противоречит тому, что я написал.

Не выдергивайте их контекста и прочитайте всю фразу. Там написано, что landuse считается “находящимся под” и не требует layer.

А чуть ниже, кстати, написано что “The layer tag has no meaning for absolute heights”.

Переводить надо правильно, тогда не будет никаких выдернутых контекстов. Написано, что landuse обычно на картах служит цветной подложкой под остальными объектами. По сути пояснение про do not map for the renderer.

Ты, кстати, тоже не выдирай — чуть дальше:

Понятно сказано? Если объект находится на уровне земли, он должен быть с нулевым уровнем.

Do not map for the renderer тут не при чем, хотя бы потому что эти минусы, которые по незнанию ставят на landuse или реки, на рендер не влияют - они все равно будут под домами и дорогами. Поэтому и написано, что layer не требуется.

Опять выдираете. Все предложение целиком:

Объект на земле должен быть с нулевым уровнем только потому что это удобно. Но не обязан. Хотя бы потому, что уровень земли - понятие относительное. Возьмите любую насыпь - где там уровень земли? Поэтому -1/0 или 0/1 на развязке - без разницы. Можно и 2/3 но не нужно только по той причине, что будет лишний тэг и нарушение POLA.