How do I find the differing polygons between two layers in QGIS?
After running the difference operation, however, I get results like this:

I am only interested in the solid (blue) polygons, not the weird lines - which I suspect are the result of rounding error, or previous conversion of the polygon layers from different file types - who knows.
One idea I had was to calculate the area of the polygons and simply select those with non-zero (or above any obvious peak in the distribution) values, but irritatingly the line polygons seem to have substantial areas in many cases.
Save As...and check theSave only selected featuresoption. Then save it as a new shapefile. Alternatively, have you tried theEliminate sliver polygonstool or thev.cleantool with the rmdangle parameter? – Joseph Feb 23 '17 at 12:17There ought to be some easy check for whether the geometry in question is a "full" polygon or not, and then I could just iterate over the polygons with a python script
– nkc Feb 23 '17 at 12:34SELECT ST_Difference(layer1.geom, layer2.geom) FROM layer1 INNER JOIN layer2? – nkc Feb 23 '17 at 12:45