/// <summary> /// 将已设置好的样式添加到唯一值渲染中去 /// </summary> /// <param name="layer"></param> /// <param name="symbols"></param> public void SetSymbolsToValueRenderedLayer(MapObjects2.MapLayer layer, Dictionary <string, MapObjects2.Symbol> symbols) { if (layer.Renderer == null) { throw new Exception("the layer has not set a render."); } if (layer.Renderer is MapObjects2.ValueMapRenderer) { throw new Exception("the layer has a render,but not a valuerender."); } Dictionary <string, MapObjects2.Symbol> .KeyCollection oKeys = symbols.Keys; MapObjects2.ValueMapRenderer oValueRender = layer.Renderer as MapObjects2.ValueMapRenderer; int iValueIndex = -1; MapObjects2.Symbol oSymbol = null; foreach (string sKey in oKeys) { iValueIndex = this.GetValueIndexByRenderValue(oValueRender, sKey); if (iValueIndex != -1 && symbols.TryGetValue(sKey, out oSymbol)) { this.CopySymbolToAnother(oSymbol, oValueRender.get_Symbol((short)iValueIndex)); } } }
private void CopySymbolToAnother(MapObjects2.Symbol fromSymbol, MapObjects2.Symbol toSymbol) { toSymbol.SymbolType = fromSymbol.SymbolType; toSymbol.CenterOnAscent = fromSymbol.CenterOnAscent; toSymbol.CharacterIndex = fromSymbol.CharacterIndex; toSymbol.Color = fromSymbol.Color; toSymbol.Custom = fromSymbol.Custom; toSymbol.Font = toSymbol.Font; toSymbol.Outline = fromSymbol.Outline; toSymbol.OutlineColor = fromSymbol.OutlineColor; toSymbol.Rotation = fromSymbol.Rotation; toSymbol.Size = fromSymbol.Size; toSymbol.Style = fromSymbol.Style; toSymbol.SymbolType = fromSymbol.SymbolType; }