ArcEngine打开栅格数据

打开栅格数据
要打开一个栅格数据,这个有点类似我们打开FeatureClass一样,先要获取工作空间,只不过我们过于要素类的时候需要IFeatureWorkspace,而栅格数据则需要IRasterWorkspace,示例如下: 

        /// <summary>
        /// 获取栅格工作空间
        /// </summary>
        /// <param name="pWsName">工作空间地址</param>
        /// <returns></returns>
        public IRasterWorkspace GetRasterWorkspace(string pWsName)
        {
            try
            {
                IWorkspaceFactory pWorkFact = new RasterWorkspaceFactoryClass();
                return pWorkFact.OpenFromFile(pWsName, 0) as IRasterWorkspace;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
        /// <summary>
        /// 获取空间下的数据集
        /// </summary>
        /// <param name="pFolderName">工作空间地址</param>
        /// <param name="pFileName">数据集文件名</param>
        /// <returns></returns>
        public 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中的栅格数据集和栅格目录,如下示例: 

        /// <summary>
        /// 打开GDB栅格数据集
        /// </summary>
        /// <param name="pRasterWorkspaceEx"></param>
        /// <param name="pDatasetName"></param>
        /// <returns></returns>
        public IRasterDataset OpenGDBRasterDataset(IRasterWorkspaceEx pRasterWorkspaceEx, string pDatasetName)
        {
            //打开存放在数据库中的栅格数据
            return pRasterWorkspaceEx.OpenRasterDataset(pDatasetName);
        }

QQ交流群:607330463 GIS开发技术最强交流群 

猜你喜欢

转载自blog.csdn.net/qq_30430463/article/details/112373057