1. 程式人生 > >arcEngine開發之加載柵格數據

arcEngine開發之加載柵格數據

建立 tps 這也 dataset sdn ont blog 還需 tor

加載數據思路

在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是一個金字塔對象,金字塔可用於改善性能。它們是原始柵格數據集的縮減采樣版本,可包含多個縮減采樣圖層。下圖是柵格數據集創建的兩級金字塔示例:
技術分享圖片
金字塔通過僅檢索使用指定分辨率的數據,可以加快柵格數據的顯示速度。例如進行放大操作時,由於已經建立了金字塔,可以高效率的將需要展示的數據顯示出來。沒有創建金字塔,則必須從磁盤中讀取整個數據集,然後將其重采樣為更小的大小。

創建金字塔會浪費一定的時間,但是,這也意味著後期顯示數據時節省了更多的時間。

更多關於金字塔的信息點擊這裏.

arcEngine開發之加載柵格數據