GIS足迹

用地图装点生活的每个角落。MSN:gisfoot@hotmail.com。QQ交流群:42019368。

« c++的11个要点ArcGIS+C#——创建拓扑图层 »
2008-5-14 10:48:35 | 发布:爬山虎 | 分类:二次开发 | 评论:0 | 引用:0 | 浏览:

ArcGIS+C#——构建创建拓扑图层的图层

String strFullPath ;//mdb数据的路径地址

IWorkspaceFactory pFactory= new AccessWorkspaceFactoryClass();

IWorkspace ppOutWS = pFactory.OpenFromFile(strFullPath,0);

IFeatureWorkspace pFWS= (IFeatureWorkspace)ipWks;

ITopologyWorkspace ipTopologyWS = (ITopologyWorkspace) pFWS;

IEnumDatasetName ipDatasetNames = ppOutWS.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);

IDatasetName ipDatasetName = ipDatasetNames.Next();

IFeatureDataset ipDataset = null;

if (ipDatasetName != null)

 {

            ipDataset = pFWS.OpenFeatureDataset(ipDatasetName.Name);

 

}

 

 ITopology ipTopology;

IWorkspace2 pWorkspace = (IWorkspace2)ipFeatDataset.Workspace;

         if (pWorkspace.get_NameExists(esriDatasetType.esriDTTopology, strTopoLayerName))

         {

            ipTopology = ipTopologyWS.OpenTopology(strTopoLayerName);

 

            if (ipTopology == null)

            {

               return;

            }

            ITopologyRuleContainer pTopoRuleContainer = (ITopologyRuleContainer)ipTopology;

 

//加载创建该拓扑层的图层

            if (pTopoRuleContainer != null)

            {

               IEnumRule ipEnumRule = pTopoRuleContainer.Rules;

               IRule ipRule = ipEnumRule.Next();

 

               while (ipRule != null)

               {

                  ITopologyRule ipTopologyRule = (ITopologyRule)ipRule;

 

                  if (ipTopologyRule != null)

                  {

                     //加载源目标层

                     nOriginClassID = ipTopologyRule.OriginClassID;

                     AddBuildTopoLayer(ref pMapCtrl, nOriginClassID, ipFeatClassContainer, index);  //加载图层

 

                     //加载目的目标层

                     nDestClassID = ipTopologyRule.DestinationClassID;

                     AddBuildTopoLayer(ref pMapCtrl, nDestClassID, ipFeatClassContainer, index);  //加载图层

                  }

                  ipRule = ipEnumRule.Next();

               }

            }

ITopologyLayer ipTopologyLayer = new TopologyLayerClass();

            ipTopologyLayer.Topology = ipTopology;

 

            ILayer ipLayer = (ILayer)ipTopologyLayer;    

             axMapControl1.Map.AddLayer(ipLayer);

}

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

最新评论及回复

友情链接

[Top] Powered By Z-Blog 1.8 Devo Build 80201. Theme FormerDays Design By haphic

ICP备案号正在申请。Copyright ©2008 gis足迹. All Rights Reserved.