原文 ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据
对文件地理数据库、个人地理数据库和 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);
}