ITopologicalOperator接口详解

来源:互联网 发布:网络借贷平台哪个最快 编辑:程序博客网 时间:2024/05/22 06:41

作为空间分析重要部分的拓扑关系运算,ArcGISEngine类库中将拓扑关系运算功能函数方法封装在ITopologicalOperator接口。

 

属性:Boundary

    Boundary:几何图形的边界属性。面的边界是多条折线;线的边界是与起始终止点相一致的多点;多点边界是空对象。

属性:IsKnownSimple

    IsKnownSimple:如当前几何图形是简单对象返回true,否则返回false;它反映了图形是否进行了拓扑纠正。

   下面情况返回False

新创建的非空对象

图形经过投影、一般化处理

   下面情况返回True

空几何对象

直接从要素类中获得的

执行过ITopologicalOperator接口方法后得到的几何图形

属性:IsSimple

    IsSimple:当图形还没被认定为简单对象,返回是否已经进行拓扑纠正。可调用Simply方法强制修正。

方法:Buffer

    Buffer:根据指定的几何图形生成缓冲区,返回Polygon对象。缓冲区的距离Distance可以为“正”,也可以为“负”;为负数时,只适用于Polygon对象生成缓冲区。缓冲区的距离单位与生成缓冲区源几何图形坐标单位一致。

方法:Clip

    Clip:裁剪指定区域内的图形。

方法:ClipDense

    ClipDense:裁剪指定区域内的图形

方法:ConstructUnion

    ConstructUnion:合并一组几何图形同时创建一个新的对象

方法:ConvexHull

    ConvexHull:创建一个能够包含一组图形的最小边界多边形

方法:Cut

    Cut:分割一个几何图形(线、面)为左右两部分(相对于分割线来说)。

ITopologicalOperator.Cut(splitLine, sleftGeom,srightGeom);

分割线绘制的方向决定了被分割后的对象属于左边还是右边。如下图所示,分割线至上而下将图形分割为左、右两部分,所以原图形的左半部分是作为结果的右边对象返回的。

当几何图形与分割线没有相交时,几何图形将作为右边部分返回,左边部分为空。

方法:Difference

    Difference:获得原始图形除去相交部分之外的图形部分。

方法:Intersect

    Intersect:获得源图形与另外图形相交部分

方法:QueryClipped

    QueryClipped:与Clip相似,其中第二个参数为剪切后返回输出,被剪切对象本身不会改变

方法:QueryClippedDense

    QueryClippedDense:与ClipDense相似,其中第三个参数为剪切后返回输出,被剪切对象本身不会改变。

方法:Simplify

    Simplify:改变原有几何图形,对几何图形进行拓扑纠正

    点集合:不做任何处理。

    多点:经过Simplify后会移除相同的点

多线:有平面和非平面之分。

当有M值时:重叠部分被舍去变成单一的;每个部分在相交位置被打断。对于最后输出的对象来说,相连续的部分合并生成个新对象;原来的线段可能会保留,其内部的结构会有所调整。

当没有M值时:重叠、自相交的部分被保留,长度为0的部分被舍去;线段的走向会被调整;线段不相连时将创建新的部分;两个线段在终端相连时被融合

多面:监测内部、外部结构,然后更改整个多边形结构。一般过程:移除所有悬挂的系列片段;找出最大的环,并添加到要输出的多边形中,同时在当前的多边形中删除这个环;重复这个步骤(如果这个过程在移除较多的片段时结束,则应该考虑使用IPolygon接口的方法来实现Simplify相似的操纵);将异或逻辑运算参数设置为true。Simplify结束后,除了必须的情况外,不会存在重叠、自相交的情况;并且任何点不是在外部边界上就是在多边形内。

 

方法:SymmetricDifference

 

    SymmetricDifference:两个几何图形合并后再减去相交的部分,是对两个图形的异或逻辑操作。

方法:Union

    Union:图形合并。

 

 

0 0