• ArcGIS Engine+拓扑操作


    /// <summary> /// 建立拓扑 /// </summary> /// <param name="featureDataset">目标数据集</param> /// <param name="topologyName">拓扑名称</param> 
    public void CreateTopology(IFeatureDataset featureDataset, string topologyName) 
    { // 建立一个空拓扑(拓扑名称、获得数据集的XY容差作为拓扑容差) 
    ITopologyContainer topologyContainer = (ITopologyContainer)featureDataset; 
    ITopology topology = topologyContainer.CreateTopology(topologyName,
    topologyContainer.DefaultClusterTolerance, -1""); 
    // 获得“Roads”线状要素类加入到拓扑当中,拓扑等级为1 
    IFeatureClassContainer featureclassContainer = (IFeatureClassContainer)featureDataset;
     IFeatureClass featureClass = featureclassContainer.get_ClassByName("Roads");
     topology.AddClass(featureClass, 5, 1, 1, false); // 建立一个拓扑规则(线丌重合) 
    ItopologyRuleContainer topologyRuleContainer = (ITopologyRuleContainer)topology; 
    ITopologyRule topologyRule = new TopologyRuleClass();
     topologyRule.TopologyRuleType = esriTopologyRuleType.esriTRTLineNoOverlap;
     topologyRule.OriginClassID = featureClass.ObjectClassID; 
    topologyRule.AllOriginSubtypes = true; topologyRule.Name = "Roads No Overlap"; // 把建立好的拓扑规则添加到拓扑中 
    if (topologyRuleContainer.get_CanAddRule(topologyRule)) 
    { topologyRuleContainer.AddRule(topologyRule); } 
    // 验证拓扑 IGeoDataset geoDataset = (IGeoDataset)topology; 
    //根据拓扑对象获得范围 IPolygon searchArea = new PolygonClass(); 
    ISegmentCollection segmentCollection = (ISegmentCollection)searchArea; 
    segmentCollection.SetRectangle(geoDataset.Extent); // 获得整个拓扑中的“脏区” 
    IPolygon dirtyArea = topology.get_DirtyArea(searchArea); // 验证“脏区” 
    IEnvelope dirtyAreaEnvelope = dirtyArea.Envelope; topology.ValidateTopology(dirtyAreaEnvelope);
  • 相关阅读:
    四、java IO--使用字节流拷贝文件
    三、java IO--使用字节流写入文件
    二、java IO--使用字节流读取文件
    一、java--IO概念
    xml解析/读取--dom4j
    java程序执行顺序
    Flask学习——cookie操作
    Linux13 shell函数、数组及awk、awk中的数组
    Linux12 RPM 和yum的使用
    Linux11 IP网段划分及主机接入网络
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/2622270.html
Copyright © 2020-2023  润新知