define(["dojo/_base/declare", "esri/toolbars/draw", "esri/symbols/SimpleMarkerSymbol", "esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol", "esri/symbols/PictureFillSymbol", "esri/symbols/CartographicLineSymbol", "esri/graphic", "esri/Color", "dojo/dom", "dojo/on", "dojo/request", "esri/InfoTemplate", "esri/symbols/PictureMarkerSymbol", "esri/graphic", "esri/layers/GraphicsLayer", "esri/geometry/Point", "esri/geometry/Multipoint", "esri/geometry/Polyline", "esri/geometry/Polygon", ], function (declare, Draw, SimpleMarkerSymbol, SimpleLineSymbol, SimpleFillSymbol, PictureFillSymbol, CartographicLineSymbol, Graphic, Color, dom, on, request, InfoTemplate, PictureMarkerSymbol, Graphic, GraphicsLayer, Point, Multipoint, Polyline, Polygon) {
|
var clazz, tb;
|
clazz = declare("Plot", null, {
|
constructor: function () {},
|
plottools: function (tool) {
|
isTools = true;
|
tb = new Draw(map);
|
tb.on("draw-end", this.addGraphic);
|
map.disableMapNavigation();
|
tb.activate(tool)
|
},
|
createLayer: function () {
|
var temp = map.getLayer("plotLayer");
|
temp.clear()
|
},
|
addGraphic: function (evt) {
|
tb.deactivate();
|
map.enableMapNavigation();
|
var symbol;
|
switch (evt.geometry.type) {
|
case "point":
|
symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, plotPointSize, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color(plotLineColor), 1), new dojo.Color(plotPointColor));
|
break;
|
case "polyline":
|
symbol = new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color(plotLineColor), plotLineSize);
|
break;
|
case "polygon":
|
symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color(plotLineColor), 2), new dojo.Color(plotPolygonColor));
|
break;
|
case "extent":
|
symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT, new dojo.Color(plotLineColor), 2), new dojo.Color(plotPolygonColor));
|
break;
|
case "multipoint":
|
symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_DIAMOND, plotPointSize, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([0, 0, 0]), 1), new dojo.Color(plotPointColor));
|
break
|
}
|
plotGraphicLayer.add(new Graphic(evt.geometry, symbol))
|
},
|
removeAllLayer: function () {
|
var temp = map.getLayer("plotLayer");
|
temp.clear();
|
plotOperate = -1
|
},
|
revocationLayer: function () {
|
var temp = map.getLayer("plotLayer");
|
temp.remove(temp.graphics[temp.graphics.length - 1])
|
},
|
savePlotPayer: function () {
|
var olddata;
|
$.ajax({
|
url: 'data/plotLayer.json?' + Math.random(),
|
type: 'GET',
|
async: false,
|
success: function (result) {
|
if (result != "" && result != null) {
|
olddata = result.replace(/[\r\n]/g, "");
|
olddata = olddata.substring(1, olddata.length - 1)
|
} else {
|
olddata = ""
|
}
|
},
|
error: function (e) {}
|
});
|
if ($("#plotLayerName").val() == null || $("#plotLayerName").val() == "") {
|
alert("图层名不能为空!");
|
return
|
}
|
var data = {};
|
var datalength = -1;
|
showPlotLayer = new GraphicsLayer();
|
var temp = map.getLayer("plotLayer");
|
temp.graphics.forEach(function (item, index) {
|
showPlotLayer.add(item);
|
var layerData = {
|
"geometry": item.geometry,
|
"symbol": item.symbol
|
};
|
data[index] = layerData;
|
datalength = index + 1
|
});
|
var json;
|
if (olddata == "") {
|
json = "[" + olddata + "{ \"layername\":\"" + $("#plotLayerName").val() + "\",\"layerLength\":\"" + datalength + "\",\"datalist\": " + JSON.stringify(data) + " }]"
|
} else {
|
json = "[" + olddata + ",{ \"layername\":\"" + $("#plotLayerName").val() + "\",\"layerLength\":\"" + datalength + "\",\"datalist\": " + JSON.stringify(data) + " }]"
|
}
|
var datas = eval("[{\"Name\":\"" + encodeURIComponent(json) + "\"}]")[0];
|
jQuery.ajax({
|
type: "POST",
|
async: true,
|
url: 'data/Handler.ashx?' + Math.random() + '&action=SaveLayerData',
|
data: datas,
|
timeout: 600000,
|
success: function (result) {
|
alert("保存成功!");
|
initLoadPage()
|
},
|
error: function (result) {
|
alert('保存失败!')
|
}
|
})
|
},
|
getPlotPayer: function (datalist) {
|
this.createLayer();
|
var data = datalist;
|
for (var i = 0; i < parseInt(datalist.layerLength); i++) {
|
if (data.datalist[i].geometry.type == "point") {
|
var point = new Point({
|
"x": data.datalist[i].geometry.x,
|
"y": data.datalist[i].geometry.y,
|
"spatialReference": {
|
"wkid": 102100,
|
"latestWkid": 3857
|
}
|
});
|
plotPointColor = data.datalist[i].symbol.color;
|
plotLineColor = data.datalist[i].symbol.outline.color;
|
plotPointSize = data.datalist[i].symbol.size;
|
var tgraphic = new Graphic(point);
|
tb = new Draw(map);
|
map.disableMapNavigation();
|
this.addGraphic(tgraphic)
|
} else if (data.datalist[i].geometry.type == "multipoint") {
|
var multipoint = new Multipoint({
|
"points": data.datalist[i].geometry.points,
|
"spatialReference": {
|
"wkid": 102100,
|
"latestWkid": 3857
|
}
|
});
|
plotPointColor = data.datalist[i].symbol.color;
|
plotLineColor = data.datalist[i].symbol.outline.color;
|
plotPointSize = data.datalist[i].symbol.size;
|
var tgraphic = new Graphic(multipoint);
|
tb = new Draw(map);
|
map.disableMapNavigation();
|
this.addGraphic(tgraphic)
|
} else if (data.datalist[i].geometry.type == "polyline") {
|
var polyline = new Polyline({
|
"paths": data.datalist[i].geometry.paths,
|
"spatialReference": {
|
"wkid": 102100,
|
"latestWkid": 3857
|
}
|
});
|
plotLineColor = data.datalist[i].symbol.color;
|
plotLineSize = data.datalist[i].symbol.width;
|
var tgraphic = new Graphic(polyline);
|
tb = new Draw(map);
|
map.disableMapNavigation();
|
this.addGraphic(tgraphic)
|
} else if (data.datalist[i].geometry.type == "polygon") {
|
var polygon = new Polygon({
|
"rings": data.datalist[i].geometry.rings,
|
"spatialReference": {
|
"wkid": 102100,
|
"latestWkid": 3857
|
}
|
});
|
plotPolygonColor = data.datalist[i].symbol.color;
|
plotLineColor = data.datalist[i].symbol.outline.color;
|
var tgraphic = new Graphic(polygon);
|
tb = new Draw(map);
|
map.disableMapNavigation();
|
this.addGraphic(tgraphic)
|
}
|
}
|
},
|
getPlotData: function () {
|
var data;
|
$.ajax({
|
url: 'data/plotLayer.json?' + Math.random(),
|
type: 'GET',
|
async: false,
|
success: function (result) {
|
if (result != "") {
|
data = result.replace(/[\r\n]/g, "")
|
} else {
|
data = "[]"
|
}
|
},
|
error: function (e) {}
|
});
|
return data
|
},
|
deletePlotData: function (index) {
|
var data = eval(this.getPlotData());
|
data.splice(index, 1);
|
var datas = eval("[{\"Name\":\"" + encodeURIComponent(JSON.stringify(data)) + "\"}]")[0];
|
jQuery.ajax({
|
type: "POST",
|
async: true,
|
url: 'data/Handler.ashx?' + Math.random() + '&action=SaveLayerData',
|
data: datas,
|
timeout: 600000,
|
success: function (result) {
|
alert("删除成功!");
|
initLoadPage()
|
},
|
error: function (result) {
|
alert('删除失败!')
|
}
|
})
|
}
|
});
|
clazz.getInstance = function () {
|
if (instance === null) {
|
instance = new clazz()
|
}
|
return instance
|
};
|
return clazz
|
});
|