空间拓扑描述的是自然界地理对象的空间位置关系-相邻,重合,连通等,是地理对象空间属性的一部分.目前ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,Shape格式的数据不能建立拓扑.
?
1.???? GeoDataBase建立拓扑的基础
1).GeoDatabase实现拓扑的基础是”几何重合”,Geodatabase中的地理对象都是实体存储,主要是根据节点坐标是否重合来判断地理要素之间是否存在某种拓扑关系
2).拓扑只能在要素集(FeatureDataset)中创建,参加创建拓扑的所有要素类(FeatureClass)必须具有相同的空间参考
3).参与拓扑创建的必须是简单要素类,注记类(Annoca),尺寸和几何网络要素类不能参与拓扑的创建
4)单个要素集可以创建多个拓扑
?
2.???? GeoDatabase拓扑中的重要概念
1).规则:表达要素之间的空间关系,ESRI提供了27中拓扑关系(见后面附表)
2).拓扑容限.决定在多大范围内要素能够被捕捉在一起(也称为聚类容限(cluster tolerance))
3).拓扑等级 控制在拓扑验证的过程中节点移动的级别.这时候,等级低的要素类将向等级高的要素类移动,最高级别为1,最低级别为-50
4).脏区(dirty area):脏区就是参与拓扑创建时被修改的地理要素(增,删,改)的区域
5).错误要素(Error Feature):只要素类中不符合拓扑规则的要素或者要素的一部分
?
3.???? 使用拓扑的详细步骤及代码
?
1).创建拓扑
? ITopology是一个不可创建类,创建拓扑需通过调用ITopologyContainer:CreateTopology方法来建立拓扑,拓扑的规则要用ITopologyRule接口来表达,必须加到ITopologyRuleContainer中.
public void CreateTopology(IFeatureDataset featuredataset, string topologyName,esriTopologyRuleType rulename,double clusterTolerance,int classID)
?{
? ??try
? ?{
? ?? ITopologyContainer topologyContainer = (ITopologyContainer)featureDataset;
??? ITopology topology=topologyContainer.CreateTopology(topologyName, clusterTolerance, -1, "");
? ? ?IFeatureClassContainer featureclassContainer = (IFeatureClassContainer)featureDataset;
? ???ITopologyRuleContainer topologyRuleContainer = (ITopologyRuleContainer)topology;
? ??ITopologyRule topologyRule = new TopologyRuleClass();
? ??topologyRule.TopologyRuleType = rulename;
topologyRule.Ori (本文已被浏览 次) | | |