Достижение линейных буферов в 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 результаты

Вам, вероятно, также следует запустить средство для исправления / очистки топологии до того, как инструмент Grass будет давать забавные результаты, если топология не идеальна.


Отлично, это именно то, что мне было нужно, я понятия не имел, что в QGIS эти команды GRASS были сжаты. Спасибо, любезно.
rfreeman92

NB: есть ли способ убедиться, что созданные буферы являются отдельными полигонами и не растворены в одном гигантском полигоне?
rfreeman92

Я также заинтересован в получении отдельных многоугольников, а не одного растворенного многоугольника. Это возможно?
user32882

3

OpenJUMP может не подойти вам, потому что все данные должны уместиться в памяти, но с 64-битным JRE предел довольно высок. Самое главное, это может.

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


1
Буферный инструмент OpenJUMP сделал это лучше, чем QGIS или Esri!
Сиргео

Я просто хочу поблагодарить вас за то, что вы представили мне программное обеспечение, которое работает намного быстрее во многих из этих основных алгоритмов! : 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.