代码
public static ILayer RasterToLayer(string sFullName)
{
ILayer pLayer = null;
try
{
var sFolder = Path.GetDirectoryName(sFullName);
var sName = Path.GetFileName(sFullName);
var pRasterWorkspace = new RasterWorkspaceFactory().OpenFromFile(sFolder, 0) as IRasterWorkspace;
var pRasterDataset = pRasterWorkspace.OpenRasterDataset(sName);
if ((pRasterDataset is IRasterPyramid3 pRasterPyramid) && (!pRasterPyramid.Present))
{
pRasterPyramid.Create(); //自动创建金字塔(耗时较长)
}
var pRaster = pRasterDataset.CreateDefaultRaster();
((IRasterProps)(pRaster as IRasterBandCollection).Item(0)).NoDataValue = 0; //设置黑色无影像部分为白色背景
var pRasterLayer = new RasterLayer();
pRasterLayer.CreateFromRaster(pRaster);
pLayer = pRasterLayer as ILayer; //转换为ILayer
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return pLayer;
}
补充
创建金字塔可以加快数据加载速度。如未创建,本功能将在首次调用时自动创建,但速度较慢。可考虑将其封装成脚本调用。
本文介绍了一种使用ArcGIS进行影像图层加载的方法,通过创建金字塔来提高数据加载速度。代码示例展示了如何从指定路径加载影像文件,创建金字塔,并设置无影像区域的显示方式。
460

被折叠的 条评论
为什么被折叠?



