[Geoserver-devel] [jira] Created: (GEOS-3563) GeoServer does not support Oracle fuzzy tolerance polygons

GeoServer does not support Oracle fuzzy tolerance polygons
----------------------------------------------------------

                 Key: GEOS-3563
                 URL: http://jira.codehaus.org/browse/GEOS-3563
             Project: GeoServer
          Issue Type: Bug
          Components: Oracle
    Affects Versions: 2.0-RC1
         Environment: Windows Server 2003 / Java 1.6 / 32-bit
            Reporter: Bryan Hall
            Assignee: Andrea Aime
         Attachments: fix_geom_code.txt

GeoServer cannot process Oracle polygons that are valid for Oracle due to the starting and ending ordinate sets not being identical. In Oracle Spatial, the fourth parameter of each SDO_DIM_ELEMENT object in the MDSYS.SDO_GEOM_METADATA_TABLE can be set to allow a "fuzzy tolerance" that makes Oracle Spatial code consider any two ordinate sets within that tolerance to be identical. Due to this, a polygon can pass the Oracle valid geometry check (e.g. sdo_geom.validate_layer_with_context), but cause a "Points of LinearRing do not form a closed linestring" error.

To overcome this problem, I would suggest just copying the values of the first ordinate set to the last ordinate set. This will eliminate the error, and clean the geometry up "on the fly" in the case of an WFS-T transaction, etc. Here is my solution for this problem, as PL/SQL code as a starting place (see attachment). It corrects interpretation type 1 and 2 polygons (straing-line or curved-line, but not bbox).

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira