I have been given a shapefile from a client that features pivots, yet they were recorded as 10 circles overlapping. The software my company uses requires that these polygons be rings that don't overlap. I have read about the clip and difference tools, but I think I'm going about it the wrong way.

Can anyone help me clip these polygons so they are rings and not overlapping circles?

I have attached a screenshot of what I mean.

enter image description here

  • 1
    In QGIS, the Difference tool does exactly what you want.
    – ArMoraer
    Feb 17 '16 at 22:24
  • DIfference is the tool to use. Start with the biggest buffer and work your way back in removing any overlap. you will be left with rings that do not overlap. If you can start from scratch you can take the original points (or centroid if its a poly) and then use this tool plugins.qgis.org/plugins/Multi_Ring_Buffer to create multi-ring donuts around your points.
    – ed.hank
    Feb 17 '16 at 22:51
  • I would use GRASS (or QGIS GRASS plugin). Import your layer into GRASS. GRASS will maintain topology on layer, so there will be no overlapping parts.
    – Zoltan
    Feb 18 '16 at 6:24

To clean overlapping circles, I will use v.clean from Processing toolbox in QGIS -> GRASS GIS -> Vector -> v.clean, then I will use Delete duplicate geometries from Processing toolbox in QGIS -> QGIS geoalgorithms -> Vector general tools -> Delete duplicate geometries.

Here is an example:

I have an overlapping circles that when you use an identify tool and select the small circle in the center, you can see that all of them are selected because they are overlapping each other.

enter image description here

Now using Processing toolbox in QGIS -> GRASS GIS -> Vector -> v.clean and select the Clean tool Break

enter image description here

will break/cut the circles where they overlaps, so you will have a duplicate polygons:

enter image description here

The original shapefile has 6 polygons, but after the break I got 21 polygons with some of them are identical in their areas.

To remove these duplicate polygons, I use Delete duplicate geometries, and the final output is as expected:

enter image description here

I have 6 polygons with no overlap as you can see from the identify tool.


If these are set distances. You could just use the Multi Ring Buffer plugin on the smallest circle.




Do the circles have an attribute specifying their level (eg. levels 1 to 10 going from innermost to outermost) to make selecting each level quick? You could use QGIS's 'avoid intersections' feature by turning the option on within the snapping options for this layer. Then select the level 1 (innermost) rings, cut and paste them back in. When you paste, QGIS will stop the circles from intersecting with the others so the pasted versions will just be the inner circles. Repeat the process going from levels 2 to 10 and you will end up with rings with no overlaps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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