2023年11月23日发(作者:)

c#+ArcGISEngine-读取⽂件地理数据库中的⽮量要素

ArcGIS中的⽂件地理数据库是以⽂件夹形式存储的,获取其⽮量要素的代码如下:

///

/// 得到数据库中的⽮量元素

///

/// 数据库路径

///

private List GetFeatureClassByDataBase(string Path)

{

List pFeatureList = new List();

IWorkspace pWorkspace = null;

if (ension(Path).Equals(".mdb"))

{

IWorkspaceFactory pAccessWorkspaceFactory = new AccessWorkspaceFactoryClass();

pWorkspace = omFile(Path, 0);

}

else

{

IWorkspaceFactory pFileGDBWorkspaceFactory = new FileGDBWorkspaceFactoryClass();

pWorkspace = omFile(Path, 0);

}

//打开⼯作空间

IEnumDataset pEnumDataset = ts[FeatureDataset];//只显⽰⽮量要素集合

();

IDataset pDataset = ();

if (pDataset != null)

{

while (pDataset != null)

{

IFeatureDataset pFeatureDataset = pDataset as IFeatureDataset;

IFeatureClassContainer pFeatureClassContainer = (IFeatureClassContainer)pFeatureDataset;

IEnumFeatureClass pEnumFeatureClass = s;

IFeatureClass pFeatureClass = ();

while (pFeatureClass != null)

{

ComboInfo pComboInfo1 = new ComboInfo();

= ame;

Value = pFeatureClass;

(pComboInfo1);

pFeatureClass = ();

}

pDataset = ();

}

}

IEnumDataset pEnumFeature = ts[FeatureClass];//只显⽰⽮量要素类

();

IDataset pDatasetFeature = ();

while (pDatasetFeature != null)

{

ComboInfo pComboInfo = new ComboInfo();

= ;

FolderBrowserDialog pFolderBrowserDialog = new FolderBrowserDialog();

pFolderBrowserDialog.Description = "打开⽂件地理数据库(*.gdb)";

if (pFolderBrowserDialog.ShowDialog() == DialogResult.OK)

{

Btn_DataBasePath.Text = pFolderBrowserDialog.SelectedPath;

string pPath = Btn_DataBasePath.();

string pExtension = System.ension(pPath);

if (!pExtension.Equals(".gdb"))

{

XtraMessageBox.Show("选择的路径错误,请重新输⼊", "提⽰");

return;

}

}