/* * @Description: * @Version: 1.0 * @Author: yangsx * @Date: 2019-12-09 19:01:40 * @LastEditors: yangsx * @LastEditTime: 2019-12-14 14:44:57 */ define([ "dojo", "dojo/_base/declare", "dojo/_base/lang", "base/BaseWidget", "dojo/text!widgets/mapBrowse/template.html", "base/AppEvent", "base/ConfigData", "widgets/mapBrowse/config", "dojo/dom", "dojo/dom-construct", "dojo/dom-attr", "dojo/dom-style", "dojo/on", "esri/layers/ArcGISDynamicMapServiceLayer", "esri/layers/ArcGISTiledMapServiceLayer", "esri/layers/FeatureLayer", "controls/tab/TabControl", "esri/dijit/SymbolStyler", "esri/styles/basic", "dojo/_base/array", "esri/InfoTemplate", "esri/tasks/query", "esri/tasks/QueryTask", "esri/Color", "esri/graphic", "esri/geometry/Point", "esri/symbols/SimpleLineSymbol", "esri/symbols/SimpleFillSymbol", "esri/symbols/PictureMarkerSymbol", "esri/symbols/SimpleMarkerSymbol", "esri/SpatialReference", "esri/tasks/GeometryService", "esri/tasks/ProjectParameters", "esri/layers/GraphicsLayer", "esri/layers/LabelLayer", "esri/symbols/TextSymbol", "esri/renderers/SimpleRenderer", "esri/renderers/ClassBreaksRenderer", "esri/tasks/Geoprocessor", "esri/tasks/DataFile", "esri/geometry/webMercatorUtils", "esri/symbols/Font", "esri/geometry/ScreenPoint", "esri/layers/ImageParameters", "esri/geometry/geometryEngine", "dojo/domReady!" ], function( dojo, declare, lang, BaseWidget, template, AppEvent, ConfigData, config, dom, domConstruct, domAttr, domStyle, on, ArcGISDynamicMapServiceLayer, ArcGISTiledMapServiceLayer, FeatureLayer, TabControl, SymbolStyler, basic, arrayUtils, InfoTemplate, Query, QueryTask, Color, Graphic, Point, SimpleLineSymbol, SimpleFillSymbol, PictureMarkerSymbol, SimpleMarkerSymbol, SpatialReference, GeometryService, ProjectParameters, GraphicsLayer, LabelLayer, TextSymbol, SimpleRenderer, ClassBreaksRenderer, Geoprocessor, DataFile, webMercatorUtils, Font, ScreenPoint, ImageParameters, geometryEngine ) { var Widget = declare([BaseWidget], { widgetName: "MapBrowseWidgetCopy", label: "地图浏览", templateString: template, _map: null, objThis: null, _siteLayer: new GraphicsLayer(), constructor: function(options, srcRefNode) { this._map = options.map; objThis = this; }, startup: function() { objThis._map.addLayer(objThis._siteLayer); }, open: function() { findStaVideoByStcd({ stcd: stcd }, function(res) { // var data = []; // var type = ""; // domConstruct.create( // "select", // { // id: "toolSelect", // class: "toolSelect" // }, // dom.byId("mainMapWidget") // ); // for (var i = 0; i < res.data.length; i++) { // domConstruct.create( // "option", // { // class: "toolSelectOption", // lat: Number(res.data[i].lat), // lon: Number(res.data[i].lon), // innerHTML: res.data[i].videoName // }, // dom.byId("toolSelect") // ); // switch (res.data[i].id) { // case 128: // type = "气象土壤"; // break; // case 129: // type = "水质"; // break; // default: // type = ""; // } // data.push({ // id: res.data[i].id, // name: res.data[i].videoName, // lat: Number(res.data[i].lat), // lon: Number(res.data[i].lon), // stcd: stcd, // type: type // }); // } // $("#toolSelect").change(function() { // $("select option:selected"); // var point = new Point( // parseFloat($("#toolSelect option:selected").attr("lon")), // parseFloat($("#toolSelect option:selected").attr("lat")), // objThis.map.spatialReference // ); // objThis.map.centerAndZoom(point, 15); // }); // // domConstruct.create( // // "div", // // { // // id: "toolUpdateName", // // class: "toolUpdateName", // // innerHTML: "修改站点名称" // // }, // // dom.byId("mainMapWidget") // // ); // $("#toolUpdateName").click(function() { // layer.open({ // type: 2, // title: "修改站点名称", // shadeClose: true, // shade: 0.8, // area: ["500px", "320px"], // content: "widgets/mapBrowse/upDateSiteName.html" //iframe的url // }); // // objThis._init(); // }); // config.data = data; // objThis._init(); }); }, _init: function() { var symbol = new PictureMarkerSymbol({ url: "images/sompl.png", height: 21, width: 15 }); var font = new Font(); font.setSize("12px"); font.setWeight(Font.WEIGHT_BOLD); console.log(1); for (var i in config.data) { var point = new Point( parseFloat(config.data[i].lon), parseFloat(config.data[i].lat), objThis.map.spatialReference ); if (config.data[i].name.length == 4) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 60 }).setOffset(55, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(50, -2) .setFont(font); } else if (config.data[i].name.length == 5) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 70 }).setOffset(65, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(60, -2) .setFont(font); } else if (config.data[i].name.length == 6) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 80 }).setOffset(74, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(70, -2) .setFont(font); } else if (config.data[i].name.length == 7) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 90 }).setOffset(80, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(80, -2) .setFont(font); } else if (config.data[i].name.length == 8) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 100 }).setOffset(90, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(90, -2) .setFont(font); } else if (config.data[i].name.length == 9) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 110 }).setOffset(95, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(100, -2) .setFont(font); } else if (config.data[i].name.length == 10) { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 120 }).setOffset(105, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(100, -2) .setFont(font); } else { var symbol1 = new PictureMarkerSymbol({ url: "images/txt.png", height: 20, width: 130 }).setOffset(110, 2); var label = new TextSymbol(config.data[i].name) .setColor("#fff") .setOffset(120, -2) .setFont(font); } var temGraphic = new Graphic(point, symbol, config.data[i]); var temGraphicImg = new Graphic(point, symbol1, config.data[i]); var textGraphic = new Graphic(point, label, config.data[i]); objThis._siteLayer.add(temGraphic); objThis._siteLayer.add(temGraphicImg); objThis._siteLayer.add(textGraphic); } objThis._siteLayer.on("click", function(layer) { if (!layer.graphic.attributes.type) { $(".map_tool_monitor, #monTitle").hide(); return false; } var id = layer.graphic.attributes.id; findElementCurrentByStcd({ stcd: stcd }, function(res) { var data = res.data; var dataArr = { airList: [], weatherList: [], soilList: [], waterList: [] }; for (var i in data.soilList) { for (var k in config.type) { for (var a in config.type[k].type) { if (data.soilList[i].name == config.type[k].type[a]) { if (config.type[k].name == "气象") { dataArr.weatherList.push(data.soilList[i]); } else if (config.type[k].name == "水质") { dataArr.waterList.push(data.soilList[i]); } else if (config.type[k].name == "土壤") { dataArr.soilList.push(data.soilList[i]); } else if (config.type[k].name == "大气") { dataArr.airList.push(data.soilList[i]); } } } } } for (var i in data.weatherList) { for (var k in config.type) { for (var a in config.type[k].type) { if (data.weatherList[i].name == config.type[k].type[a]) { if (config.type[k].name == "气象") { dataArr.weatherList.push(data.weatherList[i]); } else if (config.type[k].name == "水质") { dataArr.waterList.push(data.weatherList[i]); } else if (config.type[k].name == "土壤") { dataArr.soilList.push(data.weatherList[i]); } else if (config.type[k].name == "大气") { dataArr.airList.push(data.weatherList[i]); } } } } } for (var i in data.airList) { for (var k in config.type) { for (var a in config.type[k].type) { if (data.airList[i].name == config.type[k].type[a]) { if (config.type[k].name == "气象") { dataArr.weatherList.push(data.airList[i]); } else if (config.type[k].name == "水质") { dataArr.waterList.push(data.airList[i]); } else if (config.type[k].name == "土壤") { dataArr.soilList.push(data.airList[i]); } else if (config.type[k].name == "大气") { dataArr.airList.push(data.airList[i]); } } } } } for (var i in data.waterList) { for (var k in config.type) { for (var a in config.type[k].type) { if (data.waterList[i].name == config.type[k].type[a]) { if (config.type[k].name == "气象") { dataArr.weatherList.push(data.waterList[i]); } else if (config.type[k].name == "水质") { dataArr.waterList.push(data.waterList[i]); } else if (config.type[k].name == "土壤") { dataArr.soilList.push(data.waterList[i]); } else if (config.type[k].name == "大气") { dataArr.airList.push(data.waterList[i]); } } } } } objThis.parseRealtimeData(dataArr, layer.graphic.attributes.id); }); }); }, parseRealtimeData: function(data, _id) { $(".map_tool_monitor").show(); $("#map_tool_monitor_content").html(""); if ( data.soilList.length == 0 && data.weatherList == 0 && data.airList == 0 && data.waterList == 0 ) { $("#map_tool_monitor_content").html( "
暂无数据!
" ); $("#monTitle").hide(); return false; } var datas = []; /*if(data.airList.length > 0){ datas.push({"name":"大气质量监测", "data":data.airList}); } if(data.soilList.length > 0){ datas.push({"name":"土壤质量监测", "data":data.soilList}); } if(data.waterList.length > 0){ datas.push({"name":"水质质量监测", "data":data.waterList}); } if(data.weatherList.length > 0){ datas.push({"name":"气象质量监测", "data":data.weatherList}); } */ if (_id == 129) { datas.push({ name: "水质质量监测", data: data.waterList }); } else if (_id == 128) { // datas.push({ name: "气象质量监测", data: data.weatherList }); datas.push({ name: "土壤质量监测", data: data.soilList }); } $("#monTitle").show(); for (var i = 0; i < datas.length; i++) { var html = ""; if (i == 0) { $("#monTitle").html(datas[i].name); if (datas[i].data.length == 0) { $("#map_tool_monitor_content").append( "
暂无数据!
" ); } else { for (var k in datas[i].data) { html += "
" + datas[i].data[k].value + "" + datas[i].data[k].unit + "
" + "暂无数据!
" ); } else { for (var k in datas[i].data) { html += "
" + datas[i].data[k].value + "" + data[i].data[k].unit + "
" + "