arcEngine开发之加载栅格数据


加载数据思路

在Engine中加载各种各样的数据都是通过这样的格式

IWorkspaceFactory pWorkspace = new IWorkspaceFactory();
IWorkspace pWorkspace = pWorkspace.OpenFromFile(string path, int hWnd);
pWorkspace as ...                 //转换成相应的工作空间
pWorkspace.OpenDataset()          //打开数据

一般的数据通过这样的方式都是可以打开的,但是,打开栅格数据时还需要(不是必须)这些代码来加快加载效率

IRasterPyrmid pRasPyrmid;
pRasPyrmid = pRasterDataset as IRasterPyramid3;
if(pRasPyrmid != null)
{
    if(!(pRasPyrmid.Present))
    {
        pRasPyrmid.Create();    //创建金字塔
    }
}
IRaster pRaster;
pRaster = pRasterDataset.CreateDefaultRaster();
IRasterLayer pRasterLayer;
pRasterLayer = new RasterLayerClass();
pRasterLayer.CreateFromRaster(pRaster);
ILayer pLayer = pRasterLayer as ILayer;
axMapControl.AddLayer(pLayer,0);

这里的RasPyrmid是一个金字塔对象,金字塔可用于改善性能。它们是原始栅格数据集的缩减采样版本,可包含多个缩减采样图层。下图是栅格数据集创建的两级金字塔示例:
这里写图片描述
金字塔通过仅检索使用指定分辨率的数据,可以加快栅格数据的显示速度。例如进行放大操作时,由于已经建立了金字塔,可以高效率的将需要展示的数据显示出来。没有创建金字塔,则必须从磁盘中读取整个数据集,然后将其重采样为更小的大小。

创建金字塔会浪费一定的时间,但是,这也意味着后期显示数据时节省了更多的时间。

更多关于金字塔的信息点击这里.

转载自:https://blog.csdn.net/FireFox1997/article/details/79427569

You may also like...