|
isValid, isSimple, Dimension and CoordDim methods for SDO_Geometry
Tuesday January 31 2012 at 20:00
I have just added to my Java Spatial For Oracle (JS4O) project exposure of the JTS/Jaspa functions for:
- ST_IsValid
- ST_IsSimple
- ST_Dimension
- ST_CoordDim
Here are the type sigatures in the JTS PL/SQL package.
FUNCTION ST_IsValid(p_geom IN mdsys.sdo_geometry )
RETURN NUMBER Deterministic;
.
FUNCTION ST_IsSimple(p_geom IN mdsys.sdo_geometry )
RETURN NUMBER Deterministic;
.
FUNCTION ST_Dimension(p_geom IN mdsys.sdo_geometry)
RETURN NUMBER Deterministic;
.
FUNCTION ST_CoordDim(p_geom IN mdsys.sdo_geometry)
RETURN NUMBER Deterministic;
Here is a test of these functions.
SELECT DISTINCT
JTS.ST_IsValid(a.geometry) AS ST_isValid,
JTS.ST_IsSimple(a.geometry) AS ST_isSimple,
JTS.ST_Dimension(a.geometry) AS ST_Dimension,
JTS.ST_CoordDim(a.geometry) AS ST_CoordDim,
CASE WHEN a.geometry.get_gtype() IN (1) THEN 'Point'
WHEN a.geometry.get_gtype() IN (5) THEN 'MultiPoint'
WHEN a.geometry.get_gtype() IN (2) THEN 'Line'
WHEN a.geometry.get_gtype() IN (6) THEN 'MultiLine'
WHEN a.geometry.get_gtype() IN (3) AND geom.isRectangle(a.geometry.sdo_elem_info)>0 THEN 'Area(Rectangle)'
WHEN a.geometry.get_gtype() IN (3) AND geom.isRectangle(a.geometry.sdo_elem_info)=0 THEN 'Area'
WHEN a.geometry.get_gtype() IN (7) AND geom.isRectangle(a.geometry.sdo_elem_info)>0 THEN 'MultiArea(Rectangle)'
WHEN a.geometry.get_gtype() IN (7) AND geom.isRectangle(a.geometry.sdo_elem_info)=0 THEN 'MultiArea'
ELSE 'Not Supported'
END geometryType
FROM ORACLE_TEST_GEOMETRIES a
WHERE a.geometry IS NOT NULL
AND a.geometry.sdo_gtype IS NOT NULL
AND a.geometry.get_dims() = 2
AND sdo_geom.validate_geometry(a.geometry, 0.0005) = 'TRUE'
AND ( a.geometry.get_gtype() IN (1,5) OR ( a.geometry.sdo_elem_info IS NOT NULL AND geom.isCompound(a.geometry.sdo_elem_info) = 0 ) )
AND a.geometry.get_gtype() <> 4
ORDER BY 5,1,3;
-- Results
ST_ISVALID ST_ISSIMPLE ST_DIMENSION ST_COORDDIM GEOMETRYTYPE
---------- ----------- ------------ ----------- --------------------
1 1 2 2 Area
1 1 2 2 Area(Rectangle)
1 0 1 2 Line
1 1 1 2 Line
1 1 2 2 MultiArea
1 1 2 2 MultiArea(Rectangle)
1 0 1 2 MultiLine
1 1 1 2 MultiLine
1 1 0 2 MultiPoint
1 1 0 2 Point
.
10 ROWS selected
I hope this is helpful to somone.I have just added to my Java Spatial For Oracle (JS4O) project exposure of the JTS/Jaspa functions for:
- ST_IsValid
- ST_IsSimple
- ST_Dimension
- ST_CoordDim
Here are the type sigatures in the JTS PL/SQL package.
       
|
Comment