[geos-devel] [GEOS] #1034: Union topology exceptions lead to complete loss of floating point precision
GEOS
geos-trac at osgeo.org
Wed Jul 1 09:35:55 PDT 2020
#1034: Union topology exceptions lead to complete loss of floating point precision
-------------------------+--------------------------
Reporter: dannytoone | Owner: geos-devel@…
Type: defect | Status: new
Priority: major | Milestone:
Component: Default | Version: 3.8.0
Severity: Significant | Keywords:
-------------------------+--------------------------
This is a cross-posted bug from the PostGIS project, which is calling GEOS
for the union function. Certain complex geometries can cause topology
exceptions, triggering routines to try to simplify the geometries. This
process cascades until all decimal precision is lost.
https://trac.osgeo.org/postgis/ticket/4711
Inside the ticket you'll find a synthetic data generation process (in
PostGIS) which produces geometries which will reproduce the error.
According to ''mdavis'':
To follow on from what Paul has said, I tried the union using the new
Overlay algorithm in JTS, and it works perfectly (and is pretty fast too).
The new Overlay uses a more effective snapping approach to improve
robustness. It doesn't require the aggressive precision reduction that
PostGIS/GEOS is using now. So we're very hopeful this will solve most or
all of these kinds of issues.
As a side note, your synthetic data generation process seems like a
great way to produce stress-testing datasets for overlay. This is actually
tricky to do with synthetic data, so well done!
I'm crossposting here so this synthetic dataset can be used for testing on
the port of the Overlay algorith from JTS.
--
Ticket URL: <https://trac.osgeo.org/geos/ticket/1034>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).
More information about the geos-devel
mailing list