Using QGIS to remove portions of polygons that overlap in same layer?

QGIS Processing Toolbox has a SAGA Polygon self-intersection tool (under SAGA | Vector polygon tools).

It works much like QIGS Union Tool, while this tool retains only one feature per the overlapped area.

Open the attribute table of generated Intersection layer and select Delete all features whose fid (or id) is 0.

enter image description here


Use the Symmetrical Difference tool.

enter image description here

Symmetrical difference

This algorithm extracts the portions of features from both the Input and Overlay layers that do not overlap. Overlapping areas between the two layers are removed. The attribute table of the Symmetrical Difference layer contains original attributes from both the Input and Difference layers.


Just to add another workaround with QGIS built-in functions:

  • Intersect the polygons layer against itself.

The output is an Intersection layer with all the geometries of the polygons layer and new geometries for their overlapped areas.

  • Select by location the geometries of the Intersection layer than are equal (parameter) to polygons layer geometries, and Delete them.

The output is, in the same Intersection layer, two or more geometries for any overlap in the polygons layer.

  • Make the Difference between the polygons layer and the edited Intersection layer.

The output is a new Difference layer, with the geometries of the polygons layer without the overlapped areas.