public static IRasterRenderer ClassifyRenderer(IRasterLayer raslyr,IRgbColor start_clr,IRgbColor end_clr,int count) { IRasterClassifyColorRampRenderer pRClassRend = new RasterClassifyColorRampRendererClass(); IRasterRenderer rasterRenderer = pRClassRend as IRasterRenderer; IRaster pRaster = raslyr.Raster; IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection; IRasterBand pRBand = pRBandCol.Item(0); if (pRBand.Histogram == null) { pRBand.ComputeStatsAndHist(); } rasterRenderer.Raster = pRaster; pRClassRend.ClassCount = count; rasterRenderer.Update(); IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRampClass(); colorRamp.Size = count; colorRamp.FromColor = start_clr; colorRamp.ToColor = end_clr; bool createColorRamp; colorRamp.CreateRamp(out createColorRamp); IFillSymbol fillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < pRClassRend.ClassCount; i++) { fillSymbol.Color = colorRamp.get_Color(i); pRClassRend.set_Symbol(i, fillSymbol as ISymbol); pRClassRend.set_Label(i, pRClassRend.get_Break(i).ToString("0.00")); } return rasterRenderer; }
/// <summary> /// 根据容积率大小进行梯度颜色显示 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button4_Click(object sender, EventArgs e) { //梯度颜色算法 IAlgorithmicColorRamp pAlgoColorRamp = new AlgorithmicColorRampClass(); pAlgoColorRamp.Size = MyArray.Length; IRgbColor pFromColor = new RgbColorClass(), pToColor = new RgbColorClass(); pFromColor.Red = 255; pFromColor.Green = 255; pFromColor.Blue = 255; pToColor.Red = 0; pToColor.Green = 255; pToColor.Blue = 255; pAlgoColorRamp.FromColor = pFromColor; pAlgoColorRamp.ToColor = pToColor; bool ok = true; pAlgoColorRamp.CreateRamp(out ok); IClassBreaksRenderer pRender = new ClassBreaksRendererClass(); pRender.BreakCount = MyArray.Length; pRender.Field = "Plot_Ratio"; ISimpleFillSymbol pSym; System.Array.Sort(MyArray); for (int i = 0; i < MyArray.Length; i++) { pRender.set_Break(i, (double)MyArray.GetValue(i)); pSym = new SimpleFillSymbolClass(); pSym.Color = pAlgoColorRamp.get_Color(i); pRender.set_Symbol(i, (ISymbol)pSym); } IGeoFeatureLayer pGeoLyr = (IGeoFeatureLayer)Form1.mainForm.axMapControl1.get_Layer(1);//确保先加入地块图层 pGeoLyr.Renderer = (IFeatureRenderer)pRender; Form1.mainForm.axMapControl1.Refresh(); Form1.mainForm.axTOCControl1.Update(); }
public static IRasterRenderer ClassifyRenderer(ESRI.ArcGIS.Geodatabase.IRasterDataset pRasterDataset) { try { //create the classify render:创建渲染器 IRasterClassifyColorRampRenderer pClassifyRenderer = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRasterRenderer = (IRasterRenderer)pClassifyRenderer; IRaster pRaster = pRasterDataset.CreateDefaultRaster(); pRasterRenderer.Raster = pRaster; pClassifyRenderer.ClassCount = 10; pRasterRenderer.Update(); //创建颜色 IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 255; pFromColor.Green = 0; pFromColor.Blue = 0; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 0; pToColor.Green = 255; pToColor.Blue = 255; //set the color ramp for the symbology:生成色带 IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass(); pRamp.Size = 10; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool pBoolColorRamp; pRamp.CreateRamp(out pBoolColorRamp); //create the symbol for the classes.:创建符号 IFillSymbol pFillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < pClassifyRenderer.ClassCount; i++) { pFillSymbol.Color = pRamp.get_Color(i); pClassifyRenderer.set_Symbol(i, (ISymbol)pFillSymbol); pClassifyRenderer.set_Label(i, Convert.ToString(i)); } return(pRasterRenderer); } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return(null); } }
public static void funColorForRaster_Classify(IRasterLayer pRasterLayer, int ClassNum) { IRasterClassifyColorRampRenderer pRClassRend = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRRend = pRClassRend as IRasterRenderer; IRaster pRaster = pRasterLayer.Raster; IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection; IRasterBand pRBand = pRBandCol.Item(0); if (pRBand.Histogram == null) { pRBand.ComputeStatsAndHist(); } pRRend.Raster = pRaster; pRClassRend.ClassCount = ClassNum; pRRend.Update(); IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 0;//绿 pFromColor.Green = 255; pFromColor.Blue = 0; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 255;//红 pToColor.Green = 0; pToColor.Blue = 0; IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRampClass(); colorRamp.Size = ClassNum; colorRamp.FromColor = pFromColor; colorRamp.ToColor = pToColor; bool createColorRamp; colorRamp.CreateRamp(out createColorRamp); IFillSymbol fillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < pRClassRend.ClassCount; i++) { fillSymbol.Color = colorRamp.get_Color(i); pRClassRend.set_Symbol(i, fillSymbol as ISymbol); pRClassRend.set_Label(i, (i + 1).ToString()); } pRasterLayer.Renderer = pRRend; MainFrom.m_mapControl.AddLayer(pRasterLayer); }
//Ϊդ��ͼ�����ݽ��з�����ɫ public static IRasterLayer GetRLayerClassifyColor(IRaster pRaster, double dMaxDis) { IRasterClassifyColorRampRenderer pClassRen = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRasRen = pClassRen as RasterClassifyColorRampRendererClass; //Set raster for the render and update pRasRen.Raster = pRaster; pClassRen.ClassCount = 10; pRasRen.Update(); //Create a color ramp to use //���������յ���ɫ IColor pFromColor = new RgbColorClass(); IRgbColor pRgbColor = pFromColor as IRgbColor; pRgbColor.Red = 255; pRgbColor.Green = 0; pRgbColor.Blue = 0; IColor pToColor = new RgbColorClass(); pRgbColor = pToColor as IRgbColor; pRgbColor.Red = 0; pRgbColor.Green = 255; pRgbColor.Blue = 0; //������ɫ�ּ� IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass(); pRamp.Size = 10; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool ok = true; pRamp.CreateRamp(out ok); //Create symbol for the classes IFillSymbol pFSymbol = new SimpleFillSymbolClass(); double LabelValue = Convert.ToDouble(dMaxDis / 6); for (int i = 0; i <= pClassRen.ClassCount - 1; i++) { pFSymbol.Color = pRamp.get_Color(i); pClassRen.set_Symbol(i, pFSymbol as ISymbol); double h1 = LabelValue * i; double h2 = LabelValue * (i + 1); pClassRen.set_Label(i, h1.ToString() + "��" + h2.ToString()); } //Update the renderer and plug into layer pRasRen.Update(); IRasterLayer pRLayer = new RasterLayerClass(); pRLayer.CreateFromRaster(pRaster); pRLayer.Renderer = pClassRen as IRasterRenderer; return pRLayer; }
//Ϊդ��ͼ�����ݰ��մ���Сֵ�����ֵ�ķ�����ɫ public static IRasterLayer SetRsLayerClassifiedColor(IRaster pRaster) { IRasterClassifyColorRampRenderer pClassRen = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRasRen = pClassRen as RasterClassifyColorRampRendererClass; //Set raster for the render and update pRasRen.Raster = pRaster; pClassRen.ClassCount = 9; pRasRen.Update(); //Create a color ramp to use //���������յ���ɫ IColor pFromColor = new RgbColorClass(); IRgbColor pRgbColor = pFromColor as IRgbColor; pRgbColor.Red = 255; pRgbColor.Green = 200; pRgbColor.Blue = 0; IColor pToColor = new RgbColorClass(); pRgbColor = pToColor as IRgbColor; pRgbColor.Red = 0; pRgbColor.Green = 0; pRgbColor.Blue = 255; //������ɫ�ּ� IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass(); pRamp.Size = 9; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool ok = true; pRamp.CreateRamp(out ok); //���դ��ͳ����ֵ IRasterBandCollection pRsBandCol = pRaster as IRasterBandCollection; IRasterBand pRsBand = pRsBandCol.Item(0); pRsBand.ComputeStatsAndHist(); IRasterStatistics pRasterStatistic = pRsBand.Statistics; double dMaxValue = pRasterStatistic.Maximum; double dMinValue = pRasterStatistic.Minimum; //Create symbol for the classes IFillSymbol pFSymbol = new SimpleFillSymbolClass(); double LabelValue = Convert.ToDouble((dMaxValue - dMinValue) / 9); for (int i = 0; i <= pClassRen.ClassCount - 1; i++) { pFSymbol.Color = pRamp.get_Color(i); pClassRen.set_Symbol(i, pFSymbol as ISymbol); double h1 = (LabelValue * i) + dMinValue; double h2 = (LabelValue * (i + 1)) + dMinValue; pClassRen.set_Label(i, h1.ToString() + "��" + h2.ToString()); } //Update the renderer and plug into layer pRasRen.Update(); IRasterLayer pRLayer = new RasterLayerClass(); pRLayer.CreateFromRaster(pRaster); pRLayer.Renderer = pClassRen as IRasterRenderer; return pRLayer; }
/// <summary> /// 设置图层渲染器。 /// </summary> /// <param name="rasterLayer">需要渲染唯一值的栅格图层。</param> /// <param name="renderfiled">渲染的字段(可选,默认为Value)。</param> /// <returns></returns> public IRasterRenderer UniqueValueRender(IRasterLayer rasterLayer, string renderfiled = "Value") { try { //这是从头用到尾的对象 IRasterUniqueValueRenderer uniqueValueRenderer = new RasterUniqueValueRendererClass { Field = renderfiled }; IRasterRenderer pRasterRenderer = uniqueValueRenderer as IRasterRenderer; //计算栅格唯一值 IRasterCalcUniqueValues calcUniqueValues = new RasterCalcUniqueValuesClass(); IUniqueValues uniqueValues = new UniqueValuesClass(); calcUniqueValues.AddFromRaster(rasterLayer.Raster, 0, uniqueValues); //设置唯一值 IRasterRendererUniqueValues renderUniqueValues = uniqueValueRenderer as IRasterRendererUniqueValues; renderUniqueValues.UniqueValues = uniqueValues; //创建色带 IRgbColor pFromColor = FromIC; IRgbColor pToColor = ToIC; IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRampClass { FromColor = pFromColor, ToColor = pToColor, Size = uniqueValues.Count }; bool pOk; colorRamp.CreateRamp(out pOk); //设置标题 uniqueValueRenderer.HeadingCount = 1; uniqueValueRenderer.set_Heading(0, "All Data Value"); uniqueValueRenderer.set_ClassCount(0, uniqueValues.Count); //设置色带 IRasterRendererColorRamp pRasterRendererColorRamp = uniqueValueRenderer as IRasterRendererColorRamp; pRasterRendererColorRamp.ColorRamp = colorRamp; //需要对算出来的唯一值升序重排 double[] tmp = new double[uniqueValues.Count]; for (int i = 0; i < uniqueValues.Count; i++) { tmp[i] = Convert.ToDouble(uniqueValues.get_UniqueValue(i)); } System.Array.Sort(tmp); //对每一个唯一值设置颜色 for (int i = 0; i < uniqueValues.Count; i++) { //添加唯一值并设置标签 uniqueValueRenderer.AddValue(0, i, tmp[i]); uniqueValueRenderer.set_Label(0, i, tmp[i].ToString()); //透明色及参数 IRgbColor zerocolor = new RgbColorClass() { Transparency = 0, NullColor = true, }; IFillSymbol fs = new SimpleFillSymbol(); //唯一值填充符号 if (tmp[i] == 0) //将值为0的栅格颜色设为透明 { fs = new SimpleFillSymbol { Color = zerocolor }; } else //值不为零则设置为色带对应索引颜色 { fs.Color = colorRamp.get_Color(i); } uniqueValueRenderer.set_Symbol(0, i, fs as ISymbol); //对唯一值设置色带对应颜色 } return(pRasterRenderer); } catch (Exception ex) { MessageBox.Show(ex.ToString()); return(null); } }
private void btn_2e_Click(object sender, EventArgs e) { ILayer pLayer = new FeatureLayerClass(); IFeatureClass featureClass = GetFeatureClass(@"D:\a_gis工程设计实践课\china\墓穴地shp\grave.shp"); IGeoDataset geo = featureClass as IGeoDataset; object extend = geo.Extent; object o = null; IFeatureClassDescriptor feades = new FeatureClassDescriptorClass(); feades.Create(featureClass, null, "area"); IRasterRadius rasterrad = new RasterRadiusClass(); rasterrad.SetVariable(12, ref o); object dCell = 0.014800000;//可以根据不同的点图层进行设置 IInterpolationOp interpla = new RasterInterpolationOpClass(); IRasterAnalysisEnvironment rasanaenv = interpla as IRasterAnalysisEnvironment; rasanaenv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref dCell); rasanaenv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extend, ref o); IGeoDataset g_GeoDS_Raster = interpla.IDW((IGeoDataset)feades, 2, rasterrad, ref o); IRaster pOutRsater = (IRaster)g_GeoDS_Raster; IRasterLayer pOutRasterlayer = new RasterLayerClass(); pOutRasterlayer.CreateFromRaster(pOutRsater); pOutRasterlayer.Name = "两个因素都考虑"; //IRaster raster = pOutRasterlayer.Raster; IRaster2 raster2 = (IRaster2)pOutRsater; // 指定像素块大小 IPnt pntBlock = new PntClass(); pntBlock.X = 1280; pntBlock.Y = 1280; //创建一个光标以给定像素块大小 //定义RasterCursor初始化,参数设为null,内部自动设置PixelBlock大小 //IRasterCursor pRasterCursor = pRaster2.CreateCursorEx(null); IRasterCursor rasterCursor = raster2.CreateCursorEx(null); //控制像素块级别的编辑操作 IRasterEdit rasterEdit = raster2 as IRasterEdit; if (rasterEdit.CanEdit()) { //得到一段光栅带 IRasterBandCollection bandCollection = (IRasterBandCollection)pOutRsater; System.Array pixels; IPnt pnt = null; object value; int bandCount = bandCollection.Count; //创建像素块 IPixelBlock3 pixelBlock3 = null; int blockWidth = 0; int blockHeight = 0; double temp = 0; do { pixelBlock3 = rasterCursor.PixelBlock as IPixelBlock3; blockWidth = pixelBlock3.Width; blockHeight = pixelBlock3.Height; for (int k = 0; k < bandCount; k++) { //指定平面的像素的数组 pixels = (System.Array)pixelBlock3.get_PixelData(k); for (int i = 0; i < blockWidth; i++) { for (int j = 0; j < blockHeight; j++) { //value = pixels.GetValue(i, j); ////if (Convert.ToInt32(value) == 0) //{ //设置像素的颜色值 temp = PixelValue1[i, j] + PixelValue2[i, j]; pixels.SetValue((int)temp, i, j); //} } } pixelBlock3.set_PixelData(k, pixels); } pnt = rasterCursor.TopLeft; rasterEdit.Write(pnt, (IPixelBlock)pixelBlock3); }while (rasterCursor.Next()); System.Runtime.InteropServices.Marshal.ReleaseComObject(rasterEdit); //渲染 IRasterClassifyColorRampRenderer pRClassRend = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRRend = pRClassRend as IRasterRenderer; IRaster pRaster = pOutRasterlayer.Raster; IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection; IRasterBand pRBand = pRBandCol.Item(0); if (pRBand.Histogram == null) { pRBand.ComputeStatsAndHist(); } pRRend.Raster = pRaster; pRClassRend.ClassCount = 10; pRRend.Update(); IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 135;//天蓝色 pFromColor.Green = 206; pFromColor.Blue = 235; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 124;//草坪绿 pToColor.Green = 252; pToColor.Blue = 0; IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRampClass(); colorRamp.Size = 10; colorRamp.FromColor = pFromColor; colorRamp.ToColor = pToColor; bool createColorRamp; colorRamp.CreateRamp(out createColorRamp); IFillSymbol fillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < pRClassRend.ClassCount; i++) { fillSymbol.Color = colorRamp.get_Color(i); pRClassRend.set_Symbol(i, fillSymbol as ISymbol); pRClassRend.set_Label(i, pRClassRend.get_Break(i).ToString("0.00")); } pOutRasterlayer.Renderer = pRRend; this.axMapControl1.AddLayer(pOutRasterlayer); } }
private void button_IDW_TIME_Click(object sender, EventArgs e) { object obj = null; ILayer pLayer = new FeatureLayerClass(); IFeatureClass featureClass = GetFeatureClass(@"D:\a_gis工程设计实践课\china\墓穴地shp\grave.shp"); IGeoDataset geo = featureClass as IGeoDataset; object extend = geo.Extent; object o = null; IFeatureClassDescriptor feades = new FeatureClassDescriptorClass(); feades.Create(featureClass, null, "time_inter"); IRasterRadius rasterrad = new RasterRadiusClass(); rasterrad.SetVariable(12, ref obj); object dCell = 0.014800000;//可以根据不同的点图层进行设置 IInterpolationOp interpla = new RasterInterpolationOpClass(); IRasterAnalysisEnvironment rasanaenv = interpla as IRasterAnalysisEnvironment; rasanaenv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref dCell); rasanaenv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extend, ref o); IGeoDataset g_GeoDS_Raster = interpla.IDW((IGeoDataset)feades, 2, rasterrad, ref obj); IRaster pOutRsater = (IRaster)g_GeoDS_Raster; IRasterLayer pOutRasterlayer = new RasterLayerClass(); pOutRasterlayer.CreateFromRaster(pOutRsater); pOutRasterlayer.Name = "时间久远程度"; PixelValue2 = Class_GetPixelValue(pOutRasterlayer); IRasterClassifyColorRampRenderer pRClassRend = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRRend = pRClassRend as IRasterRenderer; IRaster pRaster = pOutRasterlayer.Raster; IRasterBandCollection pRBandCol = pRaster as IRasterBandCollection; IRasterBand pRBand = pRBandCol.Item(0); if (pRBand.Histogram == null) { pRBand.ComputeStatsAndHist(); } pRRend.Raster = pRaster; pRClassRend.ClassCount = 10; pRRend.Update(); IRgbColor pFromColor = new RgbColorClass(); pFromColor.Red = 135;//天蓝色 pFromColor.Green = 206; pFromColor.Blue = 235; IRgbColor pToColor = new RgbColorClass(); pToColor.Red = 124;//草坪绿 pToColor.Green = 252; pToColor.Blue = 0; IAlgorithmicColorRamp colorRamp = new AlgorithmicColorRampClass(); colorRamp.Size = 10; colorRamp.FromColor = pFromColor; colorRamp.ToColor = pToColor; bool createColorRamp; colorRamp.CreateRamp(out createColorRamp); IFillSymbol fillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < pRClassRend.ClassCount; i++) { fillSymbol.Color = colorRamp.get_Color(i); pRClassRend.set_Symbol(i, fillSymbol as ISymbol); pRClassRend.set_Label(i, pRClassRend.get_Break(i).ToString("0.00")); } pOutRasterlayer.Renderer = pRRend; this.axMapControl1.AddLayer(pOutRasterlayer); //两种方法的结合后 }
public static IRasterRenderer ClassifyRenderer(ESRI.ArcGIS.Geodatabase.IRasterDataset pRasterDataset) { try { //create the classify render:创建渲染器 IRasterClassifyColorRampRenderer pClassifyRenderer=new RasterClassifyColorRampRendererClass(); IRasterRenderer pRasterRenderer=(IRasterRenderer)pClassifyRenderer; IRaster pRaster=pRasterDataset.CreateDefaultRaster(); pRasterRenderer.Raster=pRaster; pClassifyRenderer.ClassCount=10; pRasterRenderer.Update(); //创建颜色 IRgbColor pFromColor=new RgbColorClass(); pFromColor.Red=255; pFromColor.Green=0; pFromColor.Blue=0; IRgbColor pToColor=new RgbColorClass(); pToColor.Red=0; pToColor.Green=255; pToColor.Blue=255; //set the color ramp for the symbology:生成色带 IAlgorithmicColorRamp pRamp=new AlgorithmicColorRampClass(); pRamp.Size=10; pRamp.FromColor=pFromColor; pRamp.ToColor=pToColor; bool pBoolColorRamp; pRamp.CreateRamp(out pBoolColorRamp); //create the symbol for the classes.:创建符号 IFillSymbol pFillSymbol=new SimpleFillSymbolClass(); for (int i=0;i<pClassifyRenderer.ClassCount;i++){ pFillSymbol.Color=pRamp.get_Color(i); pClassifyRenderer.set_Symbol(i,(ISymbol)pFillSymbol); pClassifyRenderer.set_Label(i,Convert.ToString(i)); } return pRasterRenderer; } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); return null; } }
private IRasterLayer SetRsLayerClassifiedColor(IRaster pRaster) { IRasterClassifyColorRampRenderer pClassRen = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRasRen = (IRasterRenderer)pClassRen; //Set raster for the render and update pRasRen.Raster = pRaster; pClassRen.ClassCount = 9; pRasRen.Update(); //Create a color ramp to use //定义起点和终点颜色 IColor pFromColor = new RgbColorClass(); IRgbColor pRgbColor = (IRgbColor)pFromColor; pRgbColor.Red = 255; pRgbColor.Green = 200; pRgbColor.Blue = 0; IColor pToColor = new RgbColorClass(); pRgbColor = (IRgbColor)pToColor; pRgbColor.Red = 0; pRgbColor.Green = 0; pRgbColor.Blue = 255; //创建颜色分级 IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass(); pRamp.Size = 9; pRamp.FromColor = pFromColor; pRamp.ToColor = pToColor; bool ok = true; pRamp.CreateRamp(out ok); //获得栅格统计数值 IRasterBandCollection pRsBandCol = (IRasterBandCollection)pRaster; IRasterBand pRsBand = pRsBandCol.Item(0); pRsBand.ComputeStatsAndHist(); IRasterStatistics pRasterStatistic = pRsBand.Statistics; double dMaxValue = pRasterStatistic.Maximum; double dMinValue = pRasterStatistic.Minimum; //Create symbol for the classes IFillSymbol pFSymbol = new SimpleFillSymbolClass(); double LabelValue = Convert.ToDouble((dMaxValue - dMinValue) / 9); for (int i = 0; i < pClassRen.ClassCount; i++) { pFSymbol.Color = pRamp.get_Color(i); pClassRen.set_Symbol(i, (ISymbol)pFSymbol); double h1 = (LabelValue * i) + dMinValue; double h2 = (LabelValue * (i + 1)) + dMinValue; pClassRen.set_Label(i, h1.ToString() + "-" + h2.ToString()); } //Update the renderer and plug into layer pRasRen.Update(); IRasterLayer pRLayer = new RasterLayerClass(); pRLayer.CreateFromRaster(pRaster); pRLayer.Renderer = (IRasterRenderer)pClassRen; return(pRLayer); }