C# 获取Geodatabase个人数据库中要素类

去掉了图片转载,原文http://blog.csdn.net/guanzg/article/details/3305241


arcgis进行二次开发中,如何获取geodatabase中的要素类是最基本的一个步骤,以下示意代码实现的就是如何获取geodatabase中的要素类

vate void btn_search_Click(object sender, System.EventArgs e)

  {
 //getfilename()  为获取文件路径
   try
   {
    string path=getfilename().Substring(0,getfilename().Length-2);
    IWorkspaceFactory pFactory=new AccessWorkspaceFactoryClass();
    IWorkspace pWorkspace=pFactory.OpenFromFile(@path,0);
    IFeatureWorkspace pFeatWorkspace=pWorkspace as IFeatureWorkspace;
       
    IEnumDataset iEDS=pWorkspace.get_Datasets(esriDatasetType.esriDTAny) as IEnumDataset;
    iEDS.Reset();
    IDataset ids=iEDS.Next() as IDataset;
    
    while (ids is IFeatureDataset)
    {
     IFeatureDataset pFeatureDataset=pFeatWorkspace.OpenFeatureDataset(ids.Name);
     IEnumDataset iEDS1=pFeatureDataset.Subsets;
     iEDS1.Reset();
     IDataset ids1=iEDS1.Next();
     while(ids1 is FeatureClass)
     {
      IFeatureLayer pFeatureLayer=new FeatureLayerClass();
      pFeatureLayer.FeatureClass=pFeatWorkspace.OpenFeatureClass(ids1.Name);

  //获取面要素
      if(pFeatureLayer.FeatureClass.ShapeType==ESRI.ArcObjects.Core.esriGeometryType.esriGeometryPolygon)
      {
       pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName; 
       this.list_feature.Items.Add(pFeatureLayer.Name.ToString());  
       
      }

//获取线要素

      if(pFeatureLayer.FeatureClass.ShapeType==ESRI.ArcObjects.Core.esriGeometryType.esriGeometryPolyline)
      {
       pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName; 
       this.list_polyline.Items.Add(pFeatureLayer.Name.ToString());  
       
      }

      ids1=iEDS1.Next();

     }
     
     ids=iEDS.Next();
    }
     
   }


   catch(Exception err)
   {
    MessageBox.Show(err.ToString(),"读取空间数据失败",MessageBoxButtons.OK,MessageBoxIcon.Error);
    Application.Exit();
   }
   finally
   {
                
   }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值