Страница 1 из 1

Соединение полигонов в один. Помогите решить задачу.

Добавлено: 08 авг 2011, 09:07
pepypopo1
Имеется огромный массив полигонов. Необходимо соединить в один полигон, те из них которые пересекаются между собой или накладываются один на другой.

При этом нужно, чтобы это была не ручная работа (полигонов очень много), т.е. функция "merge" и ручное объединение не подходит.

Рисунок для наглядности: надо чтобы полигоны одного цвета стали одним полигоном.
Изображение

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

Подсказали, что такую задачу можно решить SQL запросом, так ли это? Сам SQL не учил.

Спасибо за помощь.

Re: Соединение полигонов в один. Помогите решить задачу.

Добавлено: 08 авг 2011, 09:46
nadiopt
если цвет как-то отражается в таблице атрибутов, то выбираем сначала все одного цвета, а потом в этой выборке все пересекающиеся, потом мердж, а потом при необходимости мультипарт ту синглпарт, чтобы был не один большой полигон, а много отдельных. Сохраните резервную копию

Re: Соединение полигонов в один. Помогите решить задачу.

Добавлено: 08 авг 2011, 09:49
Dorofeev
Dissolve из ArcToolBox

Re: Соединение полигонов в один. Помогите решить задачу.

Добавлено: 08 авг 2011, 10:00
nadiopt
ой ну да. так проще

Re: Соединение полигонов в один. Помогите решить задачу.

Добавлено: 08 авг 2011, 12:06
pepypopo1
Спасибо, к сожалению после использования функции "multipart to singlepart" "Dissolve" не соединяет такие объекты как два зелёных полигона на картинке (точка их соприкосновения углами таковой не считается).

Решил эту проблему увеличив "Buffer'ом" все полигоны на 0,001 метр, в результате объекты соединились.

Ещё раз спасибо за помощь.