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