Oracle Spatial中SDO_GEOMETRY类型:@H_419_10@
CREATE TYPE SDO_GEOMETRY AS OBJECT(
SDO_GTYPE NUMBER,--几何类型,如点线面
SDO_SRID NUMBER,--几何的空间参考坐标系
SDO_POINT SDO_POINT_TYPE,--如果几何为点类型,则存储点坐标,否则为空
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,--定义如何理解SDO_ORDINATES中的坐标序列
SDO_ORDINATES SDO_ORDINATE_ARRAY--存储实际坐标,以X,Y以及不同点之间以逗号隔开
)
两个对象之间关系:@H_419_10@
RELATE
SDO_GEOM.RELATE --确定两个对象的交互方式@H_419_10@
eg:
SDO_GEOM.RELATE(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY,mask IN VARCHAR2, geom2 IN SDO_GEOMETRY,dim2 IN SDO_DIM_ARRAY) RETURN VARCHAR2; SDO_GEOM.RELATE(geom1 IN SDO_GEOMETRY,geom2 IN SDO_GEOMETRY, tol IN NUMBER)RETURN VARCHAR2;--tol容许的精度范围@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
mask:
ANYINteraCT:geom2落在geom1面上,包括边上
CONTAINS:geom2完全包含在geom1几何对象中,并且两个几何对象的边没有交叉
COVEREDBY:geom1完全包含在geom2中,并且两个几何对象的边有一个或多个点相互重叠
COVERS:geom2完全包含在geom1中,并且两个几何对象的边有一个或多个点相互重叠
disJOINT:两个几何没有重叠交叉点,也没有共同的边
EQUAL:两个几何相等
INSIDE:geom1完全包含在geom2几何对象中,并且两个几何对象的边没有交叉
ON:geom1的边和内部的线完全在geom2上
OVERLAPBDYdisJOINT:两个几何对象交迭,但是边没有交叉
OVERLAPBDYINTERSECT:两个几何对象叫迭,并且边有部分交叉
touch:两个结合对象有共同的边,但没有交叉
WITHIN_disTANCE
SDO_GEOM.WITHIN_disTANCE --确定两个几何是否在彼此指定的距离之内@H_419_10@
eg:
SDO_GEOM.WITHIN_disTANCE(geom1 IN SDO_GEOMETRY,dist IN NUMBER,dim2 IN SDO_DIM_ARRAY[,units IN VARCHAR2]) RETURN VARCHAR2; SDO_GEOM.WITHIN_disTANCE(geom1 IN SDO_GEOMETRY,tol IN NUMBER[,units IN VARCHAR2]) RETURN VARCHAR2;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
验证:@H_419_10@
VALIDATE_GEOMETRY_WITH_CONTEXT
SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT --确定几何是否有效,如果几何无效,则返回上下文信息@H_419_10@
eg:
SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(theGeometry IN SDO_GEOMETRY, theDimInfo IN SDO_DIM_ARRAY,conditional IN VARCHAR2 DEFAulT ‘TRUE‘) RETURN VARCHAR2; SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(theGeometry IN SDO_GEOMETRY,tolerance IN NUMBER,conditional IN VARCHAR2 DEFAulT ‘TRUE‘) RETURN VARCHAR2;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
VALIDATE_LAYER_WITH_CONTEXT
SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT --确定存储在列中的所有几何是否有效,并返回有关任何无效几何的上下文信息@H_419_10@
eg:
SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT(geom_table IN VARCHAR2,geom_column IN VARCHAR2,result_table IN VARCHAR2,commit_interval IN NUMBER DEFAulT -1,conditional IN VARCHAR2 DEFAulT ‘TRUE‘);@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
单对象 *** 作:@H_419_10@
SDO_ARC_DENSIFY
SDO_GEOM.SDO_ARC_DENSIFY --简化,将圆弧简化成由直线组成的近似多段线;将圆近似成N多边形@H_419_10@
eg:
SDO_GEOM.SDO_ARC_DENSIFY(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY, params IN VARCHAR2) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_ARC_DENSIFY(geom IN SDO_GEOMETRY,tol IN NUMBER, params IN VARCHAR2) RETURN SDO_GEOMETRY;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_AREA
SDO_GEOM.SDO_AREA --计算多边形的面积@H_419_10@
eg:
SDO_GEOM.SDO_AREA(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY [,unit IN VARCHAR2]) RETURN NUMBER; SDO_GEOM.SDO_AREA(geom IN SDO_GEOMETRY,tol IN NUMBER [,unit IN VARCHAR2]) RETURN NUMBER;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_BUFFER
SDO_GEOM.SDO_BUFFER --在几何体外部或内部生成缓冲区
eg:
SDO_GEOM.SDO_BUFFER(geom IN SDO_GEOMETRY,dist IN NUMBER[,params IN VARCHAR2]) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_BUFFER(geom IN SDO_GEOMETRY,params IN VARCHAR2]) RETURN SDO_GEOMETRY;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_CENTROID
SDO_GEOM.SDO_CENTROID --计算多边形的质心
eg:
SDO_GEOM.SDO_CENTROID(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_CENTROID(geom1 IN SDO_GEOMETRY,tol IN NUMBER) RETURN SDO_GEOMETRY;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_CONVEXHulL
SDO_GEOM.SDO_CONVEXHulL --返回几何对象的凸包的多边形类型对象@H_419_10@
eg:
SDO_GEOM.SDO_CONVEXHulL(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY; SDO_GEOM.SDO_CONVEXHulL(geom1 IN SDO_GEOMETRY, tol IN NUMBER) RETURN SDO_GEOMETRY;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_LENGTH
SDO_GEOM.SDO_LENGTH --计算几何的长度或周长
eg:
SDO_GEOM.SDO_LENGTH(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY[,unit IN VARCHAR2][,count_shared_edges IN NUMBER]) RETURN NUMBER; SDO_GEOM.SDO_LENGTH(geom IN SDO_GEOMETRY,unit IN VARCHAR2] [,count_shared_edges IN NUMBER]) RETURN NUMBER;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_MAX_MBR_ORDINATE
SDO_GEOM.SDO_MAX_MBR_ORDINATE --返回几何对象最小边界矩形的指定纵坐标的最大值
eg:
SDO_GEOM.SDO_MAX_MBR_ORDINATE(geom IN SDO_GEOMETRY,ordinate_pos IN NUMBER) RETURN NUMBER; SDO_GEOM.SDO_MAX_MBR_ORDINATE(geom IN SDO_GEOMETRY,ordinate_pos IN NUMBER) RETURN NUMBER;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_MIN_MBR_ORDINATE
SDO_GEOM.SDO_MIN_MBR_ORDINATE --返回几何对象最小边界矩形的指定纵坐标的最小值
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_MBR
SDO_GEOM.SDO_MBR --返回几何对象最小边界矩形
eg:
SDO_GEOM.SDO_MBR(geom IN SDO_GEOMETRY[,dim IN SDO_DIM_ARRAY]) RETURN SDO_GEOMETRY;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_POINTONSURFACE
SDO_GEOM.SDO_POINTONSURFACE --返回一个保证在多边形表面上的点@H_419_10@
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_VolUME
SDO_GEOM.SDO_VolUME --计算三维立体几何体的体积@H_419_10@
eg:
SDO_GEOM.SDO_VolUME(geom IN SDO_GEOMETRY,unit IN VARCHAR2]) RETURN NUMBER;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
双目标 *** 作:@H_419_10@
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);@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_disTANCE
SDO_GEOM.SDO_disTANCE --计算两个几何对象之间的距离@H_419_10@
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_INTERSECTION
SDO_GEOM.SDO_INTERSECTION --返回几何对象(两个几何对象的拓扑交点,AND *** 作)@H_419_10@
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_UNION
SDO_GEOM.SDO_UNION --返回几何对象(两个几何对象的拓扑结合,OR *** 作)@H_419_10@
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
SDO_XOR
SDO_GEOM.SDO_XOR --返回几何对象(两个几何对象的拓扑对称差异,XOR *** 作)@H_419_10@
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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
实例:
@H_419_10@--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@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
@H_419_10@ @H_419_10@
--合并 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;@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@@H_419_10@
@H_419_10@ 总结 以上是内存溢出为你收集整理的OracleSpatial函数实例全部内容,希望文章能够帮你解决OracleSpatial函数实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)