public IWorkspace GetWorkspace(String _pDatabase, GDBType pGDBType = GDBType.FGDB) { ESRI.ArcGIS.Geodatabase.IWorkspaceFactory pWsFactory = null; IWorkspace pWkspace = null; if (pGDBType == GDBType.SHP) { pWsFactory = new ShapefileWorkspaceFactory(); } else if (pGDBType == GDBType.RWS) { pWsFactory = new RasterWorkspaceFactoryClass(); } else if (pGDBType == GDBType.MDB) { pWsFactory = new AccessWorkspaceFactoryClass(); } else if (pGDBType == GDBType.FGDB) { pWsFactory = new ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass(); } else if (pGDBType == GDBType.SDE) { pWsFactory = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); } try { pWkspace = pWsFactory.OpenFromFile(_pDatabase, 0); } catch (Exception EX) { //MessageBox.Show(EX.ToString()); } return(pWkspace); }
/// <summary> /// 创建栅格数据集 /// </summary> /// <param name="pGDBType"></param> /// <param name="pPath"></param> /// <param name="pFileName"></param> /// <param name="pWidth"></param> /// <param name="pHeight"></param> /// <param name="pXCell"></param> /// <param name="pYCell"></param> /// <param name="pNumBand"></param> /// <returns></returns> public IRasterDataset CreateRasterDataset(GDBType pGDBType, string pPath, string pFileName, int pWidth, int pHeight, double pXCell, double pYCell, int pNumBand) { try { IRasterWorkspace2 pRWs = GetWorkspace(pPath, pGDBType) as IRasterWorkspace2; ISpatialReference sr = new UnknownCoordinateSystemClass(); IPoint origin = new PointClass(); origin.PutCoords(0.0, 0.0); IRasterDataset rasterDataset = pRWs.CreateRasterDataset(pFileName, "TIFF", origin, pWidth, pHeight, pXCell, pYCell, pNumBand, rstPixelType.PT_UCHAR, sr, true); return(rasterDataset); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return(null); } }
/// <summary> /// 获取工作空间SDE,文件型数据库,MDB,以及shapefile文件所在工作空间,这里可以用一个枚举 /// </summary> /// <param name="_pDatabase"></param> /// <returns></returns> public IWorkspace GetWorkspace(String _pDatabase, GDBType pGDBType = GDBType.FGDB) { ESRI.ArcGIS.Geodatabase.IWorkspaceFactory pWsFactory = null; IWorkspace pWkspace = null; if (pGDBType == GDBType.SHP) { pWsFactory = new ShapefileWorkspaceFactory(); } else if (pGDBType == GDBType.RWS) { pWsFactory = new RasterWorkspaceFactoryClass(); } else if (pGDBType == GDBType.MDB) { pWsFactory = new AccessWorkspaceFactoryClass(); } else if (pGDBType == GDBType.FGDB) { pWsFactory = new ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass(); } else if (pGDBType == GDBType.SDE) { pWsFactory = new ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); } try { pWkspace = pWsFactory.OpenFromFile(_pDatabase, 0); } catch (Exception EX) { //MessageBox.Show(EX.ToString()); } return pWkspace; }
/// <summary> /// 创建栅格数据集 /// </summary> /// <param name="pGDBType"></param> /// <param name="pPath"></param> /// <param name="pFileName"></param> /// <param name="pWidth"></param> /// <param name="pHeight"></param> /// <param name="pXCell"></param> /// <param name="pYCell"></param> /// <param name="pNumBand"></param> /// <returns></returns> public IRasterDataset CreateRasterDataset(GDBType pGDBType, string pPath, string pFileName, int pWidth, int pHeight, double pXCell, double pYCell, int pNumBand) { try { IRasterWorkspace2 pRWs = GetWorkspace(pPath, pGDBType) as IRasterWorkspace2; ISpatialReference sr = new UnknownCoordinateSystemClass(); IPoint origin = new PointClass(); origin.PutCoords(0.0, 0.0); IRasterDataset rasterDataset = pRWs.CreateRasterDataset(pFileName, "TIFF", origin, pWidth, pHeight, pXCell, pYCell, pNumBand, rstPixelType.PT_UCHAR, sr, true); return rasterDataset; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return null; } }