Объединение слоев и полигонов
-
- Активный участник
- Сообщения: 186
- Зарегистрирован: 28 июл 2018, 08:40
- Репутация: 12
- Откуда: Киев
Объединение слоев и полигонов
Здравствуйте!
Мне надобно объединить два слоя, на которых есть по одному полигону и затем соединить эти полигоны в один без внутренних границ.
И второе. Я понял как делать отверстия в полигонах. А как делается границ второго полигона, который находится на другом слое?
Пользую (хотя это громко сказано) QGIS 3.2.3-Bonn
Мне надобно объединить два слоя, на которых есть по одному полигону и затем соединить эти полигоны в один без внутренних границ.
И второе. Я понял как делать отверстия в полигонах. А как делается границ второго полигона, который находится на другом слое?
Пользую (хотя это громко сказано) QGIS 3.2.3-Bonn
- Prince660
- Активный участник
- Сообщения: 164
- Зарегистрирован: 25 мар 2011, 20:12
- Репутация: 15
- Ваше звание: Питоновод
- Откуда: г. Симферорполь
- Контактная информация:
Re: Объединение слоев и полигонов
Ну если два слоя по одному полигону, то открыть оба слоя для редактирования и скопировать полигон из одного слоя в другой. А потом стандартным инструментом объединения объектов, собственно их объеденить. А второе не совсем понял...
-
- Активный участник
- Сообщения: 186
- Зарегистрирован: 28 июл 2018, 08:40
- Репутация: 12
- Откуда: Киев
Re: Объединение слоев и полигонов
Постараюсь расписать второй вопрос.
Я создаю карту водной растительности.
Первый слой - зеркало воды; второй - прибрежно-водная (тростник, рогоз и т.п); третий - растения с плавающими листьями (рдесты). И в нем формируются участки других растений, которые я определяю на следующий слой. И возник вопрос как с минимальными усилиями повторить контур отверстия в полигоне одного слоя на втором?
Я создаю карту водной растительности.
Первый слой - зеркало воды; второй - прибрежно-водная (тростник, рогоз и т.п); третий - растения с плавающими листьями (рдесты). И в нем формируются участки других растений, которые я определяю на следующий слой. И возник вопрос как с минимальными усилиями повторить контур отверстия в полигоне одного слоя на втором?
-
- Участник
- Сообщения: 67
- Зарегистрирован: 13 мар 2018, 08:59
- Репутация: 22
- Откуда: MO
Re: Объединение слоев и полигонов
Если совсем с минимальными, я бы:_taras_ писал(а): ↑28 сен 2018, 10:21как с минимальными усилиями повторить контур отверстия в полигоне одного слоя на втором?
- создал новый слой (Back),
- на нем объект охватывающий содержимое
- Меню-вектор-геообработка-РАЗНОСТЬ (там в параметрах выбрать свои 2 слоя)
- в Полученном слое разности удалить внешнюю часть
наименования команд могут отличаться, т.к. у меня qgis218
- Вложения
-
- 333.png (28.86 КБ) 20338 просмотров
-
- 222.png (20.39 КБ) 20338 просмотров
-
- 111.png (34.48 КБ) 20338 просмотров
-
- Участник
- Сообщения: 51
- Зарегистрирован: 14 май 2018, 14:21
- Репутация: 2
- Откуда: Россия
Re: Объединение слоев и полигонов
Коллеги, помогите. Есть несколько смежных районов области. Например объединяю через
Вектор - Управление данными - Объединить векторные слои
Выбираю несколько смежных - всё хорошо, объединяет. Но теперь надо убрать линии между районами. Вызываю
Вектор - Геообработка - Dissolve
где то хорошо обрабатывает, граница между районами стирается, а какие то районы ни в какую не хочет.
Подскажите, как в смежных районах стереть общую линию?
По большому счёту - цель - вытащить общую внешнюю границу всех районов.
Вектор - Управление данными - Объединить векторные слои
Выбираю несколько смежных - всё хорошо, объединяет. Но теперь надо убрать линии между районами. Вызываю
Вектор - Геообработка - Dissolve
где то хорошо обрабатывает, граница между районами стирается, а какие то районы ни в какую не хочет.
Подскажите, как в смежных районах стереть общую линию?
По большому счёту - цель - вытащить общую внешнюю границу всех районов.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Участник
- Сообщения: 67
- Зарегистрирован: 13 мар 2018, 08:59
- Репутация: 22
- Откуда: MO
Re: Объединение слоев и полигонов
ST_Union скорее всего оставит линии
Чтобы линия ушла что-то вроде: (буфер + 0.1) - 0.1
Чтобы линия ушла что-то вроде: (буфер + 0.1) - 0.1
-
- Участник
- Сообщения: 51
- Зарегистрирован: 14 май 2018, 14:21
- Репутация: 2
- Откуда: Россия
Re: Объединение слоев и полигонов
Ребят, отлично, в SQL как говорится "въехал", а где SQL консоль в QGIS или это для PostGIS? Установить её под эти цели? И у меня слои подгружены из обычных MAP файлов от ПО MapInfo. Серверов БД на машине никаких нет. Наверное надо перегнать MAP в любую БД? И манипулировать там в любой клиентской SQL консоли?
-
- Участник
- Сообщения: 67
- Зарегистрирован: 13 мар 2018, 08:59
- Репутация: 22
- Откуда: MO
Re: Объединение слоев и полигонов
Все можно сделать проще
Создаешь виртуальный слой и вперед.
Имена слоев = имена таблиц
Создаешь виртуальный слой и вперед.
Имена слоев = имена таблиц
-
- Участник
- Сообщения: 51
- Зарегистрирован: 14 май 2018, 14:21
- Репутация: 2
- Откуда: Россия
Re: Объединение слоев и полигонов
Эх, наверное мне не разобраться будет ((
Создал виртуальный на основе одного слоя. Ок.
Создал виртуальный на основе двух слоёв. Написал запрос SELECT * FROM 'Район1', 'Район2' . Ошибок нет, слой создался, отобразился правда только Район1. Название колонок не знаю (слои взял из MapInfo, MAP файл).
Но у меня слоёв несколько десятков, которые надо склеить в один и получить внешнюю границу.
Подскажите, как запросец в моем случае оформить?
Создал виртуальный на основе одного слоя. Ок.
Создал виртуальный на основе двух слоёв. Написал запрос SELECT * FROM 'Район1', 'Район2' . Ошибок нет, слой создался, отобразился правда только Район1. Название колонок не знаю (слои взял из MapInfo, MAP файл).
Но у меня слоёв несколько десятков, которые надо склеить в один и получить внешнюю границу.
Подскажите, как запросец в моем случае оформить?
-
- Участник
- Сообщения: 67
- Зарегистрирован: 13 мар 2018, 08:59
- Репутация: 22
- Откуда: MO
Re: Объединение слоев и полигонов
Ну тогда и не стоит с сиквелами мучаться.
1. Берете все свои слои, склеиваете(объединяете) их через вектор - геообработка
2. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
!!! Только там галочку поставьте "результат объединения"
3. полученный объект (Буфер) опять прогоняете через (буфер фиксированной ширины) с тем же значением, но отрицательным
Должно все получиться
1. Берете все свои слои, склеиваете(объединяете) их через вектор - геообработка
2. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
!!! Только там галочку поставьте "результат объединения"
3. полученный объект (Буфер) опять прогоняете через (буфер фиксированной ширины) с тем же значением, но отрицательным
Должно все получиться
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Объединение слоев и полигонов
теоретически мы можем потерять мелкие острова и сегменты полилиний(буфер + 0.1) - 0.1
-
- Участник
- Сообщения: 67
- Зарегистрирован: 13 мар 2018, 08:59
- Репутация: 22
- Откуда: MO
-
- Участник
- Сообщения: 67
- Зарегистрирован: 13 мар 2018, 08:59
- Репутация: 22
- Откуда: MO
Re: Объединение слоев и полигонов
Сразу не заметил
или можно в консоли пайтона так сделать:
должно сделать виртуальный объединенный слой для выделенных в дереве слоев
ну а потом буфером его )
Да не наклеишься, если только плагином каким...Yuraz писал(а): ↑05 фев 2019, 09:32Но у меня слоёв несколько десятков
или можно в консоли пайтона так сделать:
Код: Выделить всё
sql = ''
tpl = u' select geometry from "%s" \n'
for layer in iface.legendInterface().selectedLayers():
if sql != '':
sql = sql + u' union all \n'
sql = sql + tpl % (layer.name())
layer = QgsVectorLayer("?query="+sql, 'virtual', "virtual")
QgsMapLayerRegistry.instance().addMapLayer(layer, True)
ну а потом буфером его )
-
- Участник
- Сообщения: 51
- Зарегистрирован: 14 май 2018, 14:21
- Репутация: 2
- Откуда: Россия
Re: Объединение слоев и полигонов
Объединил благополучно через MMQGIS, теперь один полигон, но районы присутствуют. Осталось стереть границу между ними.
Дмитрий, а где буфер задать. Галочка есть, а значения где задать ...0,1..?Dmitry Stasev писал(а): ↑05 фев 2019, 11:072. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 31 гость