ArcEngine打開GDB,SHP的方法


1.打開gdb,shp,mdb的方法

  1. 1.打開gdb方法
public List<IDataset> addGdbDataset(){
List<IDataset> dataset = new List<IDataset>();
IWorkspaceFactory pFactory = new FileGDBWorkspaceFactory();
string filePath = "G:\\Tasks\\調查成果.gdb";
IWorkspace pWorkspace = pFactory.OpenFromFile(filePath, 0);
IFeatureWorkspace pFeatWorkspace=pWorkspace as IFeatureWorkspace;
IEnumDataset pEnumDatasets=workspace.get_Datasets(esriDatasetType.esriDTAny) as IEnumDataset;
IDataset pDataset=pEnumDatasets.Next();
while(pDataset!=null)
{
                    if (pDataset.Type == esriDatasetType.esriDTFeatureClass)
                    {
                        //string aliasName = pFeatureWorkspace.OpenFeatureClass(pDataset.Name).AliasName;
                        listFeaClass.Add(pDataset.Name);
                        listDataSet.Add(pDataset);
                    }
                    else if (pDataset.Type == esriDatasetType.esriDTFeatureDataset)
                    {
                        if (pDataset.Name == "自然資源狀況分區")
                        {
                            IEnumDataset pESubDataset = pDataset.Subsets;
                            IDataset pSubDataset = pESubDataset.Next();
                            while (pSubDataset != null)
                            {
                                listFeaClass.Add(pSubDataset.Name);
                                listDataSet.Add(pSubDataset);
                                pSubDataset = pESubDataset.Next();
                            }
                        }
                    }

                    pDataset = pEnumDatasets.Next();
                }
 return listDataSet;}

  1.2打開shp文件

public IFeatureLayer GetShpType()
        {
            OpenFileDialog opfd1 = new OpenFileDialog();
            opfd1.Filter = "shapefile(*.shp)|*.shp|allfile(*.*)|*.*";
            opfd1.Multiselect = false;
            opfd1.InitialDirectory = @"G:\Tasks\06NewTask\shp";
            DialogResult diaLres = opfd1.ShowDialog();
            if (diaLres != DialogResult.OK)
                return null;
            string path1 = opfd1.FileName;
            //openfiledialog 常規使用

            string pFolder = Path.GetDirectoryName(path1);
            string pFileName = Path.GetFileName(path1);
            //System.IO.Path

            IWorkspaceFactory pworkspaceFactory = new ShapefileWorkspaceFactory();
            //創建工作空間工廠

            IWorkspace pWorkspace = pworkspaceFactory.OpenFromFile(pFolder, 0);
            //打開shpfile工作空間

            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass(pFileName);
            //打開要素類 

            IFeatureLayer pFLayer = new FeatureLayerClass();
            //創建要素圖層

            pFLayer.FeatureClass = pFC;
            pFLayer.Name = pFC.AliasName;
            ILayer pLayer = pFLayer as ILayer;
            return pFLayer;
            //以上三行:關聯圖層和要素類
          
        }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM