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:
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.Sign up to join this community
If you are able to have an ArcGIS account you can do this process easily through ArcGIS Online. When creating a web map through Arc GIS Online you can use a limited amount of analysis tools. The buffer analysis tool gives you options to overlap or dissolve the buffers. From there you can export that layer as a shapefile.
For QGIS, you will first want to use the Create Buffers tool and input whatever radius and radius unit you would like. Then you will go into your geoprocessing tools and use the Dissolve tool. This will dissolve the boundaries of your buffers and basically create something that looks like one large buffer.
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:
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....
if using raster-analysis is an option, cost distance algorithms might be a proper way. usually, these algorithms are provide distance and allocation-output as well - based on the allocation result (i.e. which pixel is closest to which object) a raster calculation that selects any pixel from allocation-raster with a distance < value (from distance raster) would provide the expected result.