加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

OracleSpatial函数实例

发布时间:2021-01-26 09:05:31 所属栏目:站长百科 来源:网络整理
导读:Oracle Spatial中SDO_GEOMETRY类型: CREATE TYPE SDO_GEOMETRY AS OBJECT( SDO_GTYPE NUMBER ,--几何类型,如点线面 SDO_SRID NUMBER,-- 几何的空间参考坐标系 SDO_POINT SDO_POINT_TYPE,-- 如果几何为点类型,则存储点坐标,否则为空 SDO_ELEM_INFO SDO_EL

eg:

SDO_GEOM.SDO_MIN_MBR_ORDINATE(geom IN SDO_GEOMETRY,ordinate_pos IN NUMBER?) RETURN NUMBER; SDO_GEOM.SDO_MIN_MBR_ORDINATE(geom IN SDO_GEOMETRY,ordinate_pos IN NUMBER) RETURN NUMBER;

?

SDO_MBR

SDO_GEOM.SDO_MBR --返回几何对象最小边界矩形

eg:

SDO_GEOM.SDO_MBR(geom IN SDO_GEOMETRY[,dim IN SDO_DIM_ARRAY]) RETURN SDO_GEOMETRY;

?

SDO_POINTONSURFACE

SDO_GEOM.SDO_POINTONSURFACE --返回一个保证在多边形表面上的点

eg:

SDO_GEOM.SDO_POINTONSURFACE(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_POINTONSURFACE(geom1 IN SDO_GEOMETRY,tol IN NUMBER) RETURN SDO_GEOMETRY;

?

SDO_VOLUME

SDO_GEOM.SDO_VOLUME?--计算三维立体几何体的体积

eg:

SDO_GEOM.SDO_VOLUME(geom IN SDO_GEOMETRY,unit IN VARCHAR2]) RETURN NUMBER;

?

双目标操作:

SDO_CLOSEST_POINTS

SDO_GEOM.SDO_CLOSEST_POINTS --计算两个几何之间的最小距离,并返回距离最小时在几何上的两点

eg:

SDO_GEOM.SDO_CLOSEST_POINTS(geom1 IN SDO_GEOMETRY,unit IN VARCHAR2,dist OUT NUMBER,geoma OUT SDO_GEOMETRY,geomb OUT SDO_GEOMETRY);

?

SDO_DISTANCE

SDO_GEOM.SDO_DISTANCE?--计算两个几何对象之间的距离

eg:

SDO_GEOM.SDO_DISTANCE(geom1 IN SDO_GEOMETRY,unit IN VARCHAR2]) RETURN NUMBER; SDO_GEOM.SDO_DISTANCE(geom1 IN SDO_GEOMETRY,unit IN VARCHAR2]) RETURN NUMBER;

?

SDO_DIFFERENCE

SDO_GEOM.SDO_DIFFERENCE --返回几何对象(两个几何对象的拓扑差异,MINUS操作)

eg:

SDO_GEOM.SDO_DIFFERENCE(geom1 IN SDO_GEOMETRY,dim2 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_DIFFERENCE(geom1 IN SDO_GEOMETRY,?tol IN NUMBER) RETURN SDO_GEOMETRY;

?

SDO_INTERSECTION

SDO_GEOM.SDO_INTERSECTION --返回几何对象(两个几何对象的拓扑交点,AND操作)

eg:

SDO_GEOM.SDO_INTERSECTION(geom1 IN SDO_GEOMETRY,dim2 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_INTERSECTION(geom1 IN SDO_GEOMETRY,?tol IN NUMBER) RETURN SDO_GEOMETRY;

?

SDO_UNION

SDO_GEOM.SDO_UNION --返回几何对象(两个几何对象的拓扑结合,OR操作)

eg:

SDO_GEOM.SDO_UNION(geom1 IN SDO_GEOMETRY,dim2 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_UNION(geom1 IN SDO_GEOMETRY,?tol IN NUMBER?) RETURN SDO_GEOMETRY;

?

SDO_XOR

SDO_GEOM.SDO_XOR?--返回几何对象(两个几何对象的拓扑对称差异,XOR操作)

eg:

SDO_GEOM.SDO_XOR(geom1 IN SDO_XOR,dim2 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_XOR(geom1 IN SDO_GEOMETRY,?tol IN NUMBER?) RETURN SDO_GEOMETRY;

?

?

实例:

OracleSpatial函数实例

--wkt转geometry select sdo_geometry(TO_CHAR(SDO_GEOMETRY(2003,NULL,SDO_ELEM_INFO_ARRAY(1,1003,1),SDO_ORDINATE_ARRAY(5,5,7,1,3,6,5)).get_wkt())) from dual --wkt转geometry select SDO_UTIL.from_wktgeometry(TO_CHAR(SDO_GEOMETRY(2003,5)).get_wkt())) from dual --geometry转wkt select TO_CHAR(SDO_GEOMETRY(2003,5)).get_wkt()) from dual --geometry转wkt select SDO_UTIL.to_wktgeometry_varchar(SDO_GEOMETRY(2003,5))) from dual --geometry转wkt(不受oracle字段只能少于4000个字符长度影响) select SDO_UTIL.to_wktgeometry(SDO_GEOMETRY(2003,NULL,SDO_ELEM_INFO_ARRAY(1,1003,1),SDO_ORDINATE_ARRAY(5,5,7,1,3,6,5))) from dual

OracleSpatial函数实例

?

OracleSpatial函数实例

--合并 select SDO_GEOM.SDO_UNION(SDO_GEOMETRY(‘POLYGON((1 1,5 1,5 5,1 5,1 1))‘),SDO_GEOMETRY(‘POLYGON((2 2,2 3,3 3,3 2,2 2))‘),0.001 ) from dual; --缓冲区 select SDO_UTIL.to_wktgeometry_varchar(SDO_GEOM.SDO_BUFFER(SDO_GEOMETRY(‘POLYGON((1 1,1000,0.01)) from dual; --点在面内 select SDO_GEOM.RELATE(SDO_GEOMETRY(‘POLYGON((1 1,‘CONTAINS‘,SDO_GEOMETRY(‘POINT(12 2)‘),0.01) from dual; --对象相交 select SDO_GEOM.RELATE(SDO_GEOMETRY(‘POLYGON((0 0,0 1,1 1,1 0,0 0))‘),‘ANYINTERACT‘,SDO_GEOMETRY(‘POLYGON((0.5 0.5,0.5 1.5,1.5 1.5,1.5 0.5,0.5 0.5))‘),0.01) from dual;

OracleSpatial函数实例

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读