Объединение слоев и полигонов

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Объединение слоев и полигонов

Сообщение _taras_ » 27 сен 2018, 22:08

Здравствуйте!
Мне надобно объединить два слоя, на которых есть по одному полигону и затем соединить эти полигоны в один без внутренних границ.
И второе. Я понял как делать отверстия в полигонах. А как делается границ второго полигона, который находится на другом слое?
Пользую (хотя это громко сказано) QGIS 3.2.3-Bonn

Аватара пользователя
Prince660
Активный участник
Сообщения: 164
Зарегистрирован: 25 мар 2011, 20:12
Репутация: 15
Ваше звание: Питоновод
Откуда: г. Симферорполь
Контактная информация:

Re: Объединение слоев и полигонов

Сообщение Prince660 » 27 сен 2018, 22:15

Ну если два слоя по одному полигону, то открыть оба слоя для редактирования и скопировать полигон из одного слоя в другой. А потом стандартным инструментом объединения объектов, собственно их объеденить. А второе не совсем понял...

_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Re: Объединение слоев и полигонов

Сообщение _taras_ » 28 сен 2018, 10:21

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

Dmitry Stasev
Участник
Сообщения: 67
Зарегистрирован: 13 мар 2018, 08:59
Репутация: 22
Откуда: MO

Re: Объединение слоев и полигонов

Сообщение Dmitry Stasev » 28 сен 2018, 11:04

_taras_ писал(а):
28 сен 2018, 10:21
как с минимальными усилиями повторить контур отверстия в полигоне одного слоя на втором?
Если совсем с минимальными, я бы:
- создал новый слой (Back),
- на нем объект охватывающий содержимое

- Меню-вектор-геообработка-РАЗНОСТЬ (там в параметрах выбрать свои 2 слоя)
- в Полученном слое разности удалить внешнюю часть

наименования команд могут отличаться, т.к. у меня qgis218
Вложения
333.png
333.png (28.86 КБ) 20338 просмотров
222.png
222.png (20.39 КБ) 20338 просмотров
111.png
111.png (34.48 КБ) 20338 просмотров

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Объединение слоев и полигонов

Сообщение Yuraz » 04 фев 2019, 11:19

Коллеги, помогите. Есть несколько смежных районов области. Например объединяю через
Вектор - Управление данными - Объединить векторные слои
Выбираю несколько смежных - всё хорошо, объединяет. Но теперь надо убрать линии между районами. Вызываю
Вектор - Геообработка - Dissolve
где то хорошо обрабатывает, граница между районами стирается, а какие то районы ни в какую не хочет.
Подскажите, как в смежных районах стереть общую линию?

По большому счёту - цель - вытащить общую внешнюю границу всех районов.
pic-0000.png
pic-0000.png (102.12 КБ) 20047 просмотров

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Объединение слоев и полигонов

Сообщение trir » 04 фев 2019, 11:34


Dmitry Stasev
Участник
Сообщения: 67
Зарегистрирован: 13 мар 2018, 08:59
Репутация: 22
Откуда: MO

Re: Объединение слоев и полигонов

Сообщение Dmitry Stasev » 04 фев 2019, 12:39

ST_Union скорее всего оставит линии
Чтобы линия ушла что-то вроде: (буфер + 0.1) - 0.1

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Объединение слоев и полигонов

Сообщение Yuraz » 04 фев 2019, 15:59

Ребят, отлично, в SQL как говорится "въехал", а где SQL консоль в QGIS или это для PostGIS? Установить её под эти цели? И у меня слои подгружены из обычных MAP файлов от ПО MapInfo. Серверов БД на машине никаких нет. Наверное надо перегнать MAP в любую БД? И манипулировать там в любой клиентской SQL консоли?

Dmitry Stasev
Участник
Сообщения: 67
Зарегистрирован: 13 мар 2018, 08:59
Репутация: 22
Откуда: MO

Re: Объединение слоев и полигонов

Сообщение Dmitry Stasev » 04 фев 2019, 18:23

Все можно сделать проще
Создаешь виртуальный слой и вперед.
Имена слоев = имена таблиц
4.png
4.png (21.49 КБ) 19992 просмотра

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Объединение слоев и полигонов

Сообщение Yuraz » 05 фев 2019, 09:32

Эх, наверное мне не разобраться будет ((
Создал виртуальный на основе одного слоя. Ок.
Создал виртуальный на основе двух слоёв. Написал запрос SELECT * FROM 'Район1', 'Район2' . Ошибок нет, слой создался, отобразился правда только Район1. Название колонок не знаю (слои взял из MapInfo, MAP файл).
Но у меня слоёв несколько десятков, которые надо склеить в один и получить внешнюю границу.
Подскажите, как запросец в моем случае оформить?

Dmitry Stasev
Участник
Сообщения: 67
Зарегистрирован: 13 мар 2018, 08:59
Репутация: 22
Откуда: MO

Re: Объединение слоев и полигонов

Сообщение Dmitry Stasev » 05 фев 2019, 11:07

Ну тогда и не стоит с сиквелами мучаться.
1. Берете все свои слои, склеиваете(объединяете) их через вектор - геообработка
2. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
!!! Только там галочку поставьте "результат объединения"
3. полученный объект (Буфер) опять прогоняете через (буфер фиксированной ширины) с тем же значением, но отрицательным
Должно все получиться

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Объединение слоев и полигонов

Сообщение trir » 05 фев 2019, 11:14

(буфер + 0.1) - 0.1
теоретически мы можем потерять мелкие острова и сегменты полилиний

Dmitry Stasev
Участник
Сообщения: 67
Зарегистрирован: 13 мар 2018, 08:59
Репутация: 22
Откуда: MO

Re: Объединение слоев и полигонов

Сообщение Dmitry Stasev » 05 фев 2019, 11:41

trir писал(а):
05 фев 2019, 11:14
теоретически мы можем потерять мелкие острова и сегменты полилиний
Непременно! Поэтому
Dmitry Stasev писал(а):
05 фев 2019, 11:07
увеличиваете на ... маленький, но достаточный буфер )))
Надеюсь ТС понимает, что 0,1 градуса и 0,1 метра две большие разницы

Dmitry Stasev
Участник
Сообщения: 67
Зарегистрирован: 13 мар 2018, 08:59
Репутация: 22
Откуда: MO

Re: Объединение слоев и полигонов

Сообщение Dmitry Stasev » 05 фев 2019, 11:45

Сразу не заметил
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)
должно сделать виртуальный объединенный слой для выделенных в дереве слоев
ну а потом буфером его )

Yuraz
Участник
Сообщения: 51
Зарегистрирован: 14 май 2018, 14:21
Репутация: 2
Откуда: Россия

Re: Объединение слоев и полигонов

Сообщение Yuraz » 05 фев 2019, 14:30

Объединил благополучно через MMQGIS, теперь один полигон, но районы присутствуют. Осталось стереть границу между ними.
Dmitry Stasev писал(а):
05 фев 2019, 11:07
2. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
Дмитрий, а где буфер задать. Галочка есть, а значения где задать ...0,1..?
pic-0007.png
pic-0007.png (58.41 КБ) 19882 просмотра

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 31 гость