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
  • 相关阅读:
    Linux性能及调优指南(翻译)之Linux内存架构
    dtrace4linux
    perlchina2016 大会
    GO 语言圣经 -在线阅读
    dtrace4linux_Example
    hellogcc -100GDB技巧
    ITGEGE在线教育
    编译系统透视:图解编译原理
    C 高级编程5 IO与文件权限
    C 高级编程4 makefile 与 IO
  • 原文地址:https://www.cnblogs.com/lauer0246/p/Check_Topo.html
Copyright © 2011-2022 走看看