I thought I understood how the GRASS v.clean tool worked in QGIS (in 2.6.1 Brighton) but I keep getting unexpected results and errors with a polygon ShapeFile. I've run the QGIS TopologyChecker with the following rules over the file:

  • layer must not overlap
  • layer must not have gaps
  • layer must not have duplicates
  • layer must not contain invalid geometries

747 errors were found, all of the gap and overlap type. I tried using the v.clean snap tool to eliminate the overlaps but this happened:

original layer with processed polygons and error polygons overlayed close-up of v.clean issue

Can anyone point me in the right direction and/or point out what I'm doing wrong? The v.clean tool appears to be removing vertices and actually creating errors. All I want is the slivers in between polygons removed and the polygon holes filled in.

In the end I need a topological ShapeFile to generalize. I've found what I need for generalization here: Generalizing polygon file while maintaining topology in QGIS?

  • 1
    Please explain why such errors exists in this map in the first place... the input SHAPE file seems to have some issues. (Sidenote: consider to use GRASS GIS 7 for this, it comes with trac.osgeo.org/grass/wiki/Grass7/NewFeatures) – markusN Dec 27 '14 at 0:45
  • It looks like your snapping threshold is too high(?) Would be good to have a scale bar to get an idea about the effects. Furthermore, I normally let the snapping be done by the advanced settings (snapping tolerance from a few centimeters to some meters, but this really depends on the scale your data(errors) were produced.) and set some small value for the minimum area. This alone would remove most errors on import. As these import functions do not exist alone in the Toolbox, I normally use v.clean bpol with it. I have no real clue why, but this combination works for me most of the time. – Bernd V. Jan 5 '15 at 14:24

There is a QGIS tool which is designed to help remove sliver polygons:

Vector > Geoprocessing Tools > Eliminate Sliver Polygons

An alternative method which may or may not work (depending on your polygons and attributes) is to use the Dissolve function (Vector > Geoprocessing Tools > Dissolve) and select a unique attribute column for the dissolve field. I find this to be useful when I have several slivers lying around.

Hope this helps!


Another option you can use Geometry Checker. Be careful with threshold value. Too high threshold value can change your geometry or undesirable result. Maybe this post could give more clear explanation about cleaning topology error in QGIS

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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