[geos-devel] Re: [GEOS] #358: Invalid output from Union

GEOS geos-trac at osgeo.org
Thu Aug 26 20:16:46 EDT 2010


#358: Invalid output from Union
------------------------+---------------------------------------------------
 Reporter:  strk        |       Owner:  geos-devel@…              
     Type:  defect      |      Status:  new                       
 Priority:  major       |   Milestone:                            
Component:  Default     |     Version:  svn-trunk                 
 Severity:  Unassigned  |    Keywords:                            
------------------------+---------------------------------------------------

Comment(by strk):

 Alright, the reson why XMLTester --test-valid-output doesn't catch the
 invalidity
 is because it tests validity of the expected output, not the obtained
 output.

 Anyway, the problem here is the fact that a valid geometry, when passing
 trough
 the "common bits adder" procedure becomes invalid.

 The invalidity is a collapsed polygon ring (7th inner ring of obtained
 result).

  POLYGON((1659284.6921065 4797450.16609695,
           1659297.0472 4797444.3747,
           1659284.6921065 4797450.16609695,
           1659284.6921065 4797450.16609695))

 The same ring was NOT invalid when computed, which was, with
 removed bits 1659284 4797450:

  POLYGON((4500.69210649658 5130.16609695368,
           4500.69210649654 5130.16609695368,
           4513.04719999991 5124.37470000051,
           4500.69210649658 5130.16609695368))

 ... thus became invalid when summing up bits and discarding
 the high precision ones.

 Sounds like a conceptually possible thing to happen when
 removing and then re-adding precision bits.

-- 
Ticket URL: <http://trac.osgeo.org/geos/ticket/358#comment:4>
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