加載數據思路
在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是一個金字塔對象,金字塔可用於改善性能。它們是原始柵格數據集的縮減採樣版本,可包含多個縮減採樣圖層。下圖是柵格數據集創建的兩級金字塔示例:
金字塔通過僅檢索使用指定分辨率的數據,可以加快柵格數據的顯示速度。例如進行放大操作時,由於已經建立了金字塔,可以高效率的將需要展示的數據顯示出來。沒有創建金字塔,則必須從磁盤中讀取整個數據集,然後將其重採樣爲更小的大小。
創建金字塔會浪費一定的時間,但是,這也意味着後期顯示數據時節省了更多的時間。
更多關於金字塔的信息點擊這裏.