[geos-devel] Bug in GEOSEquals predicate ?

Martin Davis mbdavis at refractions.net
Mon Mar 16 11:46:09 EDT 2009


GEOS does not support evaluating predicates on GEOMETRYCOLLECTIONS (due 
to the potential complexity and lack of obvious semantics of 
heterogeneous collections).

In JTS trying to do this throws an exception.  I'm not sure how GEOS 
reacts - or possibly shapely is not handling this gracefully?

Pascal Leroux wrote:
> Hi all
>
> while searching for intersections between polygons (buildings), I have 
> found shapes that make "equals" predicate crash. With simpler shapes, 
> it occurs too :
>
> >>> from shapely.geometry import Polygon
> >>> p1 = Polygon(((0,0),(0,10),(10,10),(10,0),(8,0),(8,8),(2,8),(2,0)))
> >>> p2 = Polygon(((2,0),(2,8),(8,8),(7,4),(8,0)))
> >>> inter = p1.intersection(p2)
> >>> inter.is_valid and p1.is_valid and p2.is_valid
> True
> >>> inter.wkt
> 'GEOMETRYCOLLECTION (POINT (8.0000000000000000 0.0000000000000000), 
> LINESTRING (8.0000000000000000 8.0000000000000000, 2.0000000000000000 
> 8.0000000000000000), LINESTRING (2.0000000000000000 
> 8.0000000000000000, 2.0000000000000000 0.0000000000000000))'
> >>> inter.equals(p1)
> False
> >>> inter.equals(p2)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File 
> "/usr/lib/python2.5/site-packages/Shapely-1.0.11-py2.5.egg/shapely/predicates.py", 
> line 34, in __call__
>     return bool(self.fn(self.context._geom, other._geom))
>   File 
> "/usr/lib/python2.5/site-packages/Shapely-1.0.11-py2.5.egg/shapely/predicates.py", 
> line 21, in errcheck
>     raise PredicateError, "Failed to evaluate %s" % repr(self.fn)
> shapely.geos.PredicateError: Failed to evaluate <_FuncPtr object at 
> 0x96a3bf4>
>
> I have got a Bus Error on MacOSX (libgeos version 3.0.0) and a 
> Segmentation Fault on Ubuntu (libgeos version 3.0.3) with an 
> equivalent code written in C (so I think Shapely is not involved).
>
> Any idea ? Did I miss something ?
>
> Pascal
> ------------------------------------------------------------------------
>
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geos-devel

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022



More information about the geos-devel mailing list