接口说明:
IRule接口是Engine中的定义规则的接口,其中它的Type属性有以下几种:
图3
建立拓扑规则我们将使用esriRTTopology;并通过ITopologyRule接口来实现拓扑规则。
并通过ITopologyRuleContainer接口将所定义的规则添加到当前的拓扑中(AddRule方法)。
ITopology接口和ITopologyRuleContainer接口共同继承于Topology类,所以可以QI。
图4
注意 建立拓扑时会出现的问题:
1:当要素集中的所有要素都已经参加建立其它拓扑的时候,使用已使用的要素类新建立拓扑会产生错误;
2:当要素已参加网络分析(Geometry Network)运算的时候,建立拓扑也会出现错误;
3:目标要素类是一个注记层或多维图层,不能建立拓扑;
4:目标要素类已被注册为有版本,不能建立拓扑;
二、进行拓扑验证(validate)的方法:
1:在ArcCatalog建立好拓扑后,可以选择直接验证;
2:也可以在ArcMap中对建立好的拓扑进行验证(要素必须在编辑状态Start Edit),然后可以进行拓扑的编辑;
3:利用程序进行验证;
ITopology有一个方法 ValidateTopology 用来验证指定区域内的拓扑。需要注意 没有版本
的拓扑可以在 任何时候验证。而有版本的拓扑必须在编辑回话中验证。
通过验证后,当前的拓扑就可以检查出相应的拓扑错误,并生成拓扑图层ITopologyLayer
ITopologyLayer其实也是一个layer,继承与layer类。
图5
接口说明:
ITopologyLayer接口具有一个渲染Renderer的方法,可以根据拓扑错误信息(esriTopologyRenderer)进行分类渲染。
图6
|