从符号库中取出渲染使用的色带对象IColorRamp(也可以自己定义色带内容)
<pre name="code" class="csharp">IStyleGallery pSG = new ServerStyleGalleryClass();
IStyleGalleryStorage pSGS = pSG as IStyleGalleryStorage;
try
{
pSGS.AddFile(Application.StartupPath + "\\ESRI.ServerStyle");
}
catch (Exception err)
{
MessageBox.Show(err.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
IEnumStyleGalleryItem pMarkerSymbolEnum = pSG.get_Items("Color Ramps", Application.StartupPath+"\\ESRI.ServerStyle", "");
pMarkerSymbolEnum.Reset();
IStyleGalleryItem pItem = pMarkerSymbolEnum.Next();
while (pItem != null)
{
if (pItem.Name == "Elevation #1")
{
pColorRamp = pItem.Item as IColorRamp;
break;
}
pItem = pMarkerSymbolEnum.Next();
}
使用取得的ColorRamp对象渲染DEM
IRasterLayer pRasterLayr = axMapControl1.get_Layer(0) as IRasterLayer; IRasterStretchColorRampRenderer pStretchRenderer = new RasterStretchColorRampRendererClass(); IRasterRenderer pRasterRenderer = (IRasterRenderer)pStretchRenderer; IRaster pRaster = pRasterLayr.Raster; pRasterRenderer.Raster = pRaster; pRasterRenderer.Update(); pStretchRenderer.BandIndex = 0; pStretchRenderer.ColorRamp = pColorRamp; IRasterStretch pStretchType = (IRasterStretch)pRasterRenderer; pStretchType.StretchType = esriRasterStretchTypesEnum.esriRasterStretch_StandardDeviations; pStretchType.StandardDeviationsParam = 2.5; pRasterLayr.Renderer = pRasterRenderer; axMapControl1.Refresh(); axTOCControl1.SetBuddyControl(axMapControl1); axTOCControl1.Update(); axTOCControl1.Refresh();
效果如下图所示
原文:http://www.cnblogs.com/lovebay/p/5026381.html