Перетворити лінію на багатокутник


13

У мене є форм-файл із районами міста, але, на жаль, форм-файл містить лише окремі рядки. Файл форми виглядає приблизно так:

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

Я хочу перетворити ці рядки у форматфайли форм-полігонів у QGIS. Я спробував це за допомогою інструмента "Лінії до багатокутників" (Вектор> Інструменти геометрії> Лінії до багатокутників), але він не працював правильно. Після використання цього інструменту форм-файл виглядає так:

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

Чи є якийсь інший спосіб перетворити файл форми лінійки у формат-формат полігону області в QGIS?

До речі, я використовую QGIS 2.14.3 Essen.


2
У мене було щось подібне востаннє, коли я використовував цей інструмент. Мені вдалося отримати багатокутники за допомогою інструменту полігонізації.
Джонс

Думаю на вашу відповідь, де я можу знайти інструмент полігонізації?
Марк Білий

Полігонізацію можна знайти тут - Обробка інструментів, геоалгоритми QGIS, Інструменти векторної геометрії.
klewis

Я спробував це, але коли я запускаю полігонізатор, я отримую файл із порожньою формою :-(
Марк Уайт

Чи можете ви завантажити файл з форматом в папку "або" або подібне?
AndreJ

Відповіді:


16

PolygonizeІнструмент від обробки інструментів до сих пір відмінно працює для мене на простих лініях:

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

Однак необхідно, щоб лінії перетиналися або мали спільні вершини. І лінії не повинні мати самоперетину.

Можливо, вам знадобиться прив’язати кутові вершини, щоб він працював. Зазвичай я встановлюю толерантність оснащення на 10 пікселів до вершини.


1
Я теж зіткнувся з тією ж проблемою при перетворенні ліній на багатокутники. Інструмент «Полігонізація» вирішив питання. gis.stackexchange.com/a/211794/62237
Sjs

7

Лише підказка, якщо ви не можете знайти Polygonizeінструмент. У моїй установці QGIS 2.18.3 (Windows) я не зміг знайти Polygonizeінструмент на Vector geometry toolsпанелі інструментів. Знадобилося певний час, щоб зрозуміти, що мені потрібно встановити python-shapelyбібліотеку з OSGeo4W (дякую Ніку Хоптону: Ідеальні полігони в QGIS ).


Дякую! Я довго плутався, тому що QGIS у вікні Windows має полігонізований інструмент, призначений лише для растерів. Ще один крок, який може бути або не потрібен - це включити геоалгоритми QGIS у розділі "Обробка >> Опції >> Провайдери"
matt wilkie

Дякую за цю відповідь. Я думав, що я божеволію, не знаходжу його більше
gisnside

3

Дивлячись на ваше зображення, я б припустив, що кожен рядок не охоплює площу повністю, лінії просто виступають як огорожі і не відновлюються на початку. Ваші багатокутники створюються з кінців рядків, тому інструмент 'лінії до полігонів' працює нормально, його дані - це проблема.

Я боюся, що єдине, про що я можу придумати, - це оцифровувати новий шар багатокутників. На щастя, QGIS зробив це дуже просто за допомогою інструмента оцифрування слідів (значок магніту), який доступний у версії 2.14


0

Якщо дірок не буде, я створив би шар подряпини з одним багатокутником, достатньо великим, щоб покрити всю вашу територію. Тоді я би перерізав його з результатами твоїх ліній до полігонів і поділяв його далі за необхідності.


0

Тестували на QGIS 2.18 та QGIS 3.4

Я можу запропонувати використовувати "Virtual Layer"наскрізний Layer > Add Layer > Add/Edit Virtual Layer....

Припустимо, у нас є п'ять лінійних функцій "lines", дивіться зображення нижче.

Приклад

За допомогою наступного Запиту можна досягти результату.

SELECT l.id, l.NAME, MakePolygon(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Вихідний віртуальний шар буде виглядати так

Результат_1

Як уже згадував @AndreJ, лінії повинні перетинатися або ділити загальні вершини. І лінії не повинні мати самоперетину. Щодо очищення топології шару, я можу запропонувати вивчити v.cleanнабір інструментів GRASS.


У випадку, якщо лінії мають самоперетин, ви можете використовувати ConvexHull із наступним Запитом

SELECT l.id, l.NAME, ConvexHull(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Справа

Вихідні дані


Список літератури:


0

Якщо полілінії перетинаються один з одним, Polygonizeінструмент не може впоратися з ним так:

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

Однак Lines to polygonsінструмент працює так, як очікувалося:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.