[geos-devel] [GEOS] #253: Unexpected "Self-intersection at or near
point"
GEOS
geos-trac at osgeo.org
Mon May 18 19:17:54 EDT 2009
#253: Unexpected "Self-intersection at or near point"
------------------------+---------------------------------------------------
Reporter: wvereeck | Owner: geos-devel at lists.osgeo.org
Type: defect | Status: new
Priority: minor | Milestone: 3.1.1
Component: Core | Version: 3.1.0
Severity: Unassigned | Keywords: self-intersection
------------------------+---------------------------------------------------
Hi All,
I'm very new to GEOS (< 1 day), but I'm puzzled by what I think is a
strange bug.
Being particularly interested in the GEOSUnionCascaded() function to merge
large sets (>50,000) of overlapping polygons, altering my dataset manually
to avoid this bug(?) is not an option.
I have narrowed down the problem to the following multipolygon, which
represents a rectangle inside an octagon (see
http://homes.esat.kuleuven.be/~wvereeck/rect_inside_oct.png)
MULTIPOLYGON(((12.26 18.46, 11.76 18.46, 11.54 18.24, 11.54 17.34, 11.76
17.12, 12.26 17.12, 12.48 17.34, 12.48 18.24, 12.26 18.46)),((12.37 18.35,
11.65 18.35, 11.65 17.23, 12.37 17.23, 12.37 18.35)))
I am using the c-interface. Running the GEOSisValid() test on this polygon
set results in:
NOTICE: Self-intersection at or near point 12.37 18.35
Also, GEOSUnionCascaded() accordingly fails with:
ERROR: TopologyException: found non-noded intersection between 11.65
etc...
However, when I slightly offset the x-position (+1e-8) of the two top
vertices of the rectangle, everything works like a charm (i.e. GEOSisValid
returns 'true' and GEOSUnionCascaded produces the correct output polygon):
MULTIPOLYGON(((12.26 18.46, 11.76 18.46, 11.54 18.24, 11.54 17.34, 11.76
17.12, 12.26 17.12, 12.48 17.34, 12.48 18.24, 12.26 18.46)), ((12.37000001
18.35, 11.65000001 18.35, 11.65 17.23, 12.37 17.23, 12.37000001 18.35)))
I apologize if I'm too much in a hurry here and should start to learn more
about geos before submitting a complaint :) At least I hope this is the
right place for this problem.
Kind Regards,
Wim Vereecken
FWIW, I'm using geos-3.1.0.tar.bz2 (2009/03/17), libgeos-3.1.0 and Ubuntu
8.04.2 (x86-64) with a 2.6.24-23-generic kernel.
--
Ticket URL: <http://trac.osgeo.org/geos/ticket/253>
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