作为空间分析重要部分的拓扑关系运算,ArcGISEngine类库中将拓扑关系运算功能函数方法封装在ITopologicalOperator接口。
属性:Boundary
Boundary:几何图形的边界属性。面的边界是多条折线;线的边界是与起始终止点相一致的多点;多点边界是空对象。
属性:IsKnownSimple
IsKnownSimple:如当前几何图形是简单对象返回true,否则返回false;它反映了图形是否进行了拓扑纠正。
下面情况返回False
u 新创建的非空对象
u 图形经过投影、一般化处理
下面情况返回True
u 空几何对象
u 直接从要素类中获得的
u 执行过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:两个几何图形合并后再减去相交的部分,是对两个图形的异或逻辑操作。
方法:Union
Union:图形合并。