Объединить пересекающиеся полигоны в один и тот же объект


19

Я не профессионал ГИС, поэтому я надеюсь, что я использую правильную формулировку, по крайней мере, я надеюсь, что вы понимаете мой вопрос.

Допустим, в объекте А. есть пять полигонов. В шейп-файле есть больше объектов. В признаке А два многоугольника из пяти существующих пересекаются. Я хочу объединить две, так что перекрывающиеся линии будут удалены, и в результате получится один многоугольник.

Возможное решение будет работать так:

  • Я выбираю функцию, которая «активирует» все пять полигонов
  • Я переключаю в режим редактирования
  • Я выбираю точки двух полигонов
  • Я использую функцию MERGE-SELECTED-POLYGONS

До сих пор я нашел только функции для объединения объектов (функций?), Объединения шейп-файлов и так далее.

Есть ли функция MERGE-SELECTED-POLYGONS?

Ответы:


13

Есть несколько способов сделать это, но вы, вероятно, захотите отключить функции (Vector->Geoprocessing Tools->Dissolve). С распадом вам не нужно ничего выбирать сначала, поскольку все это делается из атрибутов. Итак, допустим, у вас есть поле с именем «Тип» (например). Тогда в вашем примере все ваши полигоны будут иметь тип «A» (и у вас могут быть другие полигоны типа «B», к которым вы не хотите присоединяться с полигонами типа «A»). Если вы выберете поле «Тип» (или другой соответствующий атрибут в вашем случае) в качестве атрибута для растворения, тогда все объекты одного типа будут объединены (внутренние границы будут удалены). Это может привести к мультиполигону (единственному объекту, который имеет более одной части, например архепелаг), что может быть или не быть приемлемым. Если это нежелательно, просто разделите элемент на составляющие его полигоны, используя Vector->Geometry Tools->Multipart to Singlepart.

Альтернатива состоит в том, чтобы буферизовать ваши полигоны нулями, но это, вероятно, объединит полигоны разных типов вместе, где вы не хотите, чтобы это произошло, поэтому растворение (необязательно, следуя за multipart-to-part) является более безопасным.


Спасибо за Ваш ответ. Я думаю, что это не то, что я хочу. Как я понимаю, это объединяет все функции, которые имеют одинаковое значение свойства x, в одну функцию, верно? У меня уже есть одна особенность с несколькими полигонами. Я хочу объединить пересекающиеся многоугольники, чтобы в конце у меня было 4 многоугольника вместо 5.
user19746

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

1
Я только что создал тестовый файл, и он действительно работает с Dissolve, когда пересекающиеся полигоны имеют разные функции. Это не работает, когда полигоны находятся в одной функции. Я не понял этого. Мой настоящий набор данных не работает из-за ошибок геометрии во время обработки, но это совсем другое. Спасибо!
user19746

21

Почему бы тебе не

  1. Выберите два полигона, которые вы хотите пересечь
  2. Разрешить редактирование
  3. Правка-> Объединить выбранные объекты
  4. Сохранить изменения

Это ответ на объединение нескольких полигонов в одном файле в один полигон. Спасибо Сэм
Сантоса Сэнди

1

Длится вечно, но инструмент растворения QGis работает.

Я не уверен, почему это так чертовски долго, но вы можете растворить все в своем слое с помощью опции "--Dissolve all--". Добавление пространственного индекса или чего-то еще может помочь, я не знаю, но эта опция всегда работает внутри qgis

перед:

введите описание изображения здесь

после (через 10 минут на очень быстром Mac):

введите описание изображения здесь

И чтобы ответить на ваш вопрос о желании объединить выбранные функции, да. Сначала выберите ваши функции, затем установите флажок, спрашивая, хотите ли вы использовать только выбранные функции. Это довольно стандартный шаблон функций QGis (также включена некоторая аннотация к опции «--Dissolve all--», которую я и использовал):

введите описание изображения здесь


Не знаю почему, но мой растворение не работает должным образом на QGIS, это не оставляет меня с хорошим и чистым шейп-файлом. Как я могу получить, например, только границы / контур шейп-файла? Меня не интересуют другие внутренние полигоны.
Геосфера

1

Я пытаюсь сделать то же самое, что и вы в QGIS 2.14.1, и у меня тоже возникают проблемы. Нативное «растворение», включенное в QGIS, не сработало для меня. У меня получилось использовать функцию GRASS:

Процесс -> Панель инструментов -> (на боковой панели) GRASS -> v.dissolve -> и следуйте по ...

Надеюсь, это кому-нибудь поможет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.