I have several separate shapefiles with polygon features. The end goal is to maintain separate shapefiles for each polygon but form a contiguous, non-overlapping coverage for my area. Basically, I guess I am trying to fill in gaps using a consistent, repeatable process.

The polygons are irregular: enter image description here

Initially I thought I could buffer each polygon and do something like this for the overlaps: Cut off overlapping polygon areas at their cutting edge but was unable to perform using v.clean. Is there another way? Most methods I see seem to favor one polygon over the other and I'm trying for a standard or middle distance.

If a buffer is not used, I want to expand each polygon in a standardized way and have them meet at a 'midpoint' between each polygon. Is this possible? Maybe something with node snapping tolerances? I am currently using QGIS 2.16 and don't have any experience using python.

  • 2
    If you only have to do a few of these, you could turn on snapping, create a new polygon that fills the gap and is snapped to the vertices of the neighboring polygons, split the new polygon roughly in half, (advanced digitizing toolbar: split features tool), copy-paste each half into the shapefile of its neighboring polygon, and merge it with that polygon.
    – csk
    Commented Mar 9, 2018 at 18:56
  • 1
    Thank you; this may be what I end up doing because I don't have too many polygons right now. However, I think my next round will be more complex, so I'd love to have something less 'free-hand' with the split features.
    – Brett_
    Commented Mar 10, 2018 at 15:31

1 Answer 1


Be sure your polygons have a unique id.

  1. Extract vertices

  2. Create Voronoi polygons

  3. Aggregate voronoi polygons based on the unique id.

Resulting polygons outlined in red: enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.