Некоторые полигоны кладутся прямо на водные объекты. Из-за чего при создании правил для сборки возникают проблемы.
Приведу примеры:
place=town поверх waterway=riverbank
leisure=park поверх natural=water
landuse=residential поверх natural=water
В результате возникает бардак при определении порядка отрисовки.
Мне кажется это некорректно, особенно в случае landuse (землепользование). Нужно ли это исправлять?
то есть мы сначала выводим natural=water (озеро), потом place=island (остров), на нем leisure=park (парк), и что делать с natural=water в этом парке? как-то нелогично, не находите?
Это не исключение. В первую очередь и надо применять точные определения и соответствия реальным объектам и здравый смысл. А полениться можно в качестве исключения только в самых очевидных и абсолютно однозначных случаях таких наложений.
Вырезать или нет - зависит от типа объекта. Есть простой тест: тыкнуть в интересующее место и спросить - принадлежит ли эта точка соответствующим объектам. Примеры:
Пруд посреди газона: очевидно что точка внутри пруда не принадлежит газону - значит надо вырезать.
Пруд посреди парка: скорей всего точка внутри пруда принадлежит парку (могут быть исключения для больших прудов/озёр) - вырезать не нужно.
Пруд посреди парка внутри города: точка внутри пруда принадлежит городу - вырезать не нужно.
ну и так далее по аналогии. А то есть любители, начинают даже дома из landuse=residential вырезать, что есть очевидная ересь.
Наше дело - корректно обозначить объекты, а как это потом будут отображать рендереры - это уже их забота.
А в чём проблема? Всего лишь надо озаботиться корректным выбором приоритетов, что поверх чего рисовать. Более того - в зависимости от предназначения карты эти приоритеты вполне могут быть разными. layer нужен только для указания приоритета среди одинаковых объектов (типа какая дорога идёт поверх другой дороги).
А насчёт вашего примера, так это общая проблема 2D рендереров, на которых пытаются нарисовать абстракции 3D мира. Нормально она решается только учётом 3-го измерения.
layers предназначен для “describe the relative vertical position of…” “…and sometimes other features”. Помимо дорог и рек это могут быть, например, парковка под торговым центром или на крыше здания стоящего на склоне, и другие объекты чьё наложение можно трактовать по-разному.
Случай с домами на скале над морем тоже непростой. Если не нарисовать natural=cliff ,то даже человеку будет непонятно, может это плавающие дома как в Голандии.
Я ещё не видел рендера который отображал бы мою точку зрения:
Снизу-вверх:
natural
landuse (полу-прозрачно на natural’e)
leisure
и т.д. (water, hw, build)
Давайте обратимся к первоисточникам и разберем по порядку.
Обратите внимание на участков земли, не територии, а именно участки земли. Водный объект - это не участок земли. И по моему мнению он должен быть исключен из landuse.
place и leisure оставим, там определение разрешает включать в себя все.
далее вот такой пример: озерцо, вокруг него кустарник. Человек выделяет весь квадрат (вместе с озерцом) и ставит на него natural=scrub. Либо та же история с домом (building=residential), вокруг которого газон (landuse=grass). Это нормально?
ИМХО, в данном случае “земля” употребляется в общем смысле, т.е. включая болота, озёра, реки и т.п.
Пруд не нужно исключать из landuse=residental, если он целиком внутри микрорайона.