[geos-devel] Invalid geometries from GEOS operations
strk
strk at keybit.net
Fri Aug 27 10:24:52 EDT 2010
Oh, forgot to mention: in trunk you can choose whether
or not to enable the check for validity thus giving
SnapOp a chance to give you valid result or exception.
Default is don't check (like it's always been), you can change
by defining GEOS_CHECK_COMMONBITS_VALIDITY in
include/geos/geom/BinaryOp.h (around line 120)
Note that defining that macro would make GEOS closer
to JTS in functionality.
-strk;
On Fri, Aug 27, 2010 at 04:21:43PM +0200, strk wrote:
> I've spent some days enhancing the XMLTester to check
> for validity of returned geometries and found a dozen
> or more such cases (6 couple of inputs, multi-ops for
> some of them).
>
> All the invalidities come out from GEOS unchecked use of
> CommonBitsOp, whereas such operation is known to possibly
> yeld collapsed poligons due to loss of precision when
> translating back (re-adding the previously stripped bits).
>
> In JTS, an EnhancedBitsOp class is used to basically add
> a validity check around the CommonBitsOp to ensure the
> result would be checked before returning.
> In GEOS, doing a similar thing would be nice as we could
> then try something else (SnapOp). Well, I did and that
> fixed 5 over 6 tests. Unfortunately the last test broke
> completely, that is it would not return an invalid geometry
> (as it did before) but rather an exception.
>
> OUT OF DETAIL, INTO THE POINT
>
> Ok, simple question for you now is:
> Should GEOS always throw an exception in preference over
> returning an invalid geometry ?
>
>
> --strk;
>
> () Free GIS & Flash consultant/developer
> /\ http://strk.keybit.net/services.html
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geos-devel
--
() Free GIS & Flash consultant/developer
/\ http://strk.keybit.net/services.html
More information about the geos-devel
mailing list