zoukankan      html  css  js  c++  java
  • 拓扑检查(ArcEngine)

    创建拓扑

              拓扑(Topology)是在同一个要素集(FeatureDataset)下的要素类(Feature Class)之间的拓扑关系的集合。所以要参与一个拓扑的所有要素类,必须在同一个要素集内。一个要素集可以有多个拓扑,但每个要素类最多只能参与一个拓 扑。

             使用ArcCatalog创建Topology,在生成要素集及其下的要素类后,先不要进行注册版本,而先要根据创建拓扑向导创建拓扑层,之后再进行注册版本。

             不能建立拓扑的情况:
                     目标要素类已参与了一个Topology或Geometry Network
                     目标要素类是一个注记层或多维图层
                     目标要素类已被注册为有版本

              在ArcEngine应用程序中虽然可通过ITopologyContainer接口创建Topology,但这仅适合于要素类没有注册版本的情况。对于 已注册版本的要素集,这种创建拓扑方法会使WorkSpace失效。一般使用ArcSDE,要素类很少不注册版本的;没有注册版本就无法实现版本追溯,甚 至连编辑的撤销重做都无法实现。 拓扑检查

             对于有注册版本的拓扑检查,必须在一个Edit Operation间进行。

        ''' <summary>
        ''' 对指定图层执行拓扑检查,并将拓扑结果层添加到Map
        ''' </summary>
        ''' <param name="pFeatureClass">参与拓扑的要素类</param>
        ''' <param name="pMap"></param>
        ''' <remarks></remarks>
        Public Sub ValidateTopology(ByVal pFeatureClass As IFeatureClass, ByVal pMap As IMap)
            
    Dim pTopoClass As ITopologyClass = pFeatureClass
            
    '如果要素类参与了拓扑
            If pTopoClass.IsInTopology Then

                
    'StartEditOperation()

                
    '执行拓扑检查
                Dim pTopo As ITopology = pTopoClass.Topology
                
    Dim pGeoDS As IGeoDataset = pTopo
                
    Dim pValidatedEnv As IEnvelope = pTopo.ValidateTopology(pGeoDS.Extent.Envelope)

                
    'EndEditOperation()

                
    '将检查结果添加到Map
                Dim pTopoLayer As ITopologyLayer = New TopologyLayer
                pTopoLayer.Topology 
    = pTopo
                
    Dim pLayer As ILayer = pTopoLayer
                pLayer.Name 
    = pFeatureClass.AliasName & "_拓扑"
                pMap.AddLayer(pLayer)
            
    End If
        
    End Sub
  • 相关阅读:
    AE二次开发,解决子窗体使用父窗体的AxControl控件
    ArcEngine二次开发中运行出现There is no Spatial Analyst license currently available or enabled.
    Js网站开发学习第一天
    Winform开发1
    MySql安装
    Windows ping加时间戳
    XML特性总结
    linux手册中函数名后小括号中数字的含义
    TCP通信
    swap交换分区概念
  • 原文地址:https://www.cnblogs.com/lauer0246/p/Check_Topo.html
Copyright © 2011-2022 走看看