[Qgis-developer] QGIS 1.8 - check geometry validity not working

a.furieri at lqt.it a.furieri at lqt.it
Tue May 8 03:17:47 PDT 2012


On Mon, 7 May 2012 18:57:17 +0200, Sandro Santilli wrote:
> How did you import the geometries ?
>

Serendipity, i.e. finding something useful by pure hazard :-)

Short report explaining this puzzling mystery:
- the disputed Geometry has *two* distinct rings
- the main one is correctly marked in the SHP as the
   exterior ring [about 200 vertices]
- the second one has only 4 vertices (i.e. it's a triangle)
   and is almost invisible, because is incredibly small (just
   few centimeters, measured on the terrain: it looks like
   a possible artifact).
   this second ring is correctly marked in the SHP to be
   an interior ring, and shares a common point with the
   exterior ring. nothing forbids an interior ring like this,
   so GEOS correctly identifies this Polygon as a valid one.

There was a bug in the SpatiaLite's own SHP loader: on
SpatiaLite the second ring was wrongly assumed to be a second
exterior ring, thus producing a MultiPolygon (two polygons).
But the second polygon was fully contained within the main
one, thus causing GEOS to raise a geometry error.

Conclusion #1: we've found (and resolved) an obscure bug
   in SpatiaLite
Conclusion #2: GEOS surely is the better tool to be used
   in order to identify any malformed Geometry
   Highly recommended ;-)

bye Sandro

p.s.: many thanks to Pasquale, Salvatore and Strk

-- 
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.



More information about the Qgis-developer mailing list