This question already has an answer here:

I need to subtract a polygon from another bigger one, in the same layer.

I have a layer, with a polygon. Inside this polygon I need to edit another polygon, smaller, without overlap.

How can I do this?

marked as duplicate by underdark qgis Nov 11 '17 at 9:41

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • If both polygons are separate features, you can delete the small one via the Attribute Table (right-click the layer), toggle the Editing icon (looks like a pencil), select the feature of the polygon you wanted deleted, then select Delete Feature. – Joseph Jun 18 '15 at 8:51
  • Thank you. I try to explain better my problem. I have a layer, with a polygon. Inside this polygon I need to edit another polygon, smaller, without overlap. Thanks in advance. – Elena Jun 18 '15 at 12:18
  • How do you want to edit the smaller polygon? Delete it, move it, change shape? – Joseph Jun 18 '15 at 12:37

I tried to find a way to do the task with QGIS on one layer but with no success which perhaps judges my answer which does not utilize QGIS.

The small open source GIS program OpenJUMP http://openjump.org/ seemed to have a tool which can do it.

Take two big polygons and two overlapping polygons, all on the same layer, to start with.

enter image description here

Find the Polygon Overlay tool from the menu.

enter image description here

Tool wants to have two layers, but they can be the same.

enter image description here

OpenJUMP throws an error message because the tool is not really made to handle this case. However, the result is almost correct. The small polygons are cutting holes into the big polygons. To proof this, select one small polygon

enter image description here

Delete it and you can see that the big one has a hole.

enter image description here

I wrote earlier that the result is only almost correct and that's because the attributes are not transferred correctly from the source features to the new features.


Are the 2 polygons in the same layer? If yes, i do not know if there is a tool for that, but you can make 2 different layers. One with the bigger polygon and one with the smaller polygon and use the tool "Difference" in "Geoprocessing tool".


Do you want to create a new small polygon inside an existing one and create a hole to the original one at the same? Like cutting cookies from dough? That can be done easily with OpenJUMP but I do not know if QGIS has a similar tool.

enter image description here

Select the big polygon and use the Cookie cut tool

Draw the inner polygon and it will be cut out from the big polygon automatically.

enter image description here

  • Maybe also creating an hole in the big polygon, then editing with snap and the function "not intersect" the small one, at the place of the hole. What do you think? – Elena Jun 18 '15 at 12:56
  • Yes, why not. With OpenJUMP you could also cut a hole first (select a polygon and draw the hole inside it with the Draw polygon tool) and then click the empty area with Create Polygon from Closed Area tool (rightmost tool on the same row that the cookie cutter) which will then magically fill the island with a new polygon. – user30184 Jun 18 '15 at 13:13

You can substract (clip) a polygon from another surrounding it by using the plugin Clipper. You have to choose the polygon you want to clip and then you do Vector->Clipper->Clip and the plugin substracts the polygon from the bigger one. Then you choose the clipped polygon and delete it.

If you can't choose the polygon you really want because the QGIS chooses the other one, you can use the identify tool (i) and then choose the right polygon by using the Toggle Feature Selection from the Identify Window.Toggle Feature Selection By doing this you can select the polygon you want when there is an overlay between features.

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