Правильного отображения в принципе не может быть, если ставится задача отобразить абстрактные сущности, не существующие материально (полигоны landuse в частности).
Я перечитывал. Плавучие здания и дома на скалах нависающих над водой - это экзотика для рф. Я бы ею принебрег. Особенно это экзотикав контексте землепользования. Плавучий ресторан имхо не экстендит границы жилого квартала на территорию реки. Дома на скалах ну разве что Ласточкино гнездо вспоминается, но оно не резиденшиал. Склады и т.п. должны по идее быть поверх manMade=pier так чтоих тоже вырезаем из воды. Территории лесхозов - а в чем проблема, если они обрежуться по воде?
В конце концов - ну берите пересечения. Сможете разделить используемые лесхозом сушу, воду, лес. А там уж решайте как такое смешанное использование изображать. Если вам нужно учитывать водную территорию используемую лесхозом - она у вас есть. Изображать можно и как просто воду и как индастриал. Можно штриховочкой али еще как.
Я как-то уже писал об этом…
В идеале, неплохо бы иметь возможность, в случае фактического расхождения, указывать границы de jure и de facto. Скажем, в случае какого-нибудь заповедника, край леса не равен границе заповедника и не равен забору, который там стоит. Также и со всеми этими “водоохранными зонами”.
Карта изображает и должна изображать фактическое положение предметов на местности, включая противоречащее закону (свалка в заповеднике, забор у водоема и так далее), и если у кого-то есть желание указать что-то “по документам” (и сами документы, чтобы по ним указывать…) - добро пожаловать, выдвигайте proposal о суффиксе :dejure и я одним из первых начну им пользоваться, если наткнусь на такое расхождение в каких-нибудь ООПТ и так далее.
Поясню про пересечения: получаете набор не накладывающихся полигонов. Каждому из них сопоставляете набор меток.
Вода + Город + Жилая застройка - пруд внутри жилого квартала
лес + город - лесок в черте города
лес + жилая застройка + город - лесок в жилом квартале
Получите основу для очень серьезного проекта. С возможностью посчитать площадь городских лесопосадок например.
Пусть не абстрактная. Пусть просто нематериальная, главное, что это не тип ландшафта.
И если мы можем четко разместить wood над grassland, то только потому, что они оба имеют физический прототип.
У landuse физического прототипа нет, во всяком случае, такого, который можно четко локализовать по вертикали (landuse=commercial выше landuse=residential или нет?).
Во многих ГИС есть такое понятие как слои. Правильный landuse (скажет не landuse=grass) это отдельный слой который можно накладывать на карту а можно не накладывать. Но к сожалению как и всё в ОСМ теги landuse оказались хорошо перепутаны с natural.
По моему, “землепользование” вполне отображает суть - “как пользуют”. В противном случае, для фермы по разведению мидий, к примеру, придётся изобретать велосипеды вместо landuse=farmland
Ну тысячи, и что, правила то для них однотипные будут и группировать такие штуки не сложно. Просто вариант что осмеры вдруг будут мапить не как привыкли, а как вам удобнее - утопия.
Если что-то может вынести мозг вашему рендеру, оно обязательно вынесет
По теме - в примерах разные ситуации, по-разному решаемые.
Сортировка по площади, Komяpa все расписал.
Сортировка по площади
Сортировка по площади
layer=-1, это физически разные уровни
layer=-1 и… сортировка по площади
Вообще ситуаций три.
Объекты на разных, явно указанных, уровнях (неважно, физических или условных). Порядок отрисовки - по возрастанию уровня.
Вложенные объекты. Порядок отрисовки - по убыванию площади, т.е в порядке уточнения принадлежности точки объекту.
Пересекающиеся (overlapped), но не вложенные объекты. См. примеры из первого поста:
Порядок отрисовки пересекающихся полигонов в общем случае неразрешим принципиально, поэтому ГИС старательно избегают такой ситуации. Вот, например, описание от kg_vista. Вопрос, кстати, ровно тот же - почему в навигаторе жилой район отрисовывается поверх водоема?
При этом назвать данные в OSM неправильными вроде бы нельзя. Граница промзоны, например, вполне может как включать кусочки леса, так и пересекать их. При этом ландшафт промзоны лес, разумеется, не включает. Отсюда две разные задачи - расчет характеристик (например, площади) полигона промзоны (включая лес) и его отображение (не включая лес).
Имхо, ключевое слово здесь - граница, а выход - не зацикливаться на полигонах. Все, что можно считать границей, можно границей и отрисовывать, хотя бы в пределах пересекающихся частей. Второй вариант рендеринга, как уже говорилось - полупрозрачные полигоны.
Несколько хуже ситуация с домиком на границе воды и суши. Сортировка по площади решит проблему только в случае, когда водоем по площади больше домика. А если это небольшой бассейн, над которым нависает часть домика? Здесь, видимо, остается явно указывать относительный уровень.
К чему я все это? Да к тому, что… если что-то может вынести мозг вашему рендеру, оно обязательно вынесет
пока так и сделал. картинка потрясающая. где только не живут люди.
кто-то живет в больницах (в психиатрических тоже), кто-то на свалках, кто-то прямо в море. стройки, разрушенные здания оказались вполне себе обитаемыми (видимо, тот, кто рисовал, тесно с бомжами общается).
в общем, мой вывод, что люди не вполне понимают ЗАЧЕМ нужен landuse=residential, потому что стандартные рендеры настроены “под дурака”. Что интересно, с другими landuse все в порядке.
P.S. картинки пока не выкладываю, все самое интересное на крупных масштабах, а у меня пока объекты не подписаны, так что все равно не понятно, что и где.
Я еще вот что подумал: если я не прав, то почему в больших городах landuse=residential не накладывают даже на кварталы, тщательно обрисовывая именно постройки? А если город не очень большой (относительно областных центров), то прямо сверху всего херачить можно?
Обрисовываются постройки потому что если запихнуть всё в полигон, то можно и пром зону также, и торговые центры в неё. + города слишком большие, что бы всё помещать в один полигон.