获取mdb下要素类FeatureClass,独立要素类,没有dataset获取要素类

Posted marvelousone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取mdb下要素类FeatureClass,独立要素类,没有dataset获取要素类相关的知识,希望对你有一定的参考价值。

转载自:http://blog.sina.com.cn/s/blog_6faf711d0100za4x.html

获取mdb数据库要素类的名称

整体思路如下:
1.通过IWorkspace的Datasets属性获取工作空间中的所有Dataset对象(IEnumDataset)
2.枚举EnumDataset,获取Dataset对象
3.如果该Dataset是FeatureDataset
4.QI到IFeatureClassContainer接口
for(int i=0;i < pFClContainer.ClassCount;i++)
{
   IFeatureClass pFeatureClass= pFClContainer.Class(i);
   IDataset pDataset = pFeatureClass as IDataset;
   string pFeaClsName= pDataset.Name;
   ……
}
--------------------------------------------  另外 -----------------------------

有一些要素数据集是放到特定的要素数据集中的,而有些则直接位于工作空间中。如下图。

技术分享

获取独立于要素数据集的要素类很简单,方法如下:

 1 /// <summary>  
 2 /// 获取独立的要素类  
 3 /// </summary>  
 4 /// <param name="IN_SomeFeatureDataset">工作空间下任意一个要素数据集</param>  
 5 /// <param name="IN_FeatureClassName">独立要素类的名称</param>  
 6 /// <returns>找的的独立要素类</returns>  
 7 private IFeatureClass PRV_GetIndependentFeatureClass(IFeatureDataset IN_SomeFeatureDataset,string IN_FeatureClassName)  
 8 {  
 9         //获取所有独立的要素类  
10         IEnumDataset Temp_AllIndependentFeatureClass=(IN_SomeFeatureDataset.Workspace.get_Datasets(esriDatasetType.esriDTFeatureClass));  
11         //获取每一个独立的要素类  
12         IFeatureClass Each_IndependentFeatureClass = Temp_AllIndependentFeatureClass.Next() as IFeatureClass;  
13         //遍历所有要素类  
14         while (Each_IndependentFeatureClass != null)  
15         {  
16             //如果找到了就返回  
17             if (Each_IndependentFeatureClass.AliasName==IN_FeatureClassName)  
18                 return Each_IndependentFeatureClass;  
19         }  
20         return null;  
21 }

 

 

以上是关于获取mdb下要素类FeatureClass,独立要素类,没有dataset获取要素类的主要内容,如果未能解决你的问题,请参考以下文章

ARCGIS 数据要素集合

arcengine featureclass里怎么添加feature

ArcGis 创建Annotation注记要素类添加注记要素 并加载到Activeview AO C#

怎样在arcengine中创建一个要素数据集。建立一个要素数据集,数据集下面建四个要素,分别是线要素和面要素

要素类的概念 在ArcGIS中的要素类和要素数据集

featureClass 和featureDataSet的区别