Oracle空间函数-要素关系计算函数
2021-10-19 本文已影响0人
没见过的颜色
/*
* @Desc : 点与多边形要素关系计算。
* @Notice : 只能构建二维SDO_GEOMETRY对象。
* @Param : 要素1,关系类型,要素2,计算精度。
* @Return : true/false
*/
SELECT
SDO_GEOM.RELATE(
-- 点要素
MDSYS.SDO_GEOMETRY(2001,4326,NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 1, 1),
MDSYS.SDO_ORDINATE_ARRAY(113.2,22.3)
)
,'ANYINTERACT',-- 关系类型
-- 面要素
MDSYS.SDO_GEOMETRY(2003,4326,NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1, 3, 1),
MDSYS.SDO_ORDINATE_ARRAY(113.1,22.5, 113.4,22.5, 113.4,22.1, 113.1,22.1, 113.1,22.5)
)
, 0.005-- 计算精度
) RELATIONSHIP
FROM DUAL;
/*
* 关系类型,MASK参数:
*
* ANYINTERACT : SDO_GEOMETRY2落在SDO_GEOMETRY1面上包括在边上。
* CONTAINS : SDO_GEOMETRY2完全包含在SDO_GEOMETRY1几何对象中,并且两个几何对象的边没有交叉。
* COVEREDBY : SDO_GEOMETRY1完全包含在SDO_GEOMETRY2中,并且这两个几何对象的边有一个或多个点相互重叠。
* COVERS : SDO_GEOMETRY2完全包含在SDO_GEOMETRY1中,并且这两个几何对象的边有一个或多个点相互重叠。
* DISJOINT : 两个几何没有重叠交叉点,也没有共同的边。
* EQUAL : 两个几何是相等的。
* INSIDE : SDO_GEOMETRY1完全包含在SDO_GEOMETRY2几何对象中,并且两个几何对象的边没有交叉。
* ON : SDO_GEOMETRY1的边和内部的线完全在SDO_GEOMETRY2上。
* OVERLAPBDYDISJOINT : 两个几何对象交迭,但是边没有交叉。
* OVERLAPBDYINTERSECT : 两个几何对象交迭,并且边有部分交叉。
* TOUCH : 两个几何对象有共同的边,但没有交叉。
*/