// //更改栅格唯一值渲染符号 // private void RenderRasterUniqueValue(ILayer layerOrElement, IRasterUniqueValueRenderer rasterUniqueValueRenderer, ISymbol symbol, int iHeading, int iClass) { esriSymbologyStyleClass styleClass; if (symbol is IFillSymbol) { styleClass = esriSymbologyStyleClass.esriStyleClassFillSymbols; } else if (symbol is IMarkerSymbol) { styleClass = esriSymbologyStyleClass.esriStyleClassMarkerSymbols; } else { if (!(symbol is ILineSymbol)) { return; } styleClass = esriSymbologyStyleClass.esriStyleClassLineSymbols; } IStyleGalleryItem item = new frmSymbolSelector { Owner = EnviVars.instance.MainForm }.GetItem(styleClass, symbol); if (item != null) { rasterUniqueValueRenderer.set_Symbol(iHeading, iClass, item.Item as ISymbol); this._mapControl.ActiveView.ContentsChanged(); this._mapControl.Refresh(esriViewDrawPhase.esriViewGeography, layerOrElement, null); } }
private void AsignarColorAClase(int iClase, string sEtiqueta, int red, int green, int blue, IRasterUniqueValueRenderer pRUVRenderer) { IColorSymbol pColorSymbol = new ColorSymbolClass(); pRUVRenderer.AddValue(0, iClase, iClase); pRUVRenderer.set_Label(0, iClase, sEtiqueta); IRgbColor pColor = new RgbColorClass(); pColor.Red = red; pColor.Green = green; pColor.Blue = blue; pColorSymbol.Color = pColor as IColor; pRUVRenderer.set_Symbol(0, iClase, pColorSymbol as ISymbol); }
/// <summary> /// 添加唯一值和设置标注符号 /// </summary> /// <param name="uniqueValueRenderer">唯一值渲染</param> /// <param name="uniqueValue">唯一值</param> /// <param name="enumColors">颜色带</param> private static void AddValueAndSetLabelSymbol <T>(IRasterUniqueValueRenderer uniqueValueRenderer, List <T> uniqueValue, IEnumColors enumColors) { IFillSymbol fillSymbol = new SimpleFillSymbolClass(); for (int i = 0; i < uniqueValue.Count; i++) { object currentValue = uniqueValue[i]; uniqueValueRenderer.AddValue(0, i, currentValue); fillSymbol.Color = enumColors.Next(); string valueLabel = currentValue.ToString(); if (StringHelper.IsNumeric(valueLabel)) { //获取四位小数的字符串 valueLabel = GetRound(currentValue); } uniqueValueRenderer.set_Label(0, i, valueLabel); uniqueValueRenderer.set_Symbol(0, i, (ISymbol)fillSymbol); } }