[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