Увы, это жизнь. Одни соглашаются, другие возражают, а третьи пытаются заставить хоть как-то работать то, что получается в результате.
Проще, да. Когда за вас решают что хорошо, а что плохо - оно всегда проще. Но в OSM такое не прокатит. Все соглашения сугубо рекомендательные. Такова плата за гибкость. Хотите идти в ногу с другими - хорошо. Не хотите - можете не идти. Но если хотите, чтобы ваши данные имели какой-то смысл для других, нужно всё-таки с ними договариваться.
Нельзя договориться что рисовать мультиполигонами а что нет. Это как договориться что дома всегда рисуем квадратами. И если гдето у вас будет с геометрией ошибка - ну луна на землю действительно не упадет - поправим (кстати не факт что поправят верно ).
Кстати мультиполигон с двумя замкнутыми соприкасающимися аутерами, имхо, ни чуть не более верен чем два обычных полигона с границей по общим точкам.
Недавно я подсел на мультиполигоны. Это позволяет отказаться от дублирования линий когда несколько объектов имеют общую границу.
Однако результаты практического применения оказались пугающими … Когда я захотел нарисовать мультиполигоны показывающих границу между 4 объектами то пришлось создать дополнительно 35 мультиполигонов! То есть граница между объектами проходила через здания, площадки и т.п. которые пришлось разрезать. При это большинство из 35 новых мультполигонов - простые прямоугольники!
Я даже не стал заливать это чудо в базу. Теперь я снова отказался от идеи мультиполигонов и использую их только там где других вариантов не в принципе а именно площадные объекты с дырками или границы состоящие из сотен точек … Иначе бред получается.
Я ещё недоделал как хотел и пока бросил, ссылку положу позже.
Задача: территория на которой расположено чуть более 40 зданий. 2 участка - промзона, 2 участка - больницы и 1 участок поликлиника. Участки огорожены или заборами или стенами зданий. Все объекты именованы. Территория предприятия или больницы легко строится - обводишь внешние контуры участка. Но это некошерно делать веем так как границы довольно протяжённые и дублируются (граница между предприятием и больницей состоит из многих сегментов). Но если рисовать мультиполигон, т.е. выделить все элементы внешнего контура то приходится разбивать контуры зданий, выходящих на границу участка. В силу специфики участка, большая часть зданий как раз и формируют границу участков. В результате чего здания превращаются из веев в мультиполигоны. Соответственно 35 зданий пришлось порезать на мультиполигоны так как какая-то их часть формировало границу участка.
Какая отсюда мораль? Если стараться использовать мультиполигоны как средство более удобного средства построения границ (в данном случае разные объекты землепользования) то порой это приводит к резкому и необоснованному росту числа мультиполигонов на участке. Это не первый такой случай у меня в промзоне, хотя обычно число принудительно порезанных зданий редко превышало десяток.
Ага, тоже с такой штукой столкнулся, +еще забор по границе промзоны. В одном месте порезал на мультиполигоны в другом замапил с накладывающимися линиями.
То что относится к области (лес, residential, place) вешаем только на сам мультиполигон, а если что-то про линию (забор или речка как граница), то на неё.
С границы всякие natural=wood и landuse=* удалять всегда, даже если чужое
Кстати, быстро выбрать мультиполигон по точке/линии можно по Shift-/ (Utilsplugin2).
Не обязательно же все полигоны, по границе которых проходит мультиполигон, резать. Участник мультиполигона может и поверх существующих точек проходить, тогда простые полигоны типа квадратных домов резать не надо ваще.
И JOSM выдаст кучу warnings по этому поводу Короче, попробуйте сами порисовать и поймёте что нифига не удобно Я недавно делал такой мультиполигон, так была проблема выбрать все куски мультиполигона чтобы вызвать меню “Создать мультиполигон”. Все кусочки выделяешь по Shift - left mouse click и … почему-то схватывались не куски а выделялись именно дома (по точкам шли как котуры зданий так и куски предполагаемого мультиполигона). Кончилось тем что порезал вообще всё на мелкие куски и всё влёт прошло.
Если хочется совместимости с программами, плохо понимающиее мультиполигоны (кроме портача ещё nominatim не будет воспринимать адреса домов на отношениях) - то надо ставить на outer (если он один). Если же outer-ов несколько или же совместимость со старыми программами не сильно волнует, то теги области ставить на само отношение. Линейные теги (типа заборов) к мультиполигонам не применимы и должны оставаться на самих линиях в любом случае.
Насчёт лоскутного одеяла: я бы предложил интерфейс редактирования сделать как MS Paint: полигоном мы заливаем (или заливаем стирательную резинку, то есть делаем inner) отдельные участки между линиями. А линии сами режутся как надо.
Плагин relation toolbox конечно штука хорошая, но ею полигоны можно только создавать. Править - геморойно.
Резать линии автоматом как надо слишком опасно - есть же история, теги и куча других проблем.
Reltoolboxom добавлять-удалять линии довольно удобно, особенно дырки вырезатью. Выделять замкнутый контур для создания мультиполигона можно по Shift-/ (если выделена одна из линий границы). Выделение мультиполигона по тыку внутрь пока никто не сделал - надо дописывать, это не трудно (хотя времени требует).
Выделяем лес - щелкаем в Reltoolbox по существующему отношению или создаём его через Multi(лес жирный, желтый) - рисуем поляну - жмем “+” в reltoolbox. Он сам определяет, что это inner. Лес как отношение по прежнему активен, можно добавлять ещё. Если выбрать линию, уже входящую в отношение, вместо кнопки “+” будет “-”.
Если я правильно понял, полигон делается активным тыком по нему в списке reltoolbox (он там есть, если выделена хоть одна его линия).
А дальше выбираем любую линию на карте как обычно (на желто-розовые цвета внимания не обращаем) и суем её в активный полигон с помощью “+”. Из старого она, правда, при этом не удалится.