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               : 两个几何对象有共同的边,但没有交叉。
 */
上一篇下一篇

猜你喜欢

热点阅读