Страница 1 из 2
Объединение слоев и полигонов
Добавлено: 27 сен 2018, 22:08
_taras_
Здравствуйте!
Мне надобно объединить два слоя, на которых есть по одному полигону и затем соединить эти полигоны в один без внутренних границ.
И второе. Я понял как делать отверстия в полигонах. А как делается границ второго полигона, который находится на другом слое?
Пользую (хотя это громко сказано) QGIS 3.2.3-Bonn
Re: Объединение слоев и полигонов
Добавлено: 27 сен 2018, 22:15
Prince660
Ну если два слоя по одному полигону, то открыть оба слоя для редактирования и скопировать полигон из одного слоя в другой. А потом стандартным инструментом объединения объектов, собственно их объеденить. А второе не совсем понял...
Re: Объединение слоев и полигонов
Добавлено: 28 сен 2018, 10:21
_taras_
Постараюсь расписать второй вопрос.
Я создаю карту водной растительности.
Первый слой - зеркало воды; второй - прибрежно-водная (тростник, рогоз и т.п); третий - растения с плавающими листьями (рдесты). И в нем формируются участки других растений, которые я определяю на следующий слой. И возник вопрос как с минимальными усилиями повторить контур отверстия в полигоне одного слоя на втором?
Re: Объединение слоев и полигонов
Добавлено: 28 сен 2018, 11:04
Dmitry Stasev
_taras_ писал(а): ↑28 сен 2018, 10:21 как с минимальными усилиями повторить контур отверстия в полигоне одного слоя на втором?
Если совсем с минимальными, я бы:
- создал новый слой (Back),
- на нем объект охватывающий содержимое
- Меню-вектор-геообработка-РАЗНОСТЬ (там в параметрах выбрать свои 2 слоя)
- в Полученном слое разности удалить внешнюю часть
наименования команд могут отличаться, т.к. у меня qgis218
Re: Объединение слоев и полигонов
Добавлено: 04 фев 2019, 11:19
Yuraz
Коллеги, помогите. Есть несколько смежных районов области. Например объединяю через
Вектор - Управление данными - Объединить векторные слои
Выбираю несколько смежных - всё хорошо, объединяет. Но теперь надо убрать линии между районами. Вызываю
Вектор - Геообработка - Dissolve
где то хорошо обрабатывает, граница между районами стирается, а какие то районы ни в какую не хочет.
Подскажите, как в смежных районах стереть общую линию?
По большому счёту - цель - вытащить общую внешнюю границу всех районов.

- pic-0000.png (102.12 КБ) 24577 просмотров
Re: Объединение слоев и полигонов
Добавлено: 04 фев 2019, 11:34
trir
Re: Объединение слоев и полигонов
Добавлено: 04 фев 2019, 12:39
Dmitry Stasev
ST_Union скорее всего оставит линии
Чтобы линия ушла что-то вроде: (буфер + 0.1) - 0.1
Re: Объединение слоев и полигонов
Добавлено: 04 фев 2019, 15:59
Yuraz
Ребят, отлично, в SQL как говорится "въехал", а где SQL консоль в QGIS или это для PostGIS? Установить её под эти цели? И у меня слои подгружены из обычных MAP файлов от ПО MapInfo. Серверов БД на машине никаких нет. Наверное надо перегнать MAP в любую БД? И манипулировать там в любой клиентской SQL консоли?
Re: Объединение слоев и полигонов
Добавлено: 04 фев 2019, 18:23
Dmitry Stasev
Все можно сделать проще
Создаешь виртуальный слой и вперед.
Имена слоев = имена таблиц

- 4.png (21.49 КБ) 24522 просмотра
Re: Объединение слоев и полигонов
Добавлено: 05 фев 2019, 09:32
Yuraz
Эх, наверное мне не разобраться будет ((
Создал виртуальный на основе одного слоя. Ок.
Создал виртуальный на основе двух слоёв. Написал запрос SELECT * FROM 'Район1', 'Район2' . Ошибок нет, слой создался, отобразился правда только Район1. Название колонок не знаю (слои взял из MapInfo, MAP файл).
Но у меня слоёв несколько десятков, которые надо склеить в один и получить внешнюю границу.
Подскажите, как запросец в моем случае оформить?
Re: Объединение слоев и полигонов
Добавлено: 05 фев 2019, 11:07
Dmitry Stasev
Ну тогда и не стоит с сиквелами мучаться.
1. Берете все свои слои, склеиваете(объединяете) их через вектор - геообработка
2. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
!!! Только там галочку поставьте "результат объединения"
3. полученный объект (Буфер) опять прогоняете через (буфер фиксированной ширины) с тем же значением, но отрицательным
Должно все получиться
Re: Объединение слоев и полигонов
Добавлено: 05 фев 2019, 11:14
trir
(буфер + 0.1) - 0.1
теоретически мы можем потерять мелкие острова и сегменты полилиний
Re: Объединение слоев и полигонов
Добавлено: 05 фев 2019, 11:41
Dmitry Stasev
trir писал(а): ↑05 фев 2019, 11:14теоретически мы можем потерять мелкие острова и сегменты полилиний
Непременно! Поэтому
Dmitry Stasev писал(а): ↑05 фев 2019, 11:07увеличиваете на ... маленький, но достаточный буфер )))
Надеюсь ТС понимает, что 0,1 градуса и 0,1 метра две большие разницы
Re: Объединение слоев и полигонов
Добавлено: 05 фев 2019, 11:45
Dmitry Stasev
Сразу не заметил
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)
должно сделать виртуальный объединенный слой для выделенных в дереве слоев
ну а потом буфером его )
Re: Объединение слоев и полигонов
Добавлено: 05 фев 2019, 14:30
Yuraz
Объединил благополучно через MMQGIS, теперь один полигон, но районы присутствуют. Осталось стереть границу между ними.
Dmitry Stasev писал(а): ↑05 фев 2019, 11:072. Результат слияния опять же через геообработку (буфер фиксированной ширины) увеличиваете на ... маленький, но достаточный буфер )))
Дмитрий, а где буфер задать. Галочка есть, а значения где задать ...0,1..?

- pic-0007.png (58.41 КБ) 24412 просмотров