关于ArcGis的拓扑分析 (本文将以ArcEngine接口实现为主!)
拓扑(Topology)是在同一个要素集(FeatureDataset)下的要素类(Feature Class)之间的拓扑关系的集合。所以要参与一个拓扑的所有要素类,必须在同一个要素集内(也就是具有同一的空间参考),这样进行的拓扑检查才是精确的。一个要素集可以有多个拓扑,但每个要素类最多只能参与一个拓扑,一个拓扑中可以定义多个规则。
进行拓扑分析的过程:
一、建立拓扑(添加拓扑规则)
二、验证拓扑
三、编辑过程中保证拓扑的正确
四、查询系统中存在的拓扑
*******************************************************************************
一、建立拓扑的方法:
1:利用ArcCatalog桌面建立;
2:使用程序(ArcEngine)开发建立拓扑;
在Engine中建立拓扑的实现接口是ITopologyContainer::CreateTopology;
ITopologyContainer::CreateTopology 方法用来创建拓扑;
接口主要方法属性如下图:
图1
接口说明:
ITopologyContainer 是用来创建、添加、管理拓扑的平台容器;
通过本接口用户可以了解当前要素集的拓扑信息,如名称;如果用户仅出于得到要素集拓扑信息的目的,建议不用本接口打开拓扑,而使用IFeatureDatasetNames::TopologyNames方法就可以快速获取。
一旦使用CreateTopology方法创建拓扑后,本拓扑的参数便不能更改,如想变更则需删除或重新建立新的拓扑。
DefaultClusterTolerance 是建立拓扑默认的“容差”;
MaximumClusterTolerance表示最大“容差”;
MinimumClusterTolerance表示最小“容差”;
如果用户在创建拓扑时使用的容差参数位于最大、最小之间 则参数有效,如位于最大与最小之间则按照极值(最大、最小)来处理;注意默认的容差是与最小容差一样的;
建立拓扑规则:
使用ITopologyRuleContainer 接口;
图2
接口说明:
IRule接口是Engine中的定义规则的接口,其中它的Type属性有以下几种: |