对文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较
1.打开栅格数据
要打开一个栅格数据,这个有点类似我们打开 FeatureClass 一样,先要获取工作空间,只不过我们过于要素类的时候需要 IFeatureWorkspace,而栅格数据则需要 IRasterWorkspace,示例如下:
IRasterWorkspace GetRasterWorkspace(string pWsName) { try { IWorkspaceFactory pWorkFact = new RasterWorkspaceFactoryClass(); return pWorkFact.OpenFromFile(pWsName, 0) as IRasterWorkspace; } catch (Exception ex) { return null; } } IRasterDataset OpenFileRasterDataset(string pFolderName, string pFileName) { IRasterWorkspace pRasterWorkspace = GetRasterWorkspace(pFolderName); IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(pFileName); return pRasterDataset; }
注意当访问的栅格数据是存在SDE中,文件数据库中或者个人数据库中,应该使用IRasterWorkspaceEx接口
IRasterWorkspace 与 IRasterWorkspaceEx 的区别
1) IRasterWorkspace 主要是用来读取以文件格式存储在本地的栅格数据
2) IRasteWorkspaceEx 接口主要是用来读取 GeoDatabase 中的栅格数据集和栅格目录,如下示例:
IRasterDataset OpenGDBRasterDataset(IRasterWorkspaceEx pRasterWorkspaceEx, string pDatasetName) { //打开存放在数据库中的栅格数据 return pRasterWorkspaceEx.OpenRasterDataset(pDatasetName); }