//此處為矢量圖層的加載方法,由於圖層本身是已經制作好了的MXD類工程文件,所以直接采用MXD的加載方式
if (axMapControl1.CheckMxFile(shpFile))//判斷是否為MXD文件 { IArray pArry; pArry = axMapControl1.ReadMxMaps(shpFile, Type.Missing); IMap pMap; for (int i = 0; i < pArry.Count; i++) { pMap = pArry.get_Element(i) as IMap; if (pMap.Name == "Layers") { axMapControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass; axMapControl1.LoadMxFile(shpFile, 0, Type.Missing); axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault; } }
//此處為柵格圖層的加載方式,需要打開IWorkSpace
string filePath = "文件路徑"; string pathName = System.IO.Path.GetDirectoryName(filePath); string fileName = System.IO.Path.GetFileName(filePath); IWorkspaceFactory pWSF; pWSF = new RasterWorkspaceFactoryClass(); IWorkspace pWS; pWS = pWSF.OpenFromFile(pathName, 0); IRasterWorkspace pRWS; pRWS = pWS as IRasterWorkspace; IRasterDataset pRasterDataset; pRasterDataset = pRWS.OpenRasterDataset(fileName); IRasterPyramid pRasPyrmid; pRasPyrmid = pRasterDataset as IRasterPyramid; 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; axMapControl1.AddLayer(pLayer, 2);//設置柵格圖層的顯示層次