Я ещё недоделал как хотел и пока бросил, ссылку положу позже.
Задача: территория на которой расположено чуть более 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 (он там есть, если выделена хоть одна его линия).
А дальше выбираем любую линию на карте как обычно (на желто-розовые цвета внимания не обращаем) и суем её в активный полигон с помощью “+”. Из старого она, правда, при этом не удалится.