/// <summary> /// 栅格分级渲染(注意选中字段唯一值个数不能小于设置的唯一值个数) /// </summary> /// <param name="rasterClassRenderer">分级渲染设置</param> /// <param name="pStyleGalleryItem">颜色带样式</param> public void ClassRenderer(IRasterClassifyColorRampRenderer rasterClassRenderer, IStyleGalleryItem pStyleGalleryItem) { if (pStyleGalleryItem == null) { MessageBox.Show(@"Color ramp cannot be empty"); return; } IRasterRenderer rasterRend = (IRasterRenderer)rasterClassRenderer; rasterRend.Raster = rasterLayer.Raster; rasterRend.Update(); IEnumColors enumColors = RenderHelper.GetColorRamp(pStyleGalleryItem, rasterClassRenderer.ClassCount).Colors; enumColors.Reset(); IFillSymbol fillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < rasterClassRenderer.ClassCount; i++) { fillSymbol.Color = enumColors.Next(); rasterClassRenderer.set_Symbol(i, (ISymbol)fillSymbol); string label = Math.Round(rasterClassRenderer.Break[i], 2) + "-" + Math.Round(rasterClassRenderer.Break[i + 1], 2); rasterClassRenderer.set_Label(i, label); } rasterLayer.Renderer = rasterRend; }
private void method_4(IColorRamp icolorRamp_1, IRasterClassifyColorRampRenderer irasterClassifyColorRampRenderer_1, int int_0, ITable itable_0, string string_0, string string_1) { try { bool flag; if (string_0.Length > 0) { irasterClassifyColorRampRenderer_1.ClassField = string_0; } if (string_1.Length > 0) { irasterClassifyColorRampRenderer_1.NormField = string_1; } IRasterRenderer renderer = (IRasterRenderer)irasterClassifyColorRampRenderer_1; renderer.Raster = this.irasterLayer_0.Raster; irasterClassifyColorRampRenderer_1.ClassCount = int_0; renderer.Update(); this.bool_0 = false; this.cboClassifyNum.SelectedIndex = irasterClassifyColorRampRenderer_1.ClassCount - 1; this.bool_0 = true; icolorRamp_1.Size = irasterClassifyColorRampRenderer_1.ClassCount; icolorRamp_1.CreateRamp(out flag); IEnumColors colors = icolorRamp_1.Colors; ISymbol symbol = null; for (int i = 0; i < irasterClassifyColorRampRenderer_1.ClassCount; i++) { string str; IColor color = colors.Next(); ISimpleFillSymbol symbol2 = new SimpleFillSymbolClass { Color = color, Style = esriSimpleFillStyle.esriSFSSolid }; symbol = symbol2 as ISymbol; irasterClassifyColorRampRenderer_1.set_Symbol(i, symbol); if (i == (irasterClassifyColorRampRenderer_1.ClassCount - 1)) { str = irasterClassifyColorRampRenderer_1.get_Break(i).ToString("0.####"); } else { str = irasterClassifyColorRampRenderer_1.get_Break(i).ToString("0.####") + " - " + irasterClassifyColorRampRenderer_1.get_Break(i + 1).ToString("0.####"); } irasterClassifyColorRampRenderer_1.set_Label(i, str); } } catch (Exception exception) { Logger.Current.Error("", exception, ""); } }
/// <summary> /// 分类色带渲染 /// </summary> /// <param name="classCount">分类数</param> /// <param name="colorRamp">色带</param> public void ClassifyColorRampRenderer(ILayer pLayerR, IColorRamp colorRamp, string classfield, System.Windows.Forms.DataGridView datagridview) { try { IRasterLayer pRasterLayer = pLayerR as IRasterLayer; IRaster raster = pRasterLayer.Raster; IRasterRenderer pRasterRenderer = new RasterClassifyColorRampRenderer() as IRasterRenderer; pRasterRenderer.Raster = raster; IRasterClassifyColorRampRenderer classifyRenderer = pRasterRenderer as IRasterClassifyColorRampRenderer; int classcount = datagridview.RowCount; classifyRenderer.ClassCount = classcount; classifyRenderer.ClassField = classfield; for (int i = 0; i < datagridview.RowCount; i++) { classifyRenderer.set_Break(i, double.Parse(datagridview.Rows[i].Cells[0].Value.ToString())); } pRasterRenderer.Update(); colorRamp.Size = 15; bool pOk; colorRamp.CreateRamp(out pOk); //create symbol for the classes IFillSymbol fillSymbol = new SimpleFillSymbol(); for (int i = 0; i < classifyRenderer.ClassCount - 1; i++) { fillSymbol.Color = colorRamp.get_Color(i); classifyRenderer.set_Symbol(i, (ISymbol)fillSymbol); classifyRenderer.set_Label(i, classifyRenderer.get_Break(i).ToString() + "—" + datagridview.Rows[i].Cells[1].Value.ToString()); } pRasterLayer.Renderer = classifyRenderer as IRasterRenderer; } catch { } }