From d74b495736f0c04522ec54274b70fed0ded2878d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 11:30:06 +0800
Subject: [PATCH] 任务新增导出

---
 public/map/core/utils/RendererUtil.js |  183 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 183 insertions(+), 0 deletions(-)

diff --git a/public/map/core/utils/RendererUtil.js b/public/map/core/utils/RendererUtil.js
new file mode 100644
index 0000000..7becc5f
--- /dev/null
+++ b/public/map/core/utils/RendererUtil.js
@@ -0,0 +1,183 @@
+define([
+"esri/symbols/SimpleFillSymbol",
+"esri/Color", 
+"esri/renderers/SimpleRenderer",
+"esri/symbols/SimpleMarkerSymbol",
+"esri/symbols/SimpleLineSymbol",
+"esri/symbols/PictureMarkerSymbol"
+        ],
+   function(SimpleFillSymbol,
+		   Color,
+		   SimpleRenderer,
+		   SimpleMarkerSymbol,
+		   SimpleLineSymbol,
+		   PictureMarkerSymbol){
+    var privateValue = 0;
+    return {
+    	createRenderer:function(rendererConfig){
+		var renderer = null;
+		if(rendererConfig != undefined && rendererConfig != null && rendererConfig != "default")
+		{
+			switch(rendererConfig.type)
+			{
+				case "SimpleRenderer":
+					var symbol = this.createSymbol(rendererConfig.symbol);
+					renderer = new SimpleRenderer(symbol);
+					break;
+			}
+		}
+		return renderer;
+    	},
+		createSymbol:function(symbolConfig)
+		{
+			var symbol = null;
+			switch(symbolConfig.type)
+			{
+				case "SimpleMarkerSymbol":
+					symbol = this.createSimpleMarkerSymbol(symbolConfig);
+					break;
+				case "PictureMarkerSymbol":
+					symbol = this.createPictureMarkerSymbol(symbolConfig);
+					break;
+				case "SimpleLineSymbol":
+					symbol = this.createLineSymbol(symbolConfig);
+					break;
+				case "SimpleFillSymbol":
+					symbol = this.creatFillSymbol(symbolConfig);
+					break;
+			}
+			return symbol;
+		},
+		creatFillSymbol:function(symbolConfig)
+		{
+			var style;
+			var symbol=null;
+			var lineSymbol = this.createLineSymbol(symbolConfig.outline);
+			switch(symbolConfig.style)
+			{
+				case "solid":
+					style = SimpleFillSymbol.STYLE_SOLID;
+					break;
+				case "null":
+					style = SimpleFillSymbol.STYLE_NULL;
+					break;
+				case "cross":
+					style = SimpleFillSymbol.STYLE_CROSS;
+					break;
+				case "diagonal_cross":
+					style = SimpleFillSymbol.STYLE_DIAGONAL_CROSS;
+					break;
+				case "backward_diagonal":
+					style = SimpleFillSymbol.STYLE_BACKWARD_DIAGONAL;
+					break;
+				case "forward_diagonal":
+					style = SimpleFillSymbol.STYLE_FORWARD_DIAGONAL;
+					break;
+				case "horizontal":
+					style = SimpleFillSymbol.STYLE_HORIZONTAL;
+					break;
+				case "vertical":
+					style = SimpleFillSymbol.STYLE_VERTICAL;
+					break;
+			}
+			var color = new Color(symbolConfig.color);
+			color.a=symbolConfig.alpha;
+			symbol = new SimpleFillSymbol(style, lineSymbol,color);
+			return symbol;
+		},
+		createSimpleMarkerSymbol:function(symbolConfig)
+		{
+			var style;
+			var symbol = null;
+			var lineSymbol = this.createLineSymbol(symbolConfig.outline);
+			switch(symbolConfig.style)
+			{
+				case "circle":
+					style = SimpleMarkerSymbol.STYLE_CIRCLE;
+					break;
+				case "cross":
+					style = SimpleMarkerSymbol.STYLE_CROSS;
+					break;
+				case "diamond":
+					style = SimpleMarkerSymbol.STYLE_DIAMOND;
+					break;
+				case "path":
+					style = SimpleMarkerSymbol.STYLE_PATH;
+					break;
+				case "square":
+					style = SimpleMarkerSymbol.STYLE_SQUARE;
+					break;
+				case "STYLE_X":
+					style = SimpleMarkerSymbol.STYLE_X;
+					break;
+				default:
+					style = SimpleMarkerSymbol.STYLE_CIRCLE;
+					break;
+			}
+			symbol = new SimpleMarkerSymbol(style,symbolConfig.size,lineSymbol,new Color(symbolConfig.color));
+			return symbol;
+		},
+		createLineSymbol:function(config)
+		{
+			var symbol=null;
+			if(config != undefined && config != null)
+			{
+				switch(config.type)
+				{
+					case "SimpleLineSymbol":
+						var style = this.parseLineStyle(config.style);
+						symbol = new SimpleLineSymbol(style,
+								new Color(config.color),
+								config.width);
+						break;
+				}
+			}
+			return symbol;
+		},
+		parseLineStyle:function(style)
+		{
+			var returnStyle;
+			switch(style)
+			{
+				case "solid":
+					returnStyle = SimpleLineSymbol.STYLE_SOLID;
+					break;
+				case "dashdot":
+					returnStyle = SimpleLineSymbol.STYLE_DASHDOT;
+					break;
+				case "dashdotdot":
+					returnStyle = SimpleLineSymbol.STYLE_DASHDOT;
+					break;
+				case "dot":
+					returnStyle = SimpleLineSymbol.STYLE_DOT;
+					break;
+				case "longdash":
+					returnStyle = SimpleLineSymbol.STYLE_LONGDASH;
+					break;
+				case "longdashdot":
+					returnStyle = SimpleLineSymbol.STYLE_LONGDASHDOT;
+					break;
+				case "null":
+					returnStyle = SimpleLineSymbol.STYLE_NULL;
+					break;
+				case "shortdash":
+					returnStyle = SimpleLineSymbol.STYLE_SHORTDASH;
+					break;
+				case "shortdashdot":
+					returnStyle = SimpleLineSymbol.STYLE_SHORTDASHDOT;
+					break;
+				default:
+					returnStyle = SimpleLineSymbol.STYLE_SOLID;
+				break;
+			}
+			return returnStyle;
+		},
+		createPictureMarkerSymbol:function(config)
+		{
+			var symbol = new PictureMarkerSymbol(config.url, config.width, config.height);
+			symbol.xoffset=config.xoffset;
+			symbol.yoffset=config.yoffset;
+			return symbol;
+		}
+    };
+});

--
Gitblit v1.9.3