Мультиполигоносрач

Я ещё недоделал как хотел и пока бросил, ссылку положу позже.

Задача: территория на которой расположено чуть более 40 зданий. 2 участка - промзона, 2 участка - больницы и 1 участок поликлиника. Участки огорожены или заборами или стенами зданий. Все объекты именованы. Территория предприятия или больницы легко строится - обводишь внешние контуры участка. Но это некошерно делать веем так как границы довольно протяжённые и дублируются (граница между предприятием и больницей состоит из многих сегментов). Но если рисовать мультиполигон, т.е. выделить все элементы внешнего контура то приходится разбивать контуры зданий, выходящих на границу участка. В силу специфики участка, большая часть зданий как раз и формируют границу участков. В результате чего здания превращаются из веев в мультиполигоны. Соответственно 35 зданий пришлось порезать на мультиполигоны так как какая-то их часть формировало границу участка.

Какая отсюда мораль? Если стараться использовать мультиполигоны как средство более удобного средства построения границ (в данном случае разные объекты землепользования) то порой это приводит к резкому и необоснованному росту числа мультиполигонов на участке. Это не первый такой случай у меня в промзоне, хотя обычно число принудительно порезанных зданий редко превышало десяток.

P.S. Менее трагичный вариант - http://www.openstreetmap.org/browse/relation/1816344
Ради территории БЦ пришлось порезать на мультиполигоны 5 зданий. А теперь представьте себе более крупный и сложный участок.

Теперь понял. Сталкивался с этим. Вот - та же фигня. Приходится выбирать, что удобнее.

Ага, тоже с такой штукой столкнулся, +еще забор по границе промзоны. В одном месте порезал на мультиполигоны в другом замапил с накладывающимися линиями.

Есть мультиполигон. Куда вешать теги? На все (один) outer или на само отношение? Или и на outer-ы и на отношение?

То что относится к области (лес, residential, place) вешаем только на сам мультиполигон, а если что-то про линию (забор или речка как граница), то на неё.

С границы всякие natural=wood и landuse=* удалять всегда, даже если чужое :slight_smile:

Кстати, быстро выбрать мультиполигон по точке/линии можно по Shift-/ (Utilsplugin2).

А если это здание - бублик с дыркой? Вот реальный пример.

Я наприсовал здание и поставил адрес на мультиполигон. Пришёл пользователь Потлача, выбрал дом и увидел что адрес не задан.

Вот что видит пользователь Потлача в этом мультиполигоне. Адреса естественно у дома нет :slight_smile:

Sample

и поставил на outer адрес.

Вопрос - рассудите, кто прав - я, поставивший адрес на мультиполигон или пользователь поставивший адрес на внешний контур?

Не обязательно же все полигоны, по границе которых проходит мультиполигон, резать. Участник мультиполигона может и поверх существующих точек проходить, тогда простые полигоны типа квадратных домов резать не надо ваще.

И JOSM выдаст кучу warnings по этому поводу :wink: Короче, попробуйте сами порисовать и поймёте что нифига не удобно :slight_smile: Я недавно делал такой мультиполигон, так была проблема выбрать все куски мультиполигона чтобы вызвать меню “Создать мультиполигон”. Все кусочки выделяешь по Shift - left mouse click и … почему-то схватывались не куски а выделялись именно дома (по точкам шли как котуры зданий так и куски предполагаемого мультиполигона). Кончилось тем что порезал вообще всё на мелкие куски и всё влёт прошло.

Если хочется совместимости с программами, плохо понимающиее мультиполигоны (кроме портача ещё nominatim не будет воспринимать адреса домов на отношениях) - то надо ставить на outer (если он один). Если же outer-ов несколько или же совместимость со старыми программами не сильно волнует, то теги области ставить на само отношение. Линейные теги (типа заборов) к мультиполигонам не применимы и должны оставаться на самих линиях в любом случае.

Насчёт лоскутного одеяла: я бы предложил интерфейс редактирования сделать как MS Paint: полигоном мы заливаем (или заливаем стирательную резинку, то есть делаем inner) отдельные участки между линиями. А линии сами режутся как надо.

Плагин relation toolbox конечно штука хорошая, но ею полигоны можно только создавать. Править - геморойно.

Резать линии автоматом как надо слишком опасно - есть же история, теги и куча других проблем.

Reltoolboxom добавлять-удалять линии довольно удобно, особенно дырки вырезатью. Выделять замкнутый контур для создания мультиполигона можно по Shift-/ (если выделена одна из линий границы). Выделение мультиполигона по тыку внутрь пока никто не сделал - надо дописывать, это не трудно (хотя времени требует).

^^ Теги пусть остаются. История - как получится.

Я не понял, как можно добавить линию в уже построенное отношение в RT?

Выделяем лес - щелкаем в Reltoolbox по существующему отношению или создаём его через Multi(лес жирный, желтый) - рисуем поляну - жмем “+” в reltoolbox. Он сам определяет, что это inner. Лес как отношение по прежнему активен, можно добавлять ещё. Если выбрать линию, уже входящую в отношение, вместо кнопки “+” будет “-”.

А если у меня есть один полигон и я хочу взять линию из него и добавить в другой, как выделить линию с делать активным нужный полигон?

Если я правильно понял, полигон делается активным тыком по нему в списке reltoolbox (он там есть, если выделена хоть одна его линия).

А дальше выбираем любую линию на карте как обычно (на желто-розовые цвета внимания не обращаем) и суем её в активный полигон с помощью “+”. Из старого она, правда, при этом не удалится.

Ок, спасибо!

вот тут пишите inner outer… на плоскости то понятно, а на сфере, в чем разница между inner и outer?

картинка для размышления :slight_smile:

inner меньше по площади. :3

Hind, ТОЧНо!!! :slight_smile: Матрёшка всем в помощь :wink:

А про идеальный экваториальный полигон из одного сегмента и ноды ещё Komzpa писал :3