I'm trying to get the difference between two polygon layers using the QGIS difference function. These are the two files: Dropbox

When I view the attribute tables of both I can see there are 3 polygons that are different between the two. When I run the difference tool I get an output that has fifteen polygons the same as the original file with 15 polygons. Is there something I'm missing? I want to get a separate shapefile with only the 3 polygons that are the difference between the two.

  • 1
    Can you clarify if you are trying to get the difference based on geometry (ie, the shape, position and location of the polygons) or that they are different based just on the attribute information?
    – SaultDon
    Jun 14, 2017 at 18:07
  • I'm trying to get the difference based on the geometry. A shapefilewith the 3 polygons that aren't included in the second set of polygons
    – Aurust
    Jun 15, 2017 at 14:40

1 Answer 1


Ok, it seems that the layer difference tool in QGIS keeps all the rows and computes a new geometry for all of them. As a result there is a new layer with 15 rows and 12 of them has an empty geometry. I do not know how to show the difference of empty and non-empty geometries with QGIS. At least the attribute view does not do it. I saved the result as shapefile and opened it with OpenJUMP which has pink icons for empty geometries in the attribute window.

enter image description here

The tool seems to compute the differences for the geometries correctly but it is not exactly the tool that you want to have for your task. However, you can find your features by selecting all rows which have an area bigger than zero. The text is rather small but there reads "3 feature(s) selected on layer difference".

enter image description here

Your Answer

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

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