From 1740a865b0e238d58f65fcb0c842f023b51fa1f4 Mon Sep 17 00:00:00 2001 From: Stephan Reichhelm Date: Fri, 21 Feb 2020 18:20:15 +0100 Subject: [PATCH] Add geometry fixes (#28) --- .../geometry/validation/GeometryFixer.java | 25 +- .../validation/GeometryFixerTest.java | 154 +++++- .../oracle/sdo/OracleObjectTools.java | 7 + .../oracle/sdo/SDOGeometryConverter.java | 56 ++- .../sdo/SDOGeometryConverterExampleTests.java | 258 ++++++++++ .../utils/XMLMemoryStreamWriter.java | 115 +++++ .../test/oracle/sdo/RingExtInt_01.gml | 469 ++++++++++++++++++ .../test/oracle/sdo/RingExtInt_01.sdo | 311 ++++++++++++ .../oracle/sdo/standard_geom/01_Point.gml | 3 + .../oracle/sdo/standard_geom/01_Point.sdo | 1 + .../sdo/standard_geom/02_Line_segment.gml | 3 + .../sdo/standard_geom/02_Line_segment.sdo | 1 + .../sdo/standard_geom/03_Arc_segment.gml | 7 + .../sdo/standard_geom/03_Arc_segment.sdo | 1 + .../sdo/standard_geom/04_Line_string.gml | 3 + .../sdo/standard_geom/04_Line_string.sdo | 1 + .../sdo/standard_geom/05_Arc_string.gml | 7 + .../sdo/standard_geom/05_Arc_string.sdo | 1 + .../standard_geom/06_Compound_line_string.gml | 13 + .../standard_geom/06_Compound_line_string.sdo | 1 + .../standard_geom/07_Closed_line_string.gml | 3 + .../standard_geom/07_Closed_line_string.sdo | 1 + .../standard_geom/08_Closed_arc_string.gml | 7 + .../standard_geom/08_Closed_arc_string.sdo | 1 + .../standard_geom/09_Closed_mixed_line.gml | 10 + .../standard_geom/09_Closed_mixed_line.sdo | 1 + .../standard_geom/10_Self-crossing_line.gml | 3 + .../standard_geom/10_Self-crossing_line.sdo | 1 + .../oracle/sdo/standard_geom/11_Polygon.gml | 7 + .../oracle/sdo/standard_geom/11_Polygon.sdo | 1 + .../120_Multiarc___Buffer_1___0_01.gml | 36 ++ .../120_Multiarc___Buffer_1___0_01.sdo | 1 + .../sdo/standard_geom/12_Arc_polygon.gml | 15 + .../sdo/standard_geom/12_Arc_polygon.sdo | 1 + .../sdo/standard_geom/13_Compound_polygon.gml | 18 + .../sdo/standard_geom/13_Compound_polygon.sdo | 1 + .../oracle/sdo/standard_geom/14_Rectangle.gml | 7 + .../oracle/sdo/standard_geom/14_Rectangle.sdo | 1 + .../standard_geom/14_Rectangle.skip-gml-sdo | 1 + .../standard_geom/14_Rectangle.skip-sdo-sdo | 1 + .../oracle/sdo/standard_geom/15_Circle.gml | 15 + .../oracle/sdo/standard_geom/15_Circle.sdo | 1 + .../sdo/standard_geom/16_Point_cluster.gml | 17 + .../sdo/standard_geom/16_Point_cluster.sdo | 1 + .../16_Point_cluster.skip-gml-sdo | 1 + .../16_Point_cluster.skip-sdo-sdo | 1 + .../sdo/standard_geom/17_Multipoint.gml | 17 + .../sdo/standard_geom/17_Multipoint.sdo | 1 + .../oracle/sdo/standard_geom/18_Multiline.gml | 12 + .../oracle/sdo/standard_geom/18_Multiline.sdo | 1 + .../standard_geom/19_Multiline_-_crossing.gml | 12 + .../standard_geom/19_Multiline_-_crossing.sdo | 1 + .../oracle/sdo/standard_geom/20_Multiarc.gml | 20 + .../oracle/sdo/standard_geom/20_Multiarc.sdo | 1 + .../standard_geom/21_Multiline_-_closed.gml | 12 + .../standard_geom/21_Multiline_-_closed.sdo | 1 + .../standard_geom/22_Multiarc_-_touching.gml | 20 + .../standard_geom/22_Multiarc_-_touching.sdo | 1 + ...3_Multipolygon_from_Rectangle_disjoint.gml | 20 + ...3_Multipolygon_from_Rectangle_disjoint.sdo | 1 + ...lygon_from_Rectangle_disjoint.skip-gml-sdo | 1 + ...lygon_from_Rectangle_disjoint.skip-sdo-sdo | 1 + ...4_Multipolygon_from_Rectangle_touching.gml | 20 + ...4_Multipolygon_from_Rectangle_touching.sdo | 1 + ...lygon_from_Rectangle_touching.skip-gml-sdo | 1 + ...lygon_from_Rectangle_touching.skip-sdo-sdo | 1 + .../26_Multipolygon_-_multi-touch.gml | 20 + .../26_Multipolygon_-_multi-touch.sdo | 1 + .../27_Polygon_from_Rectangle_with_void.gml | 12 + .../27_Polygon_from_Rectangle_with_void.sdo | 1 + ...ygon_from_Rectangle_with_void.skip-gml-sdo | 1 + ...ygon_from_Rectangle_with_void.skip-sdo-sdo | 1 + ...gon_from_Rectangel_with_void_-_reverse.gml | 12 + ...gon_from_Rectangel_with_void_-_reverse.sdo | 1 + ...Rectangel_with_void_-_reverse.skip-gml-sdo | 1 + ...Rectangel_with_void_-_reverse.skip-sdo-sdo | 1 + .../31_Heterogeneous_collection.gml | 21 + .../31_Heterogeneous_collection.sdo | 1 + .../32_Polygon_void_island_touch.gml | 25 + .../32_Polygon_void_island_touch.sdo | 1 + 80 files changed, 1808 insertions(+), 26 deletions(-) create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverterExampleTests.java create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/utils/XMLMemoryStreamWriter.java create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-gml-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-sdo-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-gml-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-sdo-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-gml-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-sdo-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-gml-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-sdo-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-gml-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-sdo-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-gml-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-sdo-sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.sdo create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.gml create mode 100644 deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.sdo diff --git a/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/validation/GeometryFixer.java b/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/validation/GeometryFixer.java index f8a9f89f4a..3a4ec6be3c 100644 --- a/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/validation/GeometryFixer.java +++ b/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/validation/GeometryFixer.java @@ -198,7 +198,7 @@ public static Curve invertOrientation( Curve curve ) { for ( Curve memberCurve : compositeCurve ) { fixedMemberCurves.add( invertOrientation( memberCurve ) ); } - + Collections.reverse( fixedMemberCurves ); fixedCurve = new DefaultCompositeCurve( curve.getId(), curve.getCoordinateSystem(), curve.getPrecision(), fixedMemberCurves ); break; @@ -243,26 +243,30 @@ public static Ring forceOrientation( Ring ring, boolean ccw ) { final List curveSegments = curve.getCurveSegments(); for ( final CurveSegment curveSegment : curveSegments ) { final CurveSegmentType segmentType = curveSegment.getSegmentType(); - + Points points; switch ( segmentType ) { + case ARC: + points = ( (Arc) curveSegment ).getControlPoints(); + break; case ARC_STRING: points = ( (ArcString) curveSegment ).getControlPoints(); + break; case LINE_STRING_SEGMENT: points = ( (LineStringSegment) curveSegment ).getControlPoints(); - for ( int i = 0; i < points.size(); i++ ) { - final Point first = points.get( i ); - final Point second = points.get( ( i + 1 ) % points.size() ); - - shoelaceSum += ( second.get0() - first.get0() ) * ( second.get1() + first.get1() ); - } - - continue; + break; default: LOG.warn( "Calculating orientation of " + segmentType.name() + " segments is not implemented yet. Ring orientation remains unchanged." ); return ring; } + + for ( int i = 1; i < points.size(); i++ ) { + final Point first = points.get( i - 1 ); + final Point second = points.get( i ); + + shoelaceSum += ( second.get0() - first.get0() ) * ( second.get1() + first.get1() ); + } } } @@ -283,6 +287,7 @@ public static Ring invertOrientation( Ring ring ) { for ( Curve memberCurve : ring.getMembers() ) { fixedMemberCurves.add( invertOrientation( memberCurve ) ); } + Collections.reverse( fixedMemberCurves ); fixedRing = new DefaultRing( ring.getId(), ring.getCoordinateSystem(), ring.getPrecision(), fixedMemberCurves ); break; diff --git a/deegree-core/deegree-core-geometry/src/test/java/org/deegree/geometry/validation/GeometryFixerTest.java b/deegree-core/deegree-core-geometry/src/test/java/org/deegree/geometry/validation/GeometryFixerTest.java index 57dfe5e0e1..b792fe1cce 100644 --- a/deegree-core/deegree-core-geometry/src/test/java/org/deegree/geometry/validation/GeometryFixerTest.java +++ b/deegree-core/deegree-core-geometry/src/test/java/org/deegree/geometry/validation/GeometryFixerTest.java @@ -38,29 +38,36 @@ import static org.deegree.geometry.primitive.segments.CurveSegment.CurveSegmentType.ARC; import static org.deegree.geometry.primitive.segments.CurveSegment.CurveSegmentType.LINE_STRING_SEGMENT; import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.deegree.cs.coordinatesystems.ICRS; import org.deegree.cs.persistence.CRSManager; import org.deegree.geometry.GeometryFactory; +import org.deegree.geometry.composite.CompositeCurve; import org.deegree.geometry.points.Points; import org.deegree.geometry.primitive.Curve; +import org.deegree.geometry.primitive.Curve.CurveType; import org.deegree.geometry.primitive.Point; +import org.deegree.geometry.primitive.Ring; import org.deegree.geometry.primitive.segments.CurveSegment; +import org.deegree.geometry.standard.composite.DefaultCompositeCurve; import org.deegree.geometry.standard.curvesegments.DefaultLineStringSegment; import org.deegree.geometry.standard.points.PointsArray; import org.deegree.geometry.standard.primitive.DefaultCurve; +import org.deegree.geometry.standard.primitive.DefaultRing; +import org.deegree.geometry.validation.event.GeometryValidationEvent; import org.junit.Test; /** * @author Lyn Goltz - * @author last edited by: $Author: lyn $ - * - * @version $Revision: $, $Date: $ + * @author Stephan Reichhelm */ public class GeometryFixerTest { @@ -105,6 +112,112 @@ public void testInvertOrientationOfACurveWithMultipleSegments() { assertTrue( invertedCurve.isClosed() ); } + @Test + public void testForceOrientationWithArcString() { + // Test that forceOrientation accepts combinations of LineStringSegment and ArcString + Curve curve = createCurve( createFirstSegment(), createSecondSegmentAsArcString(), createThirdSegment() ); + Ring ring = createRing( curve ); + + Ring fixedA = GeometryFixer.forceOrientation( ring, true ); + List curveSegmentsA = fixedA.getCurveSegments(); + assertThat( curveSegmentsA.size(), is( 3 ) ); + + Ring fixedB = GeometryFixer.forceOrientation( ring, false ); + List curveSegmentsB = fixedB.getCurveSegments(); + assertThat( curveSegmentsB.size(), is( 3 ) ); + } + + @Test + public void testForceOrientationWithArc() { + // Test that forceOrientation accepts combinations of LineStringSegment and Arc + Curve curve = createCurve( createFirstSegment(), createSecondSegment(), createThirdSegment() ); + Ring ring = createRing( curve ); + + Ring fixedA = GeometryFixer.forceOrientation( ring, true ); + List curveSegmentsA = fixedA.getCurveSegments(); + assertThat( curveSegmentsA.size(), is( 3 ) ); + + Ring fixedB = GeometryFixer.forceOrientation( ring, false ); + List curveSegmentsB = fixedB.getCurveSegments(); + assertThat( curveSegmentsB.size(), is( 3 ) ); + } + + @Test + public void testInvertOfCompoundCurve() { + CountingValidationEventHandler valevent = new CountingValidationEventHandler(); + GeometryValidator validator = new GeometryValidator( valevent ); + + Curve curve1 = createCurve( createFirstSegment() ); + Curve curve2 = createCurve( createSecondSegment() ); + Curve curve3 = createCurve( createThirdAltSegment() ); + CompositeCurve ocomp = createCompositeCurve( curve1, curve2, curve3 ); + + assertThat( ocomp.size(), is( 3 ) ); + assertFalse( "Compound is open", ocomp.isClosed() ); + + assertTrue( "Source is valid", validator.validateGeometry( ocomp ) ); + assertEquals( "No validation errors", 0, valevent.getEvents().size() ); + + Curve icurve = GeometryFixer.invertOrientation( ocomp ); + + assertThat( "Result is CompositeCurve", icurve.getCurveType(), is( CurveType.CompositeCurve ) ); + CompositeCurve icomp = (CompositeCurve) icurve; + + assertThat( icomp.size(), is( 3 ) ); + assertFalse( "Compound is open", icomp.isClosed() ); + + assertTrue( "Inverted is valid", validator.validateGeometry( icomp ) ); + assertEquals( "No validation errors", 0, valevent.getEvents().size() ); + + // Check that the composite curve was inverted (compare inverted start with original end) + assertThat( "Invert S/E", icomp.getStartPoint().get0(), is( ocomp.getEndPoint().get0() ) ); + assertThat( "Invert S/E", icomp.getStartPoint().get1(), is( ocomp.getEndPoint().get1() ) ); + + assertThat( "Invert E/S", icomp.getEndPoint().get0(), is( ocomp.getStartPoint().get0() ) ); + assertThat( "Invert E/S", icomp.getEndPoint().get1(), is( ocomp.getStartPoint().get1() ) ); + } + + @Test + public void testInvertOfRing() { + CountingValidationEventHandler valevent = new CountingValidationEventHandler(); + GeometryValidator validator = new GeometryValidator( valevent ); + + Curve curve1 = createCurve( createFirstSegment() ); + Curve curve2 = createCurve( createSecondSegment() ); + Curve curve3 = createCurve( createThirdSegment() ); + Ring oring = createRing( curve1, curve2, curve3 ); + + assertThat( oring.getMembers().size(), is( 3 ) ); + + assertTrue( "Source is valid", validator.validateGeometry( oring ) ); + assertEquals( "No validation errors", 0, valevent.getEvents().size() ); + + Curve cinv = GeometryFixer.invertOrientation( oring ); + + assertThat( "Result is Ring", cinv.getCurveType(), is( CurveType.Ring ) ); + Ring iring = (Ring) cinv; + + assertTrue( "Inverted is valid", validator.validateGeometry( cinv ) ); + assertEquals( "Inverted has no validation errors", 0, valevent.getEvents().size() ); + + assertThat( iring.getMembers().size(), is( 3 ) ); + + // Check that the composite ring was inverted + Point second = iring.getMembers().get( 0 ).getControlPoints().get( 1 ); + int lastCurveCnt = oring.getMembers().get( 2 ).getControlPoints().size(); + Point beforeLast = oring.getMembers().get( 2 ).getControlPoints().get( lastCurveCnt - 2 ); + assertThat( "Original 2 equals inverted n-1", second.get0(), is( beforeLast.get0() ) ); + assertThat( "Original 2 equals inverted n-1", second.get1(), is( beforeLast.get1() ) ); + } + + private CompositeCurve createCompositeCurve( Curve... curves ) { + return new DefaultCompositeCurve( "id", CRS, null, Arrays.asList( curves ) ); + } + + private Ring createRing( Curve... curves ) { + return new DefaultRing( "id", CRS, null, Arrays.asList( curves ) ); + } + private Curve createCurve() { return createCurve( createFirstSegment(), createSecondSegment(), createThirdSegment() ); } @@ -134,6 +247,14 @@ private CurveSegment createSecondSegment() { return GEOM_FACTORY.createArc( point1, point2, point3 ); } + private CurveSegment createSecondSegmentAsArcString() { + Point point1 = GEOM_FACTORY.createPoint( "idpa1", 553976.438, 5937165.552, CRS ); + Point point2 = GEOM_FACTORY.createPoint( "idpa2", 553974.601, 5937161.092, CRS ); + Point point3 = GEOM_FACTORY.createPoint( "idpa3", 553969.988, 5937159.683, CRS ); + Points points = new PointsArray( point1, point2, point3 ); + return GEOM_FACTORY.createArcString( points ); + } + private CurveSegment createThirdSegment() { Point point1 = GEOM_FACTORY.createPoint( "idp21", 553969.988, 5937159.683, CRS ); Point point2 = GEOM_FACTORY.createPoint( "idp22", 553938.699, 5937160.863, CRS ); @@ -149,4 +270,31 @@ private CurveSegment createThirdSegment() { return new DefaultLineStringSegment( points ); } + private CurveSegment createThirdAltSegment() { + // Create non closing this segment + Point point1 = GEOM_FACTORY.createPoint( "idp21", 553969.988, 5937159.683, CRS ); + Point point2 = GEOM_FACTORY.createPoint( "idp22", 553938.699, 5937160.863, CRS ); + Point point3 = GEOM_FACTORY.createPoint( "idp23", 553903.017, 5937162.213, CRS ); + Point point4 = GEOM_FACTORY.createPoint( "idp24", 553897.200, 5937200.469, CRS ); + Point point5 = GEOM_FACTORY.createPoint( "idp25", 553897.613, 5937236.333, CRS ); + Points points = new PointsArray( point1, point2, point3, point4, point5 ); + return new DefaultLineStringSegment( points ); + } + + class CountingValidationEventHandler implements GeometryValidationEventHandler { + + private final List events = new ArrayList(); + + @Override + public boolean fireEvent( GeometryValidationEvent event ) { + events.add( event ); + // to count all errors return true + return true; + } + + List getEvents() { + return events; + } + + } } diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/OracleObjectTools.java b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/OracleObjectTools.java index 51fc731d3b..f54a38d6cb 100644 --- a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/OracleObjectTools.java +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/OracleObjectTools.java @@ -40,6 +40,8 @@ import java.sql.SQLException; +import org.deegree.sqldialect.oracle.sdo.SDOGeometryConverter.GeomHolder; + import oracle.jdbc.OracleConnection; import oracle.sql.ARRAY; import oracle.sql.ArrayDescriptor; @@ -114,6 +116,11 @@ protected static double[] fromDoubleArray( STRUCT struct, final double defaultVa return fromDoubleArray( struct.getOracleAttributes(), defaultValue ); } + protected static STRUCT toSDOGeometry( GeomHolder h, OracleConnection conn ) + throws SQLException { + return toSDOGeometry( h.gtype, h.srid, h.elem_info, h.ordinates, conn); + } + /** * Convert SDO_Geometry informations into Oracle JDBC STRUCT element */ diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverter.java b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverter.java index 8f97d54b85..58a9b8a6e4 100644 --- a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverter.java +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/main/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverter.java @@ -349,7 +349,7 @@ else if ( sdo.gtype_tt == SDOGTypeTT.UNKNOWN ) case SDOEType.POLYGON_RING_INTERIOR: // see above NOTE 1 case SDOEType.POLYGON_RING_EXTERIOR: case SDOEType.POLYGON_RING_UNKNOWN: - Ring rng = handleSimpleRing( sdo ); + Ring rng = handleSimpleRing( sdo, etype ); switch ( etype ) { case SDOEType.POLYGON_RING_INTERIOR: ringi.add( rng ); @@ -642,7 +642,7 @@ else if ( intpr == 2 ) *
  • 4) circle; three distinct points on the circle
  • * */ - private Ring handleSimpleRing( GeomHolder sdo ) + private Ring handleSimpleRing( GeomHolder sdo, int etype ) throws SQLException { int intpr = sdo.elem_info[sdo.elemoff + 2]; int off = sdo.elem_info[sdo.elemoff]; @@ -672,13 +672,14 @@ else if ( intpr == 2 || intpr == 4 ) { Point b = _gf.createPoint( null, ll.get0(), ur.get1(), sdo.crs ); Point c = _gf.createPoint( null, ur.get0(), ur.get1(), sdo.crs ); Point d = _gf.createPoint( null, ur.get0(), ll.get1(), sdo.crs ); - Points rngp = null; - if ( ll.get0() < ur.get0() || ll.get1() < ur.get1() ) { - rngp = new PointsArray( a, b, c, d, a ); - } else { - rngp = new PointsArray( a, d, c, b, a ); + rng = _gf.createLinearRing( null, sdo.crs, new PointsArray( a, b, c, d, a ) ); + + // enforce orientations if type of ring is known + if ( etype == SDOEType.POLYGON_RING_INTERIOR ) { + rng = forceOrientation( rng, false ); + } else if ( etype == SDOEType.POLYGON_RING_EXTERIOR ) { + rng = forceOrientation( rng, true ); } - rng = _gf.createLinearRing( null, sdo.crs, rngp ); } if ( rng == null ) { @@ -729,9 +730,7 @@ public Object fromGeometry( OracleConnection conn, int srid, Geometry geometry ) } @SuppressWarnings("unchecked") - public Object fromGeometry( OracleConnection conn, int srid, Geometry geometry, boolean allowJTSfallback ) - throws SQLException { - + protected GeomHolder fromGeometry( int srid, Geometry geometry, boolean allowJTSfallback ) { List info = new LinkedList(); List pnts = new LinkedList(); int gtypett = SDOGTypeTT.UNKNOWN; @@ -780,7 +779,23 @@ public Object fromGeometry( OracleConnection conn, int srid, Geometry geometry, int[] elemInfo = buildResultElemeInfo( dim, info ); int gtyp = ( 1000 * dim ) + gtypett; - return OracleObjectTools.toSDOGeometry( gtyp, srid, elemInfo, ordinates, conn ); + LOG.trace( "fromGeometry: MDSYS.SDO_GEOMETRY( {}, {}, NULL, MDSYS.SDO_ELEM_INFO_ARRAY{}, MDSYS.SDO_ORDINATE_ARRAY{} )", + gtyp, srid, elemInfo, ordinates ); + + return new GeomHolder( gtyp, srid, null, elemInfo, ordinates, null ); + } + + // no parse able geometry found + return null; + } + + + public Object fromGeometry( OracleConnection conn, int srid, Geometry geometry, boolean allowJTSfallback ) + throws SQLException { + + GeomHolder holder = fromGeometry( srid, geometry, allowJTSfallback ); + if ( holder != null ) { + return OracleObjectTools.toSDOGeometry( holder, conn ); } else { // create error message } @@ -1040,7 +1055,7 @@ private void buildSurface( List info, List pnts, Surface geometr if ( isSimple ) { buildCurveSegmentSimple( info, pnts, iseg.get( 0 ), false ); } else { - info.add( new Triplet( pnts.size(), SDOEType.COMPOUND_POLYGON_RING_INTERIOR, eseg.size() ) ); + info.add( new Triplet( pnts.size(), SDOEType.COMPOUND_POLYGON_RING_INTERIOR, iseg.size() ) ); for ( int i = 0, j = iseg.size(); i < j; i++ ) { buildCurveSegment( info, pnts, iseg.get( i ), i > 0 ); } @@ -1049,6 +1064,21 @@ private void buildSurface( List info, List pnts, Surface geometr } } + /** + * Add points to internal point list + * + *

    + * Note:if the first points equals the lasts point and the geometry should be continued the first + * point will be skipped. This is reduces duplicate points for example with AAA / ALKIS geometries. + *

    + * + * @param pnts + * current list of points + * @param add + * points to add + * @param continueGeom + * skipp first point if it equals last point in list + */ private void addPnts( List pnts, Points add, boolean continueGeom ) { int off = 0; diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverterExampleTests.java b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverterExampleTests.java new file mode 100644 index 0000000000..a79c4e14fe --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/oracle/sdo/SDOGeometryConverterExampleTests.java @@ -0,0 +1,258 @@ +package org.deegree.sqldialect.oracle.sdo; + +import static org.deegree.gml.GMLOutputFactory.createGMLStreamWriter; +import static org.deegree.gml.GMLVersion.GML_32; +import static org.deegree.gml.geometry.GMLGeometryVersionHelper.getGeometryReader; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.stream.XMLStreamWriter; + +import org.deegree.commons.utils.FileUtils; +import org.deegree.commons.xml.stax.IndentingXMLStreamWriter; +import org.deegree.commons.xml.stax.XMLStreamReaderWrapper; +import org.deegree.geometry.Geometry; +import org.deegree.gml.GMLStreamWriter; +import org.deegree.gml.geometry.GMLGeometryReader; +import org.deegree.sqldialect.oracle.sdo.SDOGeometryConverter.GeomHolder; +import org.deegree.sqldialect.utils.XMLMemoryStreamWriter; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameter; +import org.junit.runners.Parameterized.Parameters; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@RunWith(Parameterized.class) +public class SDOGeometryConverterExampleTests { + + private static final Logger LOG = LoggerFactory.getLogger( SDOGeometryConverterExampleTests.class ); + + private static File TEST_DIR = new File( "src/test/resources/test/oracle/sdo" ); + + private static final String NULL = "NULL"; + + private static final String SDO_GEOM_PAT_1 = "(?:MDSYS\\.)?SDO_GEOMETRY\\s*\\(\\s*([^,\\s]+)\\s*,\\s*([^,\\s]+)\\s*,\\s*"; + + private static final String SDO_GEOM_PAT_2 = "(?:(?:(?:MDSYS\\.)?SDO_POINT_TYPE\\s*\\(\\s*([^,\\s]+)\\s*,\\s*([^,\\s]+)\\s*,\\s*([^,\\s\\)]+)\\s*\\))|(NULL))\\s*,\\s*"; + + private static final String SDO_GEOM_PAT_3 = "(?:(?:(?:(?:MDSYS\\.)?SDO_ELEM_INFO_ARRAY\\s*\\(([^\\)]*)\\))|(NULL)))\\s*,\\s*"; + + private static final String SDO_GEOM_PAT_4 = "(?:(?:(?:(?:MDSYS\\.)?SDO_ORDINATE_ARRAY\\s*\\(([^\\)]*)\\))|(NULL)))\\s*\\)\\s*"; + + private static final Pattern SDO_PAT = Pattern.compile( SDO_GEOM_PAT_1 + SDO_GEOM_PAT_2 + SDO_GEOM_PAT_3 + + SDO_GEOM_PAT_4, Pattern.CASE_INSENSITIVE ); + + final SDOGeometryConverter converter = new SDOGeometryConverter(); + + @Parameter(0) + public File sdoFile; + + @Parameter(1) + public File gmlFile; + + @Parameter(2) + public String testName; + + @Parameter(3) + public boolean skipSdoSdo; + + @Parameter(4) + public boolean skipGmlSdo; + + @Parameter(5) + public boolean skipSdoGml; + + @Parameters(name = "{index}: {2}") + public static Collection getFiles() + throws IOException { + Collection params = new LinkedList(); + String baseName = TEST_DIR.getAbsolutePath(); + + for ( File fSDO : FileUtils.findFilesForExtensions( TEST_DIR, true, ".sdo" ) ) { + String base = FileUtils.getBasename( fSDO.getAbsoluteFile() ); + String name = base; + if ( name.startsWith( baseName ) ) + name = name.substring( baseName.length() + 1 ); + + File fGML = new File( base + ".gml" ); + boolean skipSdoSdo = new File( base + ".skip-sdo-sdo" ).exists(); + boolean skipGmlSdo = new File( base + ".skip-gml-sdo" ).exists(); + boolean skipSdoGml = new File( base + ".skip-sdo-gml" ).exists(); + + if ( fSDO.isFile() && fGML.isFile() ) { + params.add( new Object[] { fSDO, fGML, name, skipSdoSdo, skipGmlSdo, skipSdoGml } ); + } else { + LOG.warn( "Could not find test data same {}.sdo/.gml", name ); + } + } + return params; + } + + @Test + public void testConvertSdoGeometryAndBack() + throws Exception { + GeomHolder sdo = loadFromFile( sdoFile ); + // inspector.reset(); + Geometry geom = readGMLGeometry( gmlFile ); + + // Test SDO -> Geom -> SDO + // inspector.reset(); + Geometry sdoGeom = converter.toGeometry( sdo, null ); + GeomHolder sdoGeomSdo = converter.fromGeometry( sdo.srid, sdoGeom, false ); + + String sdoGeomString = writeGMLGeometry( sdoGeom ); + String sdoString = toString( sdo ); + String sdoGeomSdoString = toString( sdoGeomSdo ); + assertNotNull( "Convertable 1", sdoString ); + assertNotNull( "Convertable 2", sdoGeomSdoString ); + if ( !skipSdoSdo ) { + assertEquals( "SDO -> Geom -> SDO", sdoString, sdoGeomSdoString ); + } + + // Test Geom -> SDO -> Geom + GeomHolder geomSdo = converter.fromGeometry( sdo.srid, geom, false ); + // inspector.reset(); + Geometry geomSdoGeom = converter.toGeometry( geomSdo, null ); + + String geomSdoString = toString( geomSdo ); + String geomString = writeGMLGeometry( geom ); + String geomSdoGeomString = writeGMLGeometry( geomSdoGeom ); + assertNotNull( "Convertable 3", geomString ); + assertNotNull( "Convertable 4", geomSdoGeomString ); + assertEquals( "Geom -> SDO -> Geom", geomString, geomSdoGeomString ); + + // Sample matches + if ( !skipGmlSdo ) { + assertEquals( ".gml matches .sdo", sdoString, geomSdoString ); + } + if ( !skipSdoGml ) { + assertEquals( ".sdo matches .gml", geomString, sdoGeomString ); + } + } + + private String replaceGmlIDs( String text ) { + StringBuffer result = new StringBuffer(); + Pattern pattern = Pattern.compile( "gml:id=\"[^\"]+\"" ); + Matcher matcher = pattern.matcher( text ); + int id = 0; + while ( matcher.find() ) { + matcher.appendReplacement( result, "gml:id=\"ID_" + ( ++id ) + "\"" ); + } + matcher.appendTail( result ); + return result.toString(); + } + + private Geometry readGMLGeometry( File file ) + throws Exception { + XMLStreamReaderWrapper xmlReader = new XMLStreamReaderWrapper( file.toURI().toURL() ); + xmlReader.next(); + + GMLGeometryReader rdr = getGeometryReader( xmlReader.getName(), xmlReader ); + return rdr.parse( xmlReader ); + } + + private String writeGMLGeometry( Geometry geom ) + throws Exception { + XMLMemoryStreamWriter memoryWriter = new XMLMemoryStreamWriter(); + XMLStreamWriter xmlWriter = new IndentingXMLStreamWriter( memoryWriter.getXMLStreamWriter() ); + GMLStreamWriter exporter = createGMLStreamWriter( GML_32, xmlWriter ); + + exporter.write( geom ); + return replaceGmlIDs( memoryWriter.toString() ); + } + + private GeomHolder loadFromFile( File f ) + throws IOException { + @SuppressWarnings("resource") + String output = new Scanner( f ).useDelimiter( "\\Z" ).next().replaceAll( "[\r\n]+", " " ); + Matcher m = SDO_PAT.matcher( output ); + + if ( m.matches() ) { + int gtype; + int srid; + double point[]; + int[] elem_info; + double[] ordinates; + + gtype = Integer.parseInt( m.group( 1 ) ); + srid = NULL.equalsIgnoreCase( m.group( 2 ) ) ? -1 : Integer.parseInt( m.group( 2 ) ); + if ( NULL.equalsIgnoreCase( m.group( 6 ) ) ) { + point = null; + } else { + point = new double[] { NULL.equalsIgnoreCase( m.group( 3 ) ) ? null + : Double.parseDouble( m.group( 3 ) ), + NULL.equalsIgnoreCase( m.group( 4 ) ) ? null + : Double.parseDouble( m.group( 4 ) ), + NULL.equalsIgnoreCase( m.group( 5 ) ) ? null + : Double.parseDouble( m.group( 5 ) ) }; + } + if ( NULL.equalsIgnoreCase( m.group( 8 ) ) ) { + elem_info = null; + } else { + List lst = new ArrayList(); + + for ( String se : m.group( 7 ).split( "\\s*,\\s*" ) ) { + lst.add( Integer.parseInt( se.trim() ) ); + } + elem_info = new int[lst.size()]; + for ( int i = 0; i < elem_info.length; i++ ) { + elem_info[i] = lst.get( i ); + } + } + + if ( NULL.equalsIgnoreCase( m.group( 10 ) ) ) { + ordinates = null; + } else { + List lst = new ArrayList(); + + for ( String se : m.group( 9 ).split( "\\s*,\\s*" ) ) { + lst.add( Double.parseDouble( se.trim() ) ); + } + ordinates = new double[lst.size()]; + for ( int i = 0; i < ordinates.length; i++ ) { + ordinates[i] = lst.get( i ); + } + } + return new GeomHolder( gtype, srid, point, elem_info, ordinates, null ); + } + return null; + } + + private String toString( GeomHolder h ) { + StringBuilder sb = new StringBuilder(); + sb.append( "MDSYS.SDO_GEOMETRY( " ); + sb.append( h.gtype ).append( ", " ); + sb.append( h.srid < 0 ? NULL : h.srid ).append( ", " ); + sb.append( NULL ).append( ", " ); + sb.append( "MDSYS.SDO_ELEM_INFO_ARRAY( " ); + for ( int i = 0; i < h.elem_info.length; i++ ) { + if ( i > 0 ) { + sb.append( ", " ); + } + sb.append( h.elem_info[i] ); + } + sb.append( "), " ); + sb.append( "MDSYS.SDO_ORDINATE_ARRAY( " ); + for ( int i = 0; i < h.ordinates.length; i++ ) { + if ( i > 0 ) { + sb.append( ", " ); + } + sb.append( h.ordinates[i] ); + } + sb.append( ") " ); + sb.append( " )" ); + return sb.toString(); + } +} diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/utils/XMLMemoryStreamWriter.java b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/utils/XMLMemoryStreamWriter.java new file mode 100644 index 0000000000..c2202f2c24 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/java/org/deegree/sqldialect/utils/XMLMemoryStreamWriter.java @@ -0,0 +1,115 @@ +//$HeadURL$ +/*---------------------------------------------------------------------------- +This file is part of deegree, http://deegree.org/ +Copyright (C) 2001-2017 by: +Department of Geography, University of Bonn +and +lat/lon GmbH + +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free +Software Foundation; either version 2.1 of the License, or (at your option) +any later version. +This library is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +details. +You should have received a copy of the GNU Lesser General Public License +along with this library; if not, write to the Free Software Foundation, Inc., +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Contact information: + +lat/lon GmbH +Aennchenstr. 19, 53177 Bonn +Germany +http://lat-lon.de/ + +Department of Geography, University of Bonn +Prof. Dr. Klaus Greve +Postfach 1147, 53001 Bonn +Germany +http://www.geographie.uni-bonn.de/deegree/ + +e-mail: info@deegree.org +----------------------------------------------------------------------------*/ +package org.deegree.sqldialect.utils; + +import static org.junit.Assert.fail; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * COPY FROM {@link org.deegree.junit.XMLMemoryStreamWriter) + */ +public class XMLMemoryStreamWriter { + + private static final Logger LOG = LoggerFactory.getLogger( XMLMemoryStreamWriter.class ); + + private XMLStreamWriter xmlWriter; + + private StringWriter writer; + + /** + * COPY FROM {@link org.deegree.junit.XMLMemoryStreamWriter#getXMLStreamWriter() + */ + public XMLStreamWriter getXMLStreamWriter() { + if ( xmlWriter == null ) { + writer = new StringWriter(); + XMLOutputFactory factory = XMLOutputFactory.newInstance(); + factory.setProperty( "javax.xml.stream.isRepairingNamespaces", Boolean.TRUE ); + try { + xmlWriter = factory.createXMLStreamWriter( writer ); + } catch ( XMLStreamException e ) { + fail( "error while creating the xml writer: " + e.getMessage() ); + } + } + return xmlWriter; + } + + /** + * COPY FROM {@link org.deegree.junit.XMLMemoryStreamWriter#getReader()) + */ + public Reader getReader() { + if ( xmlWriter != null ) { + try { + xmlWriter.flush(); + xmlWriter.close(); + xmlWriter = null; + writer.close(); + } catch ( IOException e ) { + throw new RuntimeException( "error while closing StringWriter: " + e.getMessage() ); + } catch ( XMLStreamException e ) { + throw new RuntimeException( "error while closing XMLStreamWriter: " + e.getMessage() ); + } + } + return new StringReader( writer.getBuffer().toString() ); + } + + @Override + public String toString() { + StringBuffer sb = new StringBuffer(); + BufferedReader reader = new BufferedReader( getReader() ); + String line = null; + try { + while ( ( line = reader.readLine() ) != null ) { + sb.append( line ); + sb.append( '\n' ); + } + } catch ( IOException e ) { + LOG.info( e.getMessage() ); + } + return sb.toString(); + } +} \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.gml new file mode 100644 index 0000000000..4507ac5fb7 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.gml @@ -0,0 +1,469 @@ + + + + + + + + 666470.528000 5559687.261000 666468.860000 5559689.849000 + + + 666468.860000 5559689.849000 666453.713000 5559680.062000 + + + 666453.713000 5559680.062000 666436.238000 5559648.065000 + + + 666436.238000 5559648.065000 666427.924000 5559601.234000 + + + 666427.924000 5559601.234000 666425.919000 5559590.188000 + + + 666425.919000 5559590.188000 666424.521000 5559583.279000 + + + 666424.521000 5559583.279000 666423.733000 5559579.477000 + + + 666423.733000 5559579.477000 666421.463000 5559569.101000 + + + 666421.463000 5559569.101000 666418.971000 5559558.724000 + + + 666418.971000 5559558.724000 666416.428000 5559548.907000 + + + 666416.428000 5559548.907000 666413.714000 5559539.217000 + + + 666413.714000 5559539.217000 666410.597000 5559528.249000 + + + 666410.597000 5559528.249000 666407.984000 5559518.753000 + + + 666407.984000 5559518.753000 666405.481000 5559509.292000 + + + 666405.481000 5559509.292000 666403.044000 5559499.548000 + + + 666403.044000 5559499.548000 666400.594000 5559488.927000 + + + 666400.594000 5559488.927000 666398.256000 5559478.043000 + + + 666398.256000 5559478.043000 666396.329000 5559468.349000 + + + 666396.329000 5559468.349000 666394.498000 5559458.557000 + + + 666394.498000 5559458.557000 666392.806000 5559448.763000 + + + 666392.806000 5559448.763000 666389.497000 5559428.784000 + + + 666389.497000 5559428.784000 666386.724000 5559412.345000 + + + 666386.724000 5559412.345000 666384.914000 5559402.217000 + + + 666384.914000 5559402.217000 666382.705000 5559392.210000 + + + 666382.705000 5559392.210000 666380.099000 5559382.114000 + + + 666380.099000 5559382.114000 666377.166000 5559372.284000 + + + 666377.166000 5559372.284000 666376.319000 5559369.854000 + + + 666376.319000 5559369.854000 666372.996000 5559360.152000 + + + 666372.996000 5559360.152000 666368.284000 5559348.318000 + + + 666368.284000 5559348.318000 666366.132000 5559343.480000 + + + 666366.132000 5559343.480000 666367.107000 5559341.110000 + + + 666367.107000 5559341.110000 666420.144000 5559323.173000 + + + 666420.144000 5559323.173000 666457.445000 5559367.195000 + + + 666457.445000 5559367.195000 666482.526000 5559344.015000 + + + 666482.526000 5559344.015000 666478.664000 5559373.512000 + + + 666478.664000 5559373.512000 666482.662000 5559374.967000 + + + 666482.662000 5559374.967000 666551.944000 5559428.124000 + + + 666551.944000 5559428.124000 666563.131000 5559406.481000 + + + 666563.131000 5559406.481000 666561.840000 5559390.365000 + + + 666561.840000 5559390.365000 666567.082000 5559390.393000 + + + 666567.082000 5559390.393000 666601.084000 5559390.613000 + + + 666601.084000 5559390.613000 666619.390000 5559390.674000 + + + 666619.390000 5559390.674000 666618.501000 5559370.108000 + + + 666618.501000 5559370.108000 666607.847000 5559334.122000 + + + 666607.847000 5559334.122000 666627.118000 5559333.106000 + + + 666627.118000 5559333.106000 666629.262000 5559396.534000 + + + 666629.262000 5559396.534000 666626.125000 5559396.193000 + + + 666626.125000 5559396.193000 666621.435000 5559395.948000 + + + 666621.435000 5559395.948000 666618.323000 5559396.526000 + + + 666618.323000 5559396.526000 666614.618000 5559397.886000 + + + 666614.618000 5559397.886000 666596.545000 5559421.448000 + + + 666596.545000 5559421.448000 666594.913000 5559424.413000 + + + 666594.913000 5559424.413000 666594.531000 5559426.281000 + + + 666594.531000 5559426.281000 666514.838000 5559534.639000 + + + 666514.838000 5559534.639000 666511.699000 5559532.746000 + + + 666511.699000 5559532.746000 666508.903000 5559530.756000 + + + 666508.903000 5559530.756000 666506.344000 5559527.659000 + + + 666506.344000 5559527.659000 666505.237000 5559524.268000 + + + 666505.237000 5559524.268000 666505.737000 5559520.802000 + + + 666505.737000 5559520.802000 666507.365000 5559517.102000 + + + 666507.365000 5559517.102000 666511.231000 5559512.426000 + + + 666511.231000 5559512.426000 666514.494000 5559510.658000 + + + 666514.494000 5559510.658000 666518.129000 5559507.128000 + + + 666518.129000 5559507.128000 666519.786000 5559504.330000 + + + 666519.786000 5559504.330000 666521.944000 5559500.685000 + + + 666521.944000 5559500.685000 666522.075000 5559496.373000 + + + 666522.075000 5559496.373000 666519.401000 5559499.733000 + + + 666519.401000 5559499.733000 666514.841000 5559503.805000 + + + 666514.841000 5559503.805000 666511.413000 5559507.413000 + + + 666511.413000 5559507.413000 666508.642000 5559509.045000 + + + 666508.642000 5559509.045000 666504.674000 5559510.446000 + + + 666504.674000 5559510.446000 666500.990000 5559512.411000 + + + 666500.990000 5559512.411000 666498.685000 5559513.858000 + + + 666498.685000 5559513.858000 666496.782000 5559516.791000 + + + 666496.782000 5559516.791000 666496.153000 5559520.022000 + + + 666496.153000 5559520.022000 666495.800000 5559521.836000 + + + 666495.800000 5559521.836000 666496.557000 5559525.573000 + + + 666496.557000 5559525.573000 666498.806000 5559529.070000 + + + 666498.806000 5559529.070000 666501.591000 5559532.341000 + + + 666501.591000 5559532.341000 666504.263000 5559534.248000 + + + 666504.263000 5559534.248000 666510.474000 5559537.485000 + + + 666510.474000 5559537.485000 666512.455000 5559537.886000 + + + 666512.455000 5559537.886000 666516.626000 5559539.553000 + + + 666516.626000 5559539.553000 666591.654000 5559570.555000 + + + 666591.654000 5559570.555000 666598.919000 5559573.740000 + + + 666598.919000 5559573.740000 666605.313000 5559578.419000 + + + 666605.313000 5559578.419000 666616.220000 5559564.430000 + + + 666616.220000 5559564.430000 666617.041000 5559564.997000 + + + 666617.041000 5559564.997000 666606.055000 5559579.089000 + + + 666606.055000 5559579.089000 666580.690000 5559597.895000 + + + 666580.690000 5559597.895000 666573.187000 5559607.859000 + + + 666573.187000 5559607.859000 666577.933000 5559654.898000 + + + 666577.933000 5559654.898000 666595.353000 5559674.011000 + + + 666595.353000 5559674.011000 666636.944000 5559723.417000 + + + 666636.944000 5559723.417000 666643.253000 5559731.626000 + + + 666643.253000 5559731.626000 666650.966000 5559740.765000 + + + 666650.966000 5559740.765000 666663.592000 5559757.529000 + + + 666663.592000 5559757.529000 666672.976000 5559769.118000 + + + 666672.976000 5559769.118000 666677.848000 5559773.457000 + + + 666677.848000 5559773.457000 666675.791000 5559782.320000 + + + 666675.791000 5559782.320000 666671.759000 5559779.706000 + + + 666671.759000 5559779.706000 666668.206000 5559777.403000 + + + 666668.206000 5559777.403000 666664.850000 5559775.226000 + + + 666664.850000 5559775.226000 666657.106000 5559770.205000 + + + 666657.106000 5559770.205000 666654.919000 5559768.786000 + + + 666654.919000 5559768.786000 666644.882000 5559762.279000 + + + 666644.882000 5559762.279000 666642.105000 5559760.478000 + + + 666642.105000 5559760.478000 666640.371000 5559759.354000 + + + 666640.371000 5559759.354000 666616.096000 5559743.613000 + + + 666616.096000 5559743.613000 666609.942000 5559739.623000 + + + 666609.942000 5559739.623000 666590.086000 5559726.748000 + + + 666590.086000 5559726.748000 666579.206000 5559719.693000 + + + 666579.206000 5559719.693000 666564.077000 5559709.883000 + + + 666564.077000 5559709.883000 666554.741000 5559703.830000 + + + 666554.741000 5559703.830000 666552.650000 5559702.474000 + + + 666552.650000 5559702.474000 666545.399000 5559697.773000 + + + 666545.399000 5559697.773000 666538.067000 5559693.019000 + + + 666538.067000 5559693.019000 666535.679000 5559691.471000 + + + 666535.679000 5559691.471000 666524.072000 5559683.944000 + + + 666524.072000 5559683.944000 666515.265000 5559678.233000 + + + 666515.265000 5559678.233000 666512.058000 5559676.154000 + + + 666512.058000 5559676.154000 666487.819000 5559660.437000 + + + 666487.819000 5559660.437000 666477.749000 5559676.059000 + + + 666477.749000 5559676.059000 666470.528000 5559687.261000 + + + + + + + + + + + + + 666494.364000 5559518.358000 666495.539000 5559515.888000 + + + 666495.539000 5559515.888000 666496.765000 5559513.308000 + + + 666496.765000 5559513.308000 666499.442000 5559510.525000 + + + 666499.442000 5559510.525000 666503.181000 5559508.052000 + + + 666503.181000 5559508.052000 666506.273000 5559505.655000 + + + 666506.273000 5559505.655000 666510.793000 5559502.555000 + + + 666510.793000 5559502.555000 666513.565000 5559498.599000 + + + 666513.565000 5559498.599000 666515.282000 5559493.630000 + + + 666515.282000 5559493.630000 666515.800000 5559490.518000 + + + 666515.800000 5559490.518000 666515.641000 5559486.993000 + + + 666515.641000 5559486.993000 666535.657000 5559453.048000 + + + 666535.657000 5559453.048000 666504.210000 5559425.880000 + + + 666504.210000 5559425.880000 666470.985000 5559463.039000 + + + 666470.985000 5559463.039000 666503.875000 5559480.740000 + + + 666503.875000 5559480.740000 666503.330000 5559482.443000 + + + 666503.330000 5559482.443000 666503.366000 5559483.969000 + + + 666503.366000 5559483.969000 666504.081000 5559486.471000 + + + 666504.081000 5559486.471000 666505.494000 5559491.411000 + + + 666505.494000 5559491.411000 666505.553000 5559496.083000 + + + 666505.553000 5559496.083000 666503.957000 5559499.268000 + + + 666503.957000 5559499.268000 666500.931000 5559501.966000 + + + 666500.931000 5559501.966000 666495.427000 5559504.950000 + + + 666495.427000 5559504.950000 666493.356000 5559509.235000 + + + 666493.356000 5559509.235000 666493.218000 5559512.662000 + + + 666493.218000 5559512.662000 666494.364000 5559518.358000 + + + + + + + \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.sdo new file mode 100644 index 0000000000..0560d18320 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/RingExtInt_01.sdo @@ -0,0 +1,311 @@ +MDSYS.SDO_GEOMETRY( + 2003, + 25832, + NULL, + MDSYS.SDO_ELEM_INFO_ARRAY( + 1, 1005, 124, + 1, 2, 1, + 3, 2, 1, + 5, 2, 1, + 7, 2, 1, + 9, 2, 1, + 11, 2, 1, + 13, 2, 1, + 15, 2, 1, + 17, 2, 1, + 19, 2, 1, + 21, 2, 1, + 23, 2, 1, + 25, 2, 1, + 27, 2, 1, + 29, 2, 1, + 31, 2, 1, + 33, 2, 1, + 35, 2, 1, + 37, 2, 1, + 39, 2, 1, + 41, 2, 1, + 43, 2, 1, + 45, 2, 1, + 47, 2, 1, + 49, 2, 1, + 51, 2, 1, + 53, 2, 1, + 55, 2, 1, + 57, 2, 1, + 59, 2, 1, + 61, 2, 1, + 63, 2, 1, + 65, 2, 1, + 67, 2, 1, + 69, 2, 1, + 71, 2, 1, + 73, 2, 1, + 75, 2, 1, + 77, 2, 1, + 79, 2, 1, + 81, 2, 1, + 83, 2, 1, + 85, 2, 1, + 87, 2, 1, + 89, 2, 1, + 91, 2, 1, + 93, 2, 1, + 95, 2, 1, + 97, 2, 1, + 99, 2, 1, + 101, 2, 1, + 103, 2, 1, + 105, 2, 1, + 107, 2, 1, + 109, 2, 1, + 111, 2, 1, + 113, 2, 1, + 115, 2, 1, + 117, 2, 1, + 119, 2, 1, + 121, 2, 1, + 123, 2, 1, + 125, 2, 1, + 127, 2, 1, + 129, 2, 1, + 131, 2, 1, + 133, 2, 1, + 135, 2, 1, + 137, 2, 1, + 139, 2, 1, + 141, 2, 1, + 143, 2, 1, + 145, 2, 1, + 147, 2, 1, + 149, 2, 1, + 151, 2, 1, + 153, 2, 1, + 155, 2, 1, + 157, 2, 1, + 159, 2, 1, + 161, 2, 1, + 163, 2, 1, + 165, 2, 1, + 167, 2, 1, + 169, 2, 1, + 171, 2, 1, + 173, 2, 1, + 175, 2, 1, + 177, 2, 1, + 179, 2, 1, + 181, 2, 1, + 183, 2, 1, + 185, 2, 1, + 187, 2, 1, + 189, 2, 1, + 191, 2, 1, + 193, 2, 1, + 195, 2, 1, + 197, 2, 1, + 199, 2, 1, + 201, 2, 1, + 203, 2, 1, + 205, 2, 1, + 207, 2, 1, + 209, 2, 1, + 211, 2, 1, + 213, 2, 1, + 215, 2, 1, + 217, 2, 1, + 219, 2, 1, + 221, 2, 1, + 223, 2, 1, + 225, 2, 1, + 227, 2, 1, + 229, 2, 1, + 231, 2, 1, + 233, 2, 1, + 235, 2, 1, + 237, 2, 1, + 239, 2, 1, + 241, 2, 1, + 243, 2, 1, + 245, 2, 1, + 247, 2, 1, + 251, 2005, 25, + 251, 2, 1, + 253, 2, 1, + 255, 2, 1, + 257, 2, 1, + 259, 2, 1, + 261, 2, 1, + 263, 2, 1, + 265, 2, 1, + 267, 2, 1, + 269, 2, 1, + 271, 2, 1, + 273, 2, 1, + 275, 2, 1, + 277, 2, 1, + 279, 2, 1, + 281, 2, 1, + 283, 2, 1, + 285, 2, 1, + 287, 2, 1, + 289, 2, 1, + 291, 2, 1, + 293, 2, 1, + 295, 2, 1, + 297, 2, 1, + 299, 2, 1 + ), + MDSYS.SDO_ORDINATE_ARRAY( + 666470.528, 5559687.261, + 666468.860, 5559689.849, + 666453.713, 5559680.062, + 666436.238, 5559648.065, + 666427.924, 5559601.234, + 666425.919, 5559590.188, + 666424.521, 5559583.279, + 666423.733, 5559579.477, + 666421.463, 5559569.101, + 666418.971, 5559558.724, + 666416.428, 5559548.907, + 666413.714, 5559539.217, + 666410.597, 5559528.249, + 666407.984, 5559518.753, + 666405.481, 5559509.292, + 666403.044, 5559499.548, + 666400.594, 5559488.927, + 666398.256, 5559478.043, + 666396.329, 5559468.349, + 666394.498, 5559458.557, + 666392.806, 5559448.763, + 666389.497, 5559428.784, + 666386.724, 5559412.345, + 666384.914, 5559402.217, + 666382.705, 5559392.210, + 666380.099, 5559382.114, + 666377.166, 5559372.284, + 666376.319, 5559369.854, + 666372.996, 5559360.152, + 666368.284, 5559348.318, + 666366.132, 5559343.480, + 666367.107, 5559341.110, + 666420.144, 5559323.173, + 666457.445, 5559367.195, + 666482.526, 5559344.015, + 666478.664, 5559373.512, + 666482.662, 5559374.967, + 666551.944, 5559428.124, + 666563.131, 5559406.481, + 666561.840, 5559390.365, + 666567.082, 5559390.393, + 666601.084, 5559390.613, + 666619.390, 5559390.674, + 666618.501, 5559370.108, + 666607.847, 5559334.122, + 666627.118, 5559333.106, + 666629.262, 5559396.534, + 666626.125, 5559396.193, + 666621.435, 5559395.948, + 666618.323, 5559396.526, + 666614.618, 5559397.886, + 666596.545, 5559421.448, + 666594.913, 5559424.413, + 666594.531, 5559426.281, + 666514.838, 5559534.639, + 666511.699, 5559532.746, + 666508.903, 5559530.756, + 666506.344, 5559527.659, + 666505.237, 5559524.268, + 666505.737, 5559520.802, + 666507.365, 5559517.102, + 666511.231, 5559512.426, + 666514.494, 5559510.658, + 666518.129, 5559507.128, + 666519.786, 5559504.330, + 666521.944, 5559500.685, + 666522.075, 5559496.373, + 666519.401, 5559499.733, + 666514.841, 5559503.805, + 666511.413, 5559507.413, + 666508.642, 5559509.045, + 666504.674, 5559510.446, + 666500.990, 5559512.411, + 666498.685, 5559513.858, + 666496.782, 5559516.791, + 666496.153, 5559520.022, + 666495.800, 5559521.836, + 666496.557, 5559525.573, + 666498.806, 5559529.070, + 666501.591, 5559532.341, + 666504.263, 5559534.248, + 666510.474, 5559537.485, + 666512.455, 5559537.886, + 666516.626, 5559539.553, + 666591.654, 5559570.555, + 666598.919, 5559573.740, + 666605.313, 5559578.419, + 666616.220, 5559564.430, + 666617.041, 5559564.997, + 666606.055, 5559579.089, + 666580.690, 5559597.895, + 666573.187, 5559607.859, + 666577.933, 5559654.898, + 666595.353, 5559674.011, + 666636.944, 5559723.417, + 666643.253, 5559731.626, + 666650.966, 5559740.765, + 666663.592, 5559757.529, + 666672.976, 5559769.118, + 666677.848, 5559773.457, + 666675.791, 5559782.320, + 666671.759, 5559779.706, + 666668.206, 5559777.403, + 666664.850, 5559775.226, + 666657.106, 5559770.205, + 666654.919, 5559768.786, + 666644.882, 5559762.279, + 666642.105, 5559760.478, + 666640.371, 5559759.354, + 666616.096, 5559743.613, + 666609.942, 5559739.623, + 666590.086, 5559726.748, + 666579.206, 5559719.693, + 666564.077, 5559709.883, + 666554.741, 5559703.830, + 666552.650, 5559702.474, + 666545.399, 5559697.773, + 666538.067, 5559693.019, + 666535.679, 5559691.471, + 666524.072, 5559683.944, + 666515.265, 5559678.233, + 666512.058, 5559676.154, + 666487.819, 5559660.437, + 666477.749, 5559676.059, + 666470.528, 5559687.261, + 666494.364, 5559518.358, + 666495.539, 5559515.888, + 666496.765, 5559513.308, + 666499.442, 5559510.525, + 666503.181, 5559508.052, + 666506.273, 5559505.655, + 666510.793, 5559502.555, + 666513.565, 5559498.599, + 666515.282, 5559493.630, + 666515.800, 5559490.518, + 666515.641, 5559486.993, + 666535.657, 5559453.048, + 666504.210, 5559425.880, + 666470.985, 5559463.039, + 666503.875, 5559480.740, + 666503.330, 5559482.443, + 666503.366, 5559483.969, + 666504.081, 5559486.471, + 666505.494, 5559491.411, + 666505.553, 5559496.083, + 666503.957, 5559499.268, + 666500.931, 5559501.966, + 666495.427, 5559504.950, + 666493.356, 5559509.235, + 666493.218, 5559512.662, + 666494.364, 5559518.358 + ) +) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.gml new file mode 100644 index 0000000000..35fadf10dd --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.gml @@ -0,0 +1,3 @@ + + 10.000000 5.000000 + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.sdo new file mode 100644 index 0000000000..d8da0b2ef9 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/01_Point.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2001, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 1), SDO_ORDINATE_ARRAY(10, 5)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.gml new file mode 100644 index 0000000000..5c5b64ebf5 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.gml @@ -0,0 +1,3 @@ + + 10.000000 10.000000 20.000000 10.000000 + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.sdo new file mode 100644 index 0000000000..a18527d32c --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/02_Line_segment.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(10, 10, 20, 10)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.gml new file mode 100644 index 0000000000..a23f5b1350 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.gml @@ -0,0 +1,7 @@ + + + + 10.000000 15.000000 15.000000 20.000000 20.000000 15.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.sdo new file mode 100644 index 0000000000..792ca008b3 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/03_Arc_segment.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 2), SDO_ORDINATE_ARRAY(10, 15, 15, 20, 20, 15)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.gml new file mode 100644 index 0000000000..51d846cf5e --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.gml @@ -0,0 +1,3 @@ + + 10.000000 25.000000 20.000000 30.000000 25.000000 25.000000 30.000000 30.000000 + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.sdo new file mode 100644 index 0000000000..2f456a2472 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/04_Line_string.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(10, 25, 20, 30, 25, 25, 30, 30)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.gml new file mode 100644 index 0000000000..70a89e356b --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.gml @@ -0,0 +1,7 @@ + + + + 10.000000 35.000000 15.000000 40.000000 20.000000 35.000000 25.000000 30.000000 30.000000 35.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.sdo new file mode 100644 index 0000000000..4d01088d30 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/05_Arc_string.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 2), SDO_ORDINATE_ARRAY(10, 35, 15, 40, 20, 35, 25, 30, 30, 35)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.gml new file mode 100644 index 0000000000..1406f211b6 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.gml @@ -0,0 +1,13 @@ + + + + 10.000000 45.000000 20.000000 45.000000 + + + 20.000000 45.000000 23.000000 48.000000 20.000000 51.000000 + + + 20.000000 51.000000 10.000000 51.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.sdo new file mode 100644 index 0000000000..86ff1aaf1f --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/06_Compound_line_string.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 4, 3, 1, 2, 1, 3, 2, 2, 7, 2, 1), SDO_ORDINATE_ARRAY(10, 45, 20, 45, 23, 48, 20, 51, 10, 51)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.gml new file mode 100644 index 0000000000..5abb15137b --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.gml @@ -0,0 +1,3 @@ + + 10.000000 55.000000 15.000000 55.000000 20.000000 60.000000 10.000000 60.000000 10.000000 55.000000 + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.sdo new file mode 100644 index 0000000000..4c88890dfa --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/07_Closed_line_string.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(10, 55, 15, 55, 20, 60, 10, 60, 10, 55)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.gml new file mode 100644 index 0000000000..ff0c2eed6c --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.gml @@ -0,0 +1,7 @@ + + + + 15.000000 65.000000 10.000000 68.000000 15.000000 70.000000 20.000000 68.000000 15.000000 65.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.sdo new file mode 100644 index 0000000000..07ff5f8fd1 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/08_Closed_arc_string.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 2), SDO_ORDINATE_ARRAY(15, 65, 10, 68, 15, 70, 20, 68, 15, 65)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.gml new file mode 100644 index 0000000000..bc04e86bd4 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.gml @@ -0,0 +1,10 @@ + + + + 10.000000 78.000000 10.000000 75.000000 20.000000 75.000000 20.000000 78.000000 + + + 20.000000 78.000000 15.000000 80.000000 10.000000 78.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.sdo new file mode 100644 index 0000000000..c2db8c1aa4 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/09_Closed_mixed_line.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 4, 2, 1, 2, 1, 7, 2, 2), SDO_ORDINATE_ARRAY(10, 78, 10, 75, 20, 75, 20, 78, 15, 80, 10, 78)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.gml new file mode 100644 index 0000000000..a24f6ff304 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.gml @@ -0,0 +1,3 @@ + + 10.000000 85.000000 20.000000 90.000000 20.000000 85.000000 10.000000 90.000000 10.000000 85.000000 + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.sdo new file mode 100644 index 0000000000..2912bec2a7 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/10_Self-crossing_line.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(10, 85, 20, 90, 20, 85, 10, 90, 10, 85)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.gml new file mode 100644 index 0000000000..635abbdcce --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.gml @@ -0,0 +1,7 @@ + + + + 10.000000 105.000000 15.000000 105.000000 20.000000 110.000000 10.000000 110.000000 10.000000 105.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.sdo new file mode 100644 index 0000000000..f72d532782 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/11_Polygon.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(10, 105, 15, 105, 20, 110, 10, 110, 10, 105)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.gml new file mode 100644 index 0000000000..f83c024064 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.gml @@ -0,0 +1,36 @@ + + + + + + + + 50.000000 46.000000 49.000000 45.000000 50.000000 44.000000 + + + 50.000000 44.000000 60.000000 44.000000 + + + 60.000000 44.000000 64.000000 48.000000 60.000000 52.000000 + + + 60.000000 52.000000 50.000000 52.000000 + + + 50.000000 52.000000 49.000000 51.000000 50.000000 50.000000 + + + 50.000000 50.000000 60.000000 50.000000 + + + 60.000000 50.000000 62.000000 48.000000 60.000000 46.000000 + + + 60.000000 46.000000 50.000000 46.000000 + + + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.sdo new file mode 100644 index 0000000000..bf3f5a0e3a --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/120_Multiarc___Buffer_1___0_01.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1005, 8, 1, 2, 2, 5, 2, 1, 7, 2, 2, 11, 2, 1, 13, 2, 2, 17, 2, 1, 19, 2, 2, 23, 2, 1), SDO_ORDINATE_ARRAY(50, 46, 49, 45, 50, 44, 60, 44, 64, 48, 60, 52, 50, 52, 49, 51, 50, 50, 60, 50, 62, 48, 60, 46, 50, 46)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.gml new file mode 100644 index 0000000000..df2f5a782e --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.gml @@ -0,0 +1,15 @@ + + + + + + + + 15.000000 115.000000 20.000000 118.000000 15.000000 120.000000 10.000000 118.000000 15.000000 115.000000 + + + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.sdo new file mode 100644 index 0000000000..28a75139e8 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/12_Arc_polygon.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 2), SDO_ORDINATE_ARRAY(15, 115, 20, 118, 15, 120, 10, 118, 15, 115)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.gml new file mode 100644 index 0000000000..f447986e5e --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.gml @@ -0,0 +1,18 @@ + + + + + + + + 10.000000 128.000000 10.000000 125.000000 20.000000 125.000000 20.000000 128.000000 + + + 20.000000 128.000000 15.000000 130.000000 10.000000 128.000000 + + + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.sdo new file mode 100644 index 0000000000..ed6365d4e8 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/13_Compound_polygon.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1005, 2, 1, 2, 1, 7, 2, 2), SDO_ORDINATE_ARRAY(10, 128, 10, 125, 20, 125, 20, 128, 15, 130, 10, 128)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.gml new file mode 100644 index 0000000000..c294e0de25 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.gml @@ -0,0 +1,7 @@ + + + + 10.000000 135.000000 20.000000 135.000000 20.000000 140.000000 10.000000 140.000000 10.000000 135.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.sdo new file mode 100644 index 0000000000..426ea1f5b3 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARRAY(10, 135, 20, 140)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-gml-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-gml-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-gml-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-sdo-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-sdo-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/14_Rectangle.skip-sdo-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.gml new file mode 100644 index 0000000000..4fba5d890e --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.gml @@ -0,0 +1,15 @@ + + + + + + + + 15.000000 145.000000 10.000000 150.000000 20.000000 150.000000 + + + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.sdo new file mode 100644 index 0000000000..0498b9065f --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/15_Circle.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 4), SDO_ORDINATE_ARRAY(15, 145, 10, 150, 20, 150)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.gml new file mode 100644 index 0000000000..581c42bac6 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.gml @@ -0,0 +1,17 @@ + + + + 50.000000 5.000000 + + + + + 55.000000 7.000000 + + + + + 60.000000 5.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.sdo new file mode 100644 index 0000000000..9d342dcced --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2005, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 3), SDO_ORDINATE_ARRAY(50, 5, 55, 7, 60, 5)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-gml-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-gml-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-gml-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-sdo-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-sdo-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/16_Point_cluster.skip-sdo-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.gml new file mode 100644 index 0000000000..8c3ad8e907 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.gml @@ -0,0 +1,17 @@ + + + + 65.000000 5.000000 + + + + + 70.000000 7.000000 + + + + + 75.000000 5.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.sdo new file mode 100644 index 0000000000..20f145b506 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/17_Multipoint.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2005, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 1, 3, 1, 1, 5, 1, 1), SDO_ORDINATE_ARRAY(65, 5, 70, 7, 75, 5)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.gml new file mode 100644 index 0000000000..8c36679987 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.gml @@ -0,0 +1,12 @@ + + + + 50.000000 15.000000 55.000000 15.000000 + + + + + 60.000000 15.000000 65.000000 15.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.sdo new file mode 100644 index 0000000000..f5b82b0597 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/18_Multiline.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2006, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 5, 2, 1), SDO_ORDINATE_ARRAY(50, 15, 55, 15, 60, 15, 65, 15)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.gml new file mode 100644 index 0000000000..9c49cb9018 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.gml @@ -0,0 +1,12 @@ + + + + 50.000000 22.000000 60.000000 22.000000 + + + + + 55.000000 20.000000 55.000000 25.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.sdo new file mode 100644 index 0000000000..e2dba61655 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/19_Multiline_-_crossing.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2006, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 5, 2, 1), SDO_ORDINATE_ARRAY(50, 22, 60, 22, 55, 20, 55, 25)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.gml new file mode 100644 index 0000000000..36bea49ec5 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.gml @@ -0,0 +1,20 @@ + + + + + + 50.000000 35.000000 55.000000 40.000000 60.000000 35.000000 + + + + + + + + + 65.000000 35.000000 70.000000 30.000000 75.000000 35.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.sdo new file mode 100644 index 0000000000..31b983dc71 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/20_Multiarc.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2006, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 2, 7, 2, 2), SDO_ORDINATE_ARRAY(50, 35, 55, 40, 60, 35, 65, 35, 70, 30, 75, 35)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.gml new file mode 100644 index 0000000000..f7b3216441 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.gml @@ -0,0 +1,12 @@ + + + + 50.000000 55.000000 50.000000 60.000000 55.000000 58.000000 50.000000 55.000000 + + + + + 56.000000 58.000000 60.000000 55.000000 60.000000 60.000000 56.000000 58.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.sdo new file mode 100644 index 0000000000..537b9e1bad --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/21_Multiline_-_closed.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2006, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 9, 2, 1), SDO_ORDINATE_ARRAY(50, 55, 50, 60, 55, 58, 50, 55, 56, 58, 60, 55, 60, 60, 56, 58)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.gml new file mode 100644 index 0000000000..c20cba67ec --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.gml @@ -0,0 +1,20 @@ + + + + + + 50.000000 65.000000 50.000000 70.000000 55.000000 68.000000 + + + + + + + + + 55.000000 68.000000 60.000000 65.000000 60.000000 70.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.sdo new file mode 100644 index 0000000000..8d42a97e22 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/22_Multiarc_-_touching.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2006, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 2, 7, 2, 2), SDO_ORDINATE_ARRAY(50, 65, 50, 70, 55, 68, 55, 68, 60, 65, 60, 70)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.gml new file mode 100644 index 0000000000..d0bafe5df6 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.gml @@ -0,0 +1,20 @@ + + + + + + 50.000000 105.000000 55.000000 105.000000 60.000000 110.000000 50.000000 110.000000 50.000000 105.000000 + + + + + + + + + 62.000000 108.000000 65.000000 108.000000 65.000000 112.000000 62.000000 112.000000 62.000000 108.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.sdo new file mode 100644 index 0000000000..bd9573f1f5 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2007, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1, 11, 1003, 3), SDO_ORDINATE_ARRAY(50, 105, 55, 105, 60, 110, 50, 110, 50, 105, 62, 108, 65, 112)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-gml-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-gml-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-gml-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-sdo-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-sdo-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/23_Multipolygon_from_Rectangle_disjoint.skip-sdo-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.gml new file mode 100644 index 0000000000..9a70070cfa --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.gml @@ -0,0 +1,20 @@ + + + + + + 50.000000 115.000000 55.000000 115.000000 55.000000 120.000000 50.000000 120.000000 50.000000 115.000000 + + + + + + + + + 55.000000 120.000000 58.000000 120.000000 58.000000 122.000000 55.000000 122.000000 55.000000 120.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.sdo new file mode 100644 index 0000000000..bedb7ee625 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2007, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3, 5, 1003, 3), SDO_ORDINATE_ARRAY(50, 115, 55, 120, 55, 120, 58, 122)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-gml-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-gml-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-gml-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-sdo-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-sdo-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/24_Multipolygon_from_Rectangle_touching.skip-sdo-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.gml new file mode 100644 index 0000000000..b2b970e07e --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.gml @@ -0,0 +1,20 @@ + + + + + + 50.000000 95.000000 55.000000 95.000000 53.000000 96.000000 55.000000 97.000000 53.000000 98.000000 55.000000 99.000000 50.000000 99.000000 50.000000 95.000000 + + + + + + + + + 55.000000 100.000000 55.000000 95.000000 60.000000 95.000000 60.000000 100.000000 55.000000 100.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.sdo new file mode 100644 index 0000000000..4b63b9fc03 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/26_Multipolygon_-_multi-touch.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2007, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1, 17, 1003, 1), SDO_ORDINATE_ARRAY(50, 95, 55, 95, 53, 96, 55, 97, 53, 98, 55, 99, 50, 99, 50, 95, 55, 100, 55, 95, 60, 95, 60, 100, 55, 100)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.gml new file mode 100644 index 0000000000..e147312982 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.gml @@ -0,0 +1,12 @@ + + + + 50.000000 135.000000 60.000000 135.000000 60.000000 140.000000 50.000000 140.000000 50.000000 135.000000 + + + + + 51.000000 136.000000 51.000000 139.000000 59.000000 139.000000 59.000000 136.000000 51.000000 136.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.sdo new file mode 100644 index 0000000000..7c058e099c --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3, 5, 2003, 3), SDO_ORDINATE_ARRAY(50, 135, 60, 140, 51, 136, 59, 139)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-gml-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-gml-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-gml-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-sdo-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-sdo-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/27_Polygon_from_Rectangle_with_void.skip-sdo-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.gml new file mode 100644 index 0000000000..79d8e744e0 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.gml @@ -0,0 +1,12 @@ + + + + 50.000000 145.000000 60.000000 145.000000 60.000000 150.000000 50.000000 150.000000 50.000000 145.000000 + + + + + 51.000000 146.000000 51.000000 149.000000 59.000000 149.000000 59.000000 146.000000 51.000000 146.000000 + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.sdo new file mode 100644 index 0000000000..21e07d6804 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2003, 3, 5, 1003, 3), SDO_ORDINATE_ARRAY(51, 146, 59, 149, 50, 145, 60, 150)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-gml-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-gml-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-gml-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-sdo-sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-sdo-sdo new file mode 100644 index 0000000000..5973e29327 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/28_Polygon_from_Rectangel_with_void_-_reverse.skip-sdo-sdo @@ -0,0 +1 @@ +skip \ No newline at end of file diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.gml new file mode 100644 index 0000000000..8b2f51c1a6 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.gml @@ -0,0 +1,21 @@ + + + + 10.000000 5.000000 + + + + + 10.000000 10.000000 20.000000 10.000000 + + + + + + + 10.000000 105.000000 15.000000 105.000000 20.000000 110.000000 10.000000 110.000000 10.000000 105.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.sdo new file mode 100644 index 0000000000..89497301a3 --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/31_Heterogeneous_collection.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2004, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1, 1, 3, 2, 1, 7, 1003, 1), SDO_ORDINATE_ARRAY(10, 5, 10, 10, 20, 10, 10, 105, 15, 105, 20, 110, 10, 110, 10, 105)) diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.gml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.gml new file mode 100644 index 0000000000..8516adbcdd --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.gml @@ -0,0 +1,25 @@ + + + + + + 50.000000 168.000000 50.000000 160.000000 55.000000 160.000000 55.000000 168.000000 50.000000 168.000000 + + + + + 51.000000 167.000000 54.000000 167.000000 54.000000 161.000000 51.000000 161.000000 51.000000 162.000000 52.000000 163.000000 51.000000 164.000000 51.000000 165.000000 51.000000 166.000000 51.000000 167.000000 + + + + + + + + + 52.000000 166.000000 52.000000 162.000000 53.000000 162.000000 53.000000 166.000000 52.000000 166.000000 + + + + + diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.sdo b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.sdo new file mode 100644 index 0000000000..d53ad5b2fb --- /dev/null +++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/src/test/resources/test/oracle/sdo/standard_geom/32_Polygon_void_island_touch.sdo @@ -0,0 +1 @@ +SDO_GEOMETRY(2007, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1, 11, 2003, 1, 31, 1003, 1), SDO_ORDINATE_ARRAY(50, 168, 50, 160, 55, 160, 55, 168, 50, 168, 51, 167, 54, 167, 54, 161, 51, 161, 51, 162, 52, 163, 51, 164, 51, 165, 51, 166, 51, 167, 52, 166, 52, 162, 53, 162, 53, 166, 52, 166))