[GIS] Buffer neighbouring polygons without overlap using QGIS

bufferpolygonqgisvector

Is it possible to create a buffer around neighbouring polygons, so that the new polygons do not overlap?

Preferably in QGIS but any other tool will do.

So instead of the first result I would like to obtain something similar to the second:

enter image description here

Best Answer

One way to do this, depending on the quality/complexity of the polygon layer, is with the following steps:

1) Extract vertices from polygons, ensuring a unique field is kept as an attribute

2) Create a voronoi from these points

3) Buffer the original polygons by the required amount

4) Subtract the buffer polygons from the voronoi

5) Recombine/dissolve the remaining voronoi polygons on the unique attribute field

When doing this in the past with slightly inconsistent datasets I've had to do additional steps to remove artefacts from within the new polygons:

  • Subtract original polygons from new layer to remove in-polygon artefacts
  • Add original polygons into new dataset
  • Recombine/dissolve again on key field

The advantage of the voronoi step (as also suggested by csd) is that it gives perpendicular boundaries, as your requirement diagram showed.

Some of these operations can take significant amounts of time though....

Related Question