ArcGIS Engine 10 开发手册(4-4)获取数据库中的要素类
发布时间: 2017-10-09
所属分类: ArcGIS Engine 10 开发手册
在 ArcGIS Engine 中,要得到某一个类,首要要获取工作空间,然后进入工作空间再得到相应的东西,也就是以下两个步骤:
- 获取工作空间;
- 获取相应的要素类。
我们定义一个函数用来获取个人数据库的路径
public string WsPath () {
string WsFileName = "";
OpenFileDialog OpenFile = new OpenFileDialog ();
OpenFile.Filter = "个人数据库(MDB)|*.mdb";
DialogResult DialogR = OpenFile.ShowDialog ();
if (DialogR == DialogResult.Cancel)
{
} else
{
WsFileName = OpenFile.FileName;
}
return WsFileName;
}
要获取要素类,首先获取工作空间,然后对工作空间中的要素类进行遍历,代码如下:
private void button2_Click (object sender, EventArgs e)
{
string WsName = WsPath ();
if (WsName != "")
{
IWorkspaceFactory pWsFt = new AccessWorkspaceFactoryClass ();
IWorkspace pWs = pWsFt.OpenFromFile (WsName, 0);
IEnumDataset pEDataset = pWs.get_Datasets (esriDatasetType.esriDTAny);
IDataset pDataset = pEDataset.Next ();
while (pDataset != null)
{
if (pDataset.Type == esriDatasetType.esriDTFeatureClass)
{
FeatureClassBox.Items.Add (pDataset.Name);
}
//如果是数据集
else if (pDataset.Type == esriDatasetType.esriDTFeatureDataset)
{
IEnumDataset pESubDataset = pDataset.Subsets;
IDataset pSubDataset = pESubDataset.Next ();
while (pSubDataset != null)
{
FeatureClassBox.Items.Add (pSubDataset.Name);
pSubDataset = pESubDataset.Next ();
}
}
pDataset = pEDataset.Next ();
}
}
FeatureClassBox.Text = FeatureClassBox.Items[0].ToString ();
}
效果如下:
ArcGIS Engine 10 开发手册全集
ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
公众号关注
知识星球
手机阅读
最新GIS干货
私享圈子
当subdataSet中有拓扑图层的时候,在IDataset pSubDataset = pESubDataset.Next ();会异常,啥情况
报了什么错?
当gdb中要素类的坐标系是自定义的投影坐标系,openfeatureclass无法枚举到要素类或者数据集是什么原因?如何解决?