美文网首页
Oracle空间函数-要素关系计算函数

Oracle空间函数-要素关系计算函数

作者: 没见过的颜色 | 来源:发表于2021-10-19 17:40 被阅读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               : 两个几何对象有共同的边,但没有交叉。
     */
    

    相关文章

      网友评论

          本文标题:Oracle空间函数-要素关系计算函数

          本文链接:https://www.haomeiwen.com/subject/uobaoltx.html