[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