using System; using System.Collections.Generic; using Kingo.Framework.LayerStyleConvert.XSDClass; namespace Kingo.Framework.LayerStyleConvert { // Token: 0x02000045 RID: 69 public class AdvancedDrawimgInfoManager { // Token: 0x06000222 RID: 546 RVA: 0x0000AB34 File Offset: 0x00008D34 public string GetRenderer(Renderer itemInfoRender, LabelingInfo lablingInfo) { AdvancedDrawingInfo advancedDrawingInfo = new AdvancedDrawingInfo(); string result; if (itemInfoRender is SimpleRenderer) { Symbol symbol = (itemInfoRender as SimpleRenderer).Symbol; string text = ""; if (symbol is FSymbol) { text = this.GetFillAdvanced(symbol as FSymbol, lablingInfo); } else if (symbol is MSymbol) { text = this.GetMarkerAdvanced(symbol as MSymbol, lablingInfo); } else if (symbol is LSymbol) { text = this.GetLineAdvanced(symbol as LSymbol, lablingInfo); } result = text; } else if (itemInfoRender is UniqueValueRenderer) { UniqueValueRenderer uniqueValueRenderer = itemInfoRender as UniqueValueRenderer; UniqueValueRenderer uniqueValueRenderer2 = new UniqueValueRenderer { Field1 = uniqueValueRenderer.Field1, Field2 = uniqueValueRenderer.Field2, Field3 = uniqueValueRenderer.Field3, DefaultLabel = uniqueValueRenderer.DefaultLabel, FieldDelimiter = uniqueValueRenderer.FieldDelimiter }; CIMSymbolReference cimsymbolReference = this.GetCIMSymbolReference(uniqueValueRenderer.DefaultSymbol as FSymbol); uniqueValueRenderer2.DefaultSymbol = cimsymbolReference; for (int i = 0; i < uniqueValueRenderer.UniqueValueInfos.Count; i++) { UniqueValueInfo uniqueValueInfo = uniqueValueRenderer.UniqueValueInfos[i]; UniqueValueInfo uniqueValueInfo2 = new UniqueValueInfo { Label = uniqueValueInfo.Label, Description = uniqueValueInfo.Description, Value = uniqueValueInfo.Value }; CIMSymbolReference cimsymbolReference2 = this.GetCIMSymbolReference(uniqueValueInfo.Symbol as FSymbol); cimsymbolReference2.SymbolName = "Symbol_" + (i + 2).ToString(); uniqueValueInfo2.Symbol = cimsymbolReference2; uniqueValueRenderer2.UniqueValueInfos.Add(uniqueValueInfo2); } advancedDrawingInfo.DrawingInfo.Renderer = uniqueValueRenderer2; if (lablingInfo != null) { advancedDrawingInfo.DrawingInfo.LabelingInfo = new List(); advancedDrawingInfo.DrawingInfo.LabelingInfo.Add(lablingInfo); } result = advancedDrawingInfo.ToJson(); } else { result = null; } return result; } // Token: 0x06000223 RID: 547 RVA: 0x0000AD78 File Offset: 0x00008F78 public string GetFillAdvanced(FSymbol symbol, LabelingInfo lablingInfo) { AdvancedDrawingInfo advancedDrawingInfo = new AdvancedDrawingInfo(); SimpleRenderer simpleRenderer = new SimpleRenderer(); advancedDrawingInfo.DrawingInfo.Renderer = simpleRenderer; CIMSymbolReference cimsymbolReference = new CIMSymbolReference { SymbolName = "Symbol_1" }; simpleRenderer.Symbol = cimsymbolReference; CIMPolygonSymbol cimpolygonSymbol = new CIMPolygonSymbol(); cimsymbolReference.Symbol = cimpolygonSymbol; List cimfill = this.GetCIMFill(symbol); if (cimfill != null && cimfill.Count > 0) { cimpolygonSymbol.SymbolLayers.AddRange(cimfill); } if (lablingInfo != null) { advancedDrawingInfo.DrawingInfo.LabelingInfo = new List(); advancedDrawingInfo.DrawingInfo.LabelingInfo.Add(lablingInfo); } return advancedDrawingInfo.ToJson(); } // Token: 0x06000224 RID: 548 RVA: 0x0000AE38 File Offset: 0x00009038 public CIMSymbolReference GetCIMSymbolReference(FSymbol symbol) { CIMSymbolReference cimsymbolReference = new CIMSymbolReference { SymbolName = "Symbol_1" }; CIMPolygonSymbol cimpolygonSymbol = new CIMPolygonSymbol(); cimsymbolReference.Symbol = cimpolygonSymbol; List cimfill = this.GetCIMFill(symbol); if (cimfill != null && cimfill.Count > 0) { cimpolygonSymbol.SymbolLayers.AddRange(cimfill); } return cimsymbolReference; } // Token: 0x06000225 RID: 549 RVA: 0x0000AE9C File Offset: 0x0000909C private CIMFilledStroke GetCIMFilledStrokeL(LSymbol symbol) { CIMFilledStroke cimfilledStroke = new CIMFilledStroke(); CIMSolidPattern cimsolidPattern = new CIMSolidPattern(); cimfilledStroke.ColorLocked = true; if (symbol is CLSymbol) { CLSymbol clsymbol = new CLSymbol(); cimfilledStroke.CapStyle = clsymbol.Cap.ToString().Replace("esriLCS", ""); cimfilledStroke.JoinStyle = clsymbol.Join.ToString().Replace("esriLJS", ""); cimfilledStroke.MiterLimit = (int)clsymbol.MiterLimit; } if (symbol == null) { cimsolidPattern.Color[0] = 110; cimsolidPattern.Color[1] = 110; cimsolidPattern.Color[2] = 110; cimsolidPattern.Color[3] = 255; } else { cimsolidPattern.Color = symbol.Color; cimfilledStroke.Width = symbol.Width; } cimfilledStroke.Pattern = cimsolidPattern; return cimfilledStroke; } // Token: 0x06000226 RID: 550 RVA: 0x0000AF98 File Offset: 0x00009198 private CIMFilledStroke GetCIMFilledStrokeCL(CLSymbol symbol) { CIMFilledStroke cimfilledStroke = new CIMFilledStroke(); cimfilledStroke.ColorLocked = true; cimfilledStroke.CapStyle = symbol.Cap.ToString().Replace("esriLCS", ""); cimfilledStroke.JoinStyle = symbol.Join.ToString().Replace("esriLJS", ""); cimfilledStroke.MiterLimit = (int)symbol.MiterLimit; CIMSolidPattern cimsolidPattern = new CIMSolidPattern(); if (symbol == null) { cimsolidPattern.Color[0] = 110; cimsolidPattern.Color[1] = 110; cimsolidPattern.Color[2] = 110; cimsolidPattern.Color[3] = 255; } else { cimsolidPattern.Color = symbol.Color; cimfilledStroke.Width = symbol.Width; } cimfilledStroke.Pattern = cimsolidPattern; return cimfilledStroke; } // Token: 0x06000227 RID: 551 RVA: 0x0000B078 File Offset: 0x00009278 private CIMFilledStroke GetCIMFilledStroke(int[] color) { return new CIMFilledStroke { Pattern = new CIMSolidPattern { Color = color } }; } // Token: 0x06000228 RID: 552 RVA: 0x0000B0A8 File Offset: 0x000092A8 private List GetCIMFill(FSymbol symbol) { List list = new List(); if (symbol is MultiLayerFillSymbol) { MultiLayerFillSymbol multiLayerFillSymbol = symbol as MultiLayerFillSymbol; for (int i = 0; i < multiLayerFillSymbol.LayerCount; i++) { List cimfill = this.GetCIMFill(multiLayerFillSymbol.GetLayer(i)); if (cimfill != null && cimfill.Count > 0) { list.AddRange(cimfill); } } } else if (symbol is SFSymbol) { list.Add(this.GetCIMFilledStrokeL(symbol.Outline)); list.Add(this.GetCIMFillSFSymbol(symbol as SFSymbol)); } else if (symbol is LineFSymbol) { list.Add(this.GetCIMFilledStrokeL(symbol.Outline)); list.Add(this.GetCIMFillLineFSymbol(symbol as LineFSymbol)); } else if (symbol is PFSymbol) { list.Add(this.GetCIMFilledStrokeL(symbol.Outline)); list.Add(this.GetCIMFillPicFSymbol(symbol as PFSymbol)); list.Add(this.GetCIMPFillSFSymbol()); } return list; } // Token: 0x06000229 RID: 553 RVA: 0x0000B1EC File Offset: 0x000093EC private CIMFill GetCIMFillSFSymbol(SFSymbol symbol) { CIMFill cimfill = new CIMFill(); CIMSolidPattern cimsolidPattern = new CIMSolidPattern(); cimsolidPattern.Color = symbol.Color; cimfill.ColorLocked = false; cimfill.Pattern = cimsolidPattern; return cimfill; } // Token: 0x0600022A RID: 554 RVA: 0x0000B228 File Offset: 0x00009428 private CIMFill GetCIMPFillSFSymbol() { CIMFill cimfill = new CIMFill(); CIMSolidPattern cimsolidPattern = new CIMSolidPattern(); cimsolidPattern.Color = new int[4]; cimfill.ColorLocked = false; cimfill.Pattern = cimsolidPattern; return cimfill; } // Token: 0x0600022B RID: 555 RVA: 0x0000B264 File Offset: 0x00009464 private CIMFill GetCIMFillLineFSymbol(LineFSymbol symbol) { return new CIMFill { Pattern = new CIMHatchPattern { LineSymbol = this.GetCIMLineSymbol(symbol.LineSymbol), Separation = symbol.Separation, Rotation = symbol.Angle } }; } // Token: 0x0600022C RID: 556 RVA: 0x0000B2B8 File Offset: 0x000094B8 private CIMFill GetCIMFillPicFSymbol(PFSymbol symbol) { return new CIMFill { Pattern = new CIMTiledPattern { Height = symbol.Height, Url = "data:" + symbol.ContentType + ";base64," + symbol.ImageData, ColorSubstitutions = { new CIMColorSubstitution { NewColor = symbol.Outline.Color } } } }; } // Token: 0x0600022D RID: 557 RVA: 0x0000B334 File Offset: 0x00009534 public string GetLineAdvanced(LSymbol symbol, LabelingInfo lablingInfo) { AdvancedDrawingInfo advancedDrawingInfo = new AdvancedDrawingInfo(); SimpleRenderer simpleRenderer = new SimpleRenderer(); advancedDrawingInfo.DrawingInfo.Renderer = simpleRenderer; simpleRenderer.Symbol = this.GetCIMSymbolReference(symbol); if (lablingInfo != null) { advancedDrawingInfo.DrawingInfo.LabelingInfo = new List(); advancedDrawingInfo.DrawingInfo.LabelingInfo.Add(lablingInfo); } return advancedDrawingInfo.ToJson(); } // Token: 0x0600022E RID: 558 RVA: 0x0000B3A0 File Offset: 0x000095A0 public CIMSymbolReference GetCIMSymbolReference(LSymbol symbol) { CIMSymbolReference cimsymbolReference = new CIMSymbolReference { SymbolName = "Symbol_1" }; CIMLineSymbol cimlineSymbol = new CIMLineSymbol(); cimsymbolReference.Symbol = cimlineSymbol; List lineSymbolLayers = this.GetLineSymbolLayers(symbol); if (lineSymbolLayers != null && lineSymbolLayers.Count > 0) { cimlineSymbol.SymbolLayers.AddRange(lineSymbolLayers); } return cimsymbolReference; } // Token: 0x0600022F RID: 559 RVA: 0x0000B404 File Offset: 0x00009604 private CIMLineSymbol GetCIMLineSymbol(LSymbol symbol) { CIMLineSymbol cimlineSymbol = new CIMLineSymbol(); cimlineSymbol.SymbolLayers.AddRange(this.GetLineSymbolLayers(symbol)); return cimlineSymbol; } // Token: 0x06000230 RID: 560 RVA: 0x0000B430 File Offset: 0x00009630 private List GetLineSymbolLayers(LSymbol symbol) { List list = new List(); if (symbol is SLSymbol) { list.Add(this.GetCIMFilledStroke(symbol)); } else if (symbol is CLSymbol) { list.Add(this.GetCIMFilledStrokeCL(symbol as CLSymbol)); } else if (symbol is MultiLayerLineSymbol) { MultiLayerLineSymbol multiLayerLineSymbol = symbol as MultiLayerLineSymbol; for (int i = 0; i < multiLayerLineSymbol.LayerCount; i++) { List lineSymbolLayers = this.GetLineSymbolLayers(multiLayerLineSymbol.GetLayer(i)); if (lineSymbolLayers != null && lineSymbolLayers.Count > 0) { list.AddRange(lineSymbolLayers); } } } else if (symbol is HashLSymbol) { list.Add(this.GetCIMPlacedPointSymbolsHashLine(symbol as HashLSymbol)); } else if (!(symbol is PictureLSymbol)) { if (symbol is MarkLSymbol) { list.Add(this.GetCIMPlacedPointSymbolsMarkerLine(symbol as MarkLSymbol)); } } return list; } // Token: 0x06000231 RID: 561 RVA: 0x0000B568 File Offset: 0x00009768 private CIMFilledStroke GetCIMFilledStroke(LSymbol symbol) { return this.GetCIMFilledStrokeL(symbol); } // Token: 0x06000232 RID: 562 RVA: 0x0000B584 File Offset: 0x00009784 private CIMPlacedPointSymbolsHashLine GetCIMPlacedPointSymbolsHashLine(HashLSymbol symbol) { CIMPlacedPointSymbolsHashLine cimplacedPointSymbolsHashLine = new CIMPlacedPointSymbolsHashLine(); CIMPointSymbol cimpointSymbol = new CIMPointSymbol(); CIMVectorMarker cimvectorMarker = new CIMVectorMarker(); MarkerGraphicsClass markerGraphicsClass = new MarkerGraphicsClass(); markerGraphicsClass.Symbol = new CIMLineSymbol { SymbolLayers = { this.GetCIMFilledStroke(symbol.Color) } }; GeometryClass geometry = new GeometryClass(); markerGraphicsClass.Geometry = geometry; FrameClass frame = new FrameClass(); cimvectorMarker.Frame = frame; cimvectorMarker.MarkerGraphics = markerGraphicsClass; cimpointSymbol.SymbolLayers.Add(cimvectorMarker); cimplacedPointSymbolsHashLine.PointSymbols = cimpointSymbol; cimplacedPointSymbolsHashLine.PointSymbolPlacementEffect = new CIMPointSymbolPlacementAlongLineSameSize(); return cimplacedPointSymbolsHashLine; } // Token: 0x06000233 RID: 563 RVA: 0x0000B624 File Offset: 0x00009824 private CIMPlacedPointSymbolsMarkerLine GetCIMPlacedPointSymbolsMarkerLine(MarkLSymbol symbol) { CIMPlacedPointSymbolsMarkerLine cimplacedPointSymbolsMarkerLine = new CIMPlacedPointSymbolsMarkerLine(); CIMPointSymbol cimpointSymbol = new CIMPointSymbol(); CIMSimpleMarker cimsimpleMarker = new CIMSimpleMarker(); cimsimpleMarker.Size = symbol.MarkerSymbol.Size; cimsimpleMarker.FillColor = symbol.Color; CIMLineSymbol cimlineSymbol = new CIMLineSymbol(); cimlineSymbol.SymbolLayers.Add(this.GetCIMFilledStroke(symbol.Color)); cimpointSymbol.SymbolLayers.Add(cimsimpleMarker); cimplacedPointSymbolsMarkerLine.PointSymbols = cimpointSymbol; cimplacedPointSymbolsMarkerLine.PointSymbolPlacementEffect = new CIMPointSymbolPlacementAlongLineSameSize(); return cimplacedPointSymbolsMarkerLine; } // Token: 0x06000234 RID: 564 RVA: 0x0000B6AC File Offset: 0x000098AC private CIMFilledStroke GetCIMFilledStrokeL(PictureLSymbol symbol) { CIMFilledStroke cimfilledStroke = new CIMFilledStroke(); CIMTiledPattern cimtiledPattern = new CIMTiledPattern(); cimfilledStroke.ColorLocked = true; if (symbol != null) { PictureLSymbol pictureLSymbol = new PictureLSymbol(); } cimtiledPattern.ScaleX = (int)symbol.XScale; cimtiledPattern.Height = symbol.Width; cimfilledStroke.Width = symbol.Width; cimfilledStroke.Pattern = cimtiledPattern; return cimfilledStroke; } // Token: 0x06000235 RID: 565 RVA: 0x0000B718 File Offset: 0x00009918 public string GetMarkerAdvanced(MSymbol symbol, LabelingInfo lablingInfo) { AdvancedDrawingInfo advancedDrawingInfo = new AdvancedDrawingInfo(); SimpleRenderer simpleRenderer = new SimpleRenderer(); advancedDrawingInfo.DrawingInfo.Renderer = simpleRenderer; simpleRenderer.Symbol = this.GetCIMSymbolReference(symbol); if (lablingInfo != null) { advancedDrawingInfo.DrawingInfo.LabelingInfo = new List(); advancedDrawingInfo.DrawingInfo.LabelingInfo.Add(lablingInfo); } return advancedDrawingInfo.ToJson(); } // Token: 0x06000236 RID: 566 RVA: 0x0000B784 File Offset: 0x00009984 public CIMSymbolReference GetCIMSymbolReference(MSymbol symbol) { CIMSymbolReference cimsymbolReference = new CIMSymbolReference { SymbolName = "Symbol_1" }; CIMPointSymbol cimpointSymbol = new CIMPointSymbol(); cimsymbolReference.Symbol = cimpointSymbol; List cimpoint = this.GetCIMPoint(symbol); if (cimpoint != null && cimpoint.Count > 0) { cimpointSymbol.SymbolLayers.AddRange(cimpoint); } cimpointSymbol.AnchorPoint = new AnchorPointClass(); cimpointSymbol.AnchorPointUnits = "Points"; cimpointSymbol.HaloColor = new int[4]; cimpointSymbol.ScaleX = 1; return cimsymbolReference; } // Token: 0x06000237 RID: 567 RVA: 0x0000B818 File Offset: 0x00009A18 private List GetCIMPoint(MSymbol symbol) { List list = new List(); if (symbol is MultiLayerMarkerSymbol) { MultiLayerMarkerSymbol multiLayerMarkerSymbol = symbol as MultiLayerMarkerSymbol; for (int i = 0; i < multiLayerMarkerSymbol.LayerCount; i++) { List cimpoint = this.GetCIMPoint(multiLayerMarkerSymbol.GetLayer(i)); if (cimpoint != null && cimpoint.Count > 0) { list.AddRange(cimpoint); } } } else if (symbol is SMarkerSymbol) { list.Add(this.GetCIMSimpleMarker(symbol as SMarkerSymbol)); } else if (symbol is PMarkSymbol) { list.Add(this.GetPictureMarker(symbol as PMarkSymbol)); } else if (symbol is AMarkSymbol) { list.Add(this.GetVectorMarker(symbol)); } else if (symbol is CMarkerSymbol) { list.Add(this.GetVectorMarker(symbol)); } return list; } // Token: 0x06000238 RID: 568 RVA: 0x0000B934 File Offset: 0x00009B34 private CIMSimpleMarker GetCIMSimpleMarker(SMarkerSymbol symbol) { CIMSimpleMarker cimsimpleMarker = new CIMSimpleMarker(); cimsimpleMarker.AnchorPoint = new AnchorPointClass(); cimsimpleMarker.AnchorPointUnits = "Points"; cimsimpleMarker.Size = symbol.Size; cimsimpleMarker.DominantSizeAxis3D = "Z"; cimsimpleMarker.Enable = true; cimsimpleMarker.FillColor = symbol.Color; if (symbol.outline != null) { cimsimpleMarker.OutlineWidth = (double)symbol.outline.Width; cimsimpleMarker.OutlineColor = symbol.outline.Color; } return cimsimpleMarker; } // Token: 0x06000239 RID: 569 RVA: 0x0000B9C8 File Offset: 0x00009BC8 private CIMVectorMarker GetVectorMarker(MSymbol symbol) { CIMVectorMarker cimvectorMarker = new CIMVectorMarker(); if (symbol is AMarkSymbol) { cimvectorMarker.AnchorPointUnits = "Relative"; cimvectorMarker.ColorLocked = true; cimvectorMarker.DominantSizeAxis3D = "Z"; cimvectorMarker.Enable = true; cimvectorMarker.Size = (symbol as AMarkSymbol).Size; } else if (symbol is CMarkerSymbol) { cimvectorMarker.AnchorPointUnits = "Relative"; cimvectorMarker.ColorLocked = true; cimvectorMarker.DominantSizeAxis3D = "Z"; cimvectorMarker.Enable = true; cimvectorMarker.Size = (symbol as CMarkerSymbol).Size; } return cimvectorMarker; } // Token: 0x0600023A RID: 570 RVA: 0x0000BA7C File Offset: 0x00009C7C private CIMPictureMarker GetPictureMarker(PMarkSymbol symbol) { return new CIMPictureMarker { Size = symbol.Size, Url = "data:image/png;base64," + symbol.ImageData }; } } }