Досягнення буферних ліній буфера в QGIS?


14

Мені потрібно буферувати ряд рядків на 40 м, однак я хочу лише, щоб буфер відходив від боків, а не з кінця лінії.

Я знаю, що в ArcGIS є галочка "плоских кінців", яка досягає саме цього, однак, на жаль, я не можу використовувати ArcGIS в даний час.

Чи є якийсь спосіб досягти цього в QGIS?

Я ознайомився з деякими роботами навколо, але через масштаб моїх наборів даних (національних дорожніх мереж) жоден із тих, кого я знайшов поки що, не є можливим.


Не впевнений, у якому форматі ваші дані, але схоже, що ви можете це зробити за допомогою заяви PostGIS, gis.stackexchange.com/questions/1197/…
artwork21

Відповіді:


12

Якщо ви використовуєте інструмент v.buffer у наборі інструментів Grass Commands, ви можете зробити плоский буфер.

Є два вікна вибору. v.buffer Якщо ви Make outside corners straightвстановили No, і Don't make caps at the ends of polylinesяк Yesрезультат, результат повинен бути схожим на буфер прямого краю ArcMap.

Далі наведені 3 комбінації вищевказаних двох прапорців, відзначте бінарну комбінацію у назві шару (0 = ні, 1 = так). v.buffer результати

Ви, ймовірно, раніше також повинні запускати фіксатор / очищувач топології, інструмент "Трава" має тенденцію повертати забавні результати, якщо топологія не є ідеальною


Чудово це саме те, що мені було потрібно, я не мав уявлення, що в QGIS ці команди GRASS вилазили. Дякую вам
rfreeman92

NB: Чи є спосіб забезпечити, щоб створені буфери були окремими багатокутниками, а не розчинялися в один гігантський багатокутник?
rfreeman92

Мені також цікаво отримати окремі багатокутники, а не один розпущений багатокутник. Чи можливо це?
користувач32882

3

OpenJUMP може не влаштовувати вас, оскільки всі дані повинні вміщуватися в пам'яті, але при 64-бітному jre ліміт досить високий. Найголовніше, це може.

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


1
Буферний інструмент OpenJUMP досяг цього краще, ніж QGIS або Esri!
sirgeo

Просто сказати спасибі за те, що ви представили мені програмне забезпечення, яке виявляється набагато швидшим у багатьох із цих основних алгоритмів! : D
jhc

0

Виявляється, що такого ж результату можна досягти безпосередньо ST_Buffer(), використовуючи плоску торцеву кришку з круглим з'єднанням, як показано нижче:

ST_Buffer(linestring_geom,<buffer_radius>,'endcap=flat join=round')
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.