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;
|
}
|
};
|
});
|