年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

539 lines
18 KiB

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<LabelingInfo>();
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<SymbolLayer> cimfill = this.GetCIMFill(symbol);
if (cimfill != null && cimfill.Count > 0)
{
cimpolygonSymbol.SymbolLayers.AddRange(cimfill);
}
if (lablingInfo != null)
{
advancedDrawingInfo.DrawingInfo.LabelingInfo = new List<LabelingInfo>();
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<SymbolLayer> 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<SymbolLayer> GetCIMFill(FSymbol symbol)
{
List<SymbolLayer> list = new List<SymbolLayer>();
if (symbol is MultiLayerFillSymbol)
{
MultiLayerFillSymbol multiLayerFillSymbol = symbol as MultiLayerFillSymbol;
for (int i = 0; i < multiLayerFillSymbol.LayerCount; i++)
{
List<SymbolLayer> 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<LabelingInfo>();
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<SymbolLayer> 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<SymbolLayer> GetLineSymbolLayers(LSymbol symbol)
{
List<SymbolLayer> list = new List<SymbolLayer>();
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<SymbolLayer> 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<LabelingInfo>();
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<SymbolLayer> 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<SymbolLayer> GetCIMPoint(MSymbol symbol)
{
List<SymbolLayer> list = new List<SymbolLayer>();
if (symbol is MultiLayerMarkerSymbol)
{
MultiLayerMarkerSymbol multiLayerMarkerSymbol = symbol as MultiLayerMarkerSymbol;
for (int i = 0; i < multiLayerMarkerSymbol.LayerCount; i++)
{
List<SymbolLayer> 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
};
}
}
}