[geos-devel] Re: [GEOS] #459: Union fails to fully node input linework

GEOS geos-trac at osgeo.org
Wed Jul 20 11:53:54 EDT 2011


#459: Union fails to fully node input linework
------------------------+---------------------------------------------------
 Reporter:  strk        |       Owner:  geos-devel@…              
     Type:  defect      |      Status:  new                       
 Priority:  major       |   Milestone:  3.3.1                     
Component:  Default     |     Version:  3.3.0                     
 Severity:  Unassigned  |    Keywords:                            
------------------------+---------------------------------------------------

Comment(by strk):

 My latest finding is that the Union operation triggered a
 TopologyException thus entered the heuristics used to reduce precision. In
 GEOS this is first attempting to compute the union with a version of the
 input geometries having common bits removed and then re-adding the bits in
 the result.

 So my current assumption is that the noding is lost during re-introduction
 of the bits. I've already seen similar cases in the past, where re-adding
 bits resulted in the constitution of an invalid geometry. Indeed passing
 the result again trough an union makes it properly noded (evidently
 because on this second union operation there's no TopologyException being
 thrown).

 JTS does SnapRounding as first heuristic, which indeed gives a fully noded
 result at first try.
 If we did the same we'd fail on two other known cases: bug #360 and bug
 #392.

 My best bet here is to run a noding test at the end of common bits re-
 addition and continue trough the heuristics methods list if it fails...

-- 
Ticket URL: <http://trac.osgeo.org/geos/ticket/459#comment:1>
GEOS <http://geos.refractions.net/>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list