I have a polygon vector layer with overlapping features (like below) and I would like to convert the features that are fully contained inside the bigger polygons (ie feature 2 and 4 below) into inner rings.

I have tried saving the inner ring features as a separate polygon layer (they are all identified by attribute value) and using these as a difference layer in QGIS to no avail (I get a geometry error and result is only those features that were not intersecting).

There a number of similar looking questions on here but I have not found any where the polygon vector layer contains distinct features to be made into inner rings.

Is there any way to just set those features as rings?

I know I could digitise the rings but I need to do this for many features.

enter image description here


2 Answers 2


If you can identify the 'inner' polygons, select them out into a new layer, then instead of "Difference" use the "Symetrical Difference" under Geoprocessing.

  • The Difference tool did the job in the end as per answer above.
    – carsnut
    Commented Dec 13, 2013 at 13:48

Solution to this was to go to GRASS and fix the topologies of the various shapefiles which were causing offence in the 'Difference' tool. Importing/exporting vector layers to and from grass fixed the geometry issues, allowing the difference tool to do the job. I guess CAD conversion led to these geometry issues (original data was created in Autodesk).

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.