From f55f6e05bae945d275101592782fb3b8980d77cf Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Sun, 28 Jun 2020 15:26:47 +0800 Subject: [PATCH] update风速风向显示设置 --- src/main/webapp/js/newmoralmap.js | 265 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 217 insertions(+), 48 deletions(-) diff --git a/src/main/webapp/js/newmoralmap.js b/src/main/webapp/js/newmoralmap.js index 6e08a5b..addf8f6 100644 --- a/src/main/webapp/js/newmoralmap.js +++ b/src/main/webapp/js/newmoralmap.js @@ -644,6 +644,7 @@ return listView; } + moralMap.MoralMarker = function (option) { var _option = option; var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); @@ -695,8 +696,75 @@ } }) } + + moralMap.WindMarker = function (option, moralMap) { + var _option = option; + var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); + var _iconObj = _getWindIcon(1); + this._point = _pointObj; + + function _getWindIcon(speedLevel) { + speedLevel = speedLevel == null ? 0 : speedLevel; + var icon = _option["icon"]; + var url = icon["url"] + speedLevel + ".png"; + return new BMap.Icon(url, new BMap.Size(icon["width"], icon["height"]), { + imageSize: new BMap.Size(icon["width"], icon["height"]) + }); + } + + this.constructor.call(this, _pointObj, { + icon: _iconObj, + offset: new BMap.Size(0, -11), + enableMassClear: true + }) + return $.extend(this, { + refreshWindDir: function (windDir, windSpeed) { + //��������������������������������������������� + if (windDir == undefined || windSpeed == undefined) { + moralMap.removeOverlay(this); + } else { + var speedLevel; + if (windSpeed >= 0.0 && windSpeed <= 0.2) { + speedLevel = 0; + } else if (windSpeed >= 0.3 && windSpeed <= 1.5) { + speedLevel = 1; + } else if (windSpeed >= 1.6 && windSpeed <= 3.3) { + speedLevel = 2; + } else if (windSpeed >= 3.4 && windSpeed <= 5.4) { + speedLevel = 3; + } else if (windSpeed >= 5.5 && windSpeed <= 7.9) { + speedLevel = 4; + } else if (windSpeed >= 8.0 && windSpeed <= 10.7) { + speedLevel = 5; + } else if (windSpeed >= 10.8 && windSpeed <= 13.8) { + speedLevel = 6; + } else if (windSpeed >= 13.9 && windSpeed <= 17.1) { + speedLevel = 7; + } else if (windSpeed >= 17.2) { + speedLevel = 8; + } + } + if (speedLevel == 0) { + moralMap.removeOverlay(this); + } else { + var iconObj = _getWindIcon(speedLevel); + this.setIcon(iconObj); + this.setRotation(windDir); + } + }, + getOption: function () { + return _option; + }, + setOption: function (option) { + _option = option; + } + }) + + } + //new BMap.Marker()������������IE7��������������������� moralMap.MoralMarker.prototype = new BMap.Marker(); + moralMap.WindMarker.prototype = new BMap.Marker(); //��������������� ������Mark������ moralMap.Monitorpoint = function (option) { if (monitorPointStates) { @@ -786,6 +854,41 @@ } }); + moralMap.Device = function (option) { + if (deviceStates) { + for (var i in deviceStates) { + var state = deviceStates[i]; + if (state.id == option.id) { + option.state = state.state; + } + } + } + var icon = {}; + icon["url"] = "/img/icoWind0"; + icon["width"] = 25; + icon["height"] = 25; + option["icon"] = icon; + var windMarker = new moralMap.WindMarker(option, moralMap); + moralMap.putDevice(option['mac'], windMarker); + var refreshWindMarker = windMarker.refreshWindDir; + return $.extend(windMarker, { + refreshWindDir: function (data) { + if (data != null && data != "") { + this.setData(data); //������������ + refreshWindMarker.call(this, data["e23"], data["e18"]); + } + }, + setData: function (data) { + var option = this.getOption(); + option["data"] = data; + this.setOption(option); + }, + getData: function () { + return this.getOption()["data"]; + } + }); + } + //���������mac���key������ //��������������� ������MoralMark������ moralMap.Equipment = function (option) { @@ -840,53 +943,57 @@ } var mouseOverHandle = option['mouseover']; moralMarker.addEventListener("mouseover", function () { - var obj = {}; - obj['methodName'] = 'deliverMac'; - obj['mac'] = option['mac']; - var objStr = JSON.stringify(obj); - if (!!window['external'] && !!window['external']['callWin']) { - window['external'].callWin(objStr); - } else { - alert(objStr); - } + /* var obj = {}; + obj['methodName'] = 'deliverMac'; + obj['mac'] = option['mac']; + var objStr = JSON.stringify(obj); + if (!!window['external'] && !!window['external']['callWin']) { + window['external'].callWin(objStr); + } else { + alert(objStr); + }*/ moralMap.showSensors = function (jsonData) { - if (!jsonData.hasOwnProperty('mac')) { - infoWindow.setContent(""); - infoWindow.redraw(); - } else { - var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:400px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; - var y, m, d, h, mm, s; - var date = new Date(jsonData['time']); - y = 1900 + date.getYear(); - m = "0" + (date.getMonth() + 1); - d = "0" + date.getDate(); - h = "0" + date.getHours(); - mm = "0" + date.getMinutes(); - s = "0" + date.getSeconds(); - date = y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) + " " + h.substring(h.length - 2, h.length) + ":" + mm.substring(mm.length - 2, mm.length) + ":" + s.substring(s.length - 2, s.length); - adressOutHtml += '<p style="height: 18px;line-height: 18px">' + "��������� " + date + " </p>"; - for (var prop in jsonData) { - if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') { - for (var key in sensorsDescriptionMap) { - if (prop == key) { - var sensorsDescription = sensorsDescriptionMap[key]; - } - } - for (var key in sensorsUnitMap) { - if (prop == key) { - var sensorsUnit = sensorsUnitMap[key]; - if (sensorsUnit == null) { - sensorsUnit = ""; + var deviceSensors = jsonData; + var mac = deviceSensors["mac"]; + if (mac == option['mac']) { + if (!jsonData.hasOwnProperty('mac')) { + infoWindow.setContent(""); + infoWindow.redraw(); + } else { + var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:480px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; + var y, m, d, h, mm, s; + var date = new Date($.now()); + y = 1900 + date.getYear(); + m = "0" + (date.getMonth() + 1); + d = "0" + date.getDate(); + h = "0" + date.getHours(); + mm = "0" + date.getMinutes(); + s = "0" + date.getSeconds(); + date = y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) + " " + h.substring(h.length - 2, h.length) + ":" + mm.substring(mm.length - 2, mm.length) + ":" + s.substring(s.length - 2, s.length); + adressOutHtml += '<p style="height: 18px;line-height: 18px">' + "��������� " + date + " </p>"; + for (var prop in jsonData) { + if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') { + for (var key in sensorsDescriptionMap) { + if (prop == key) { + var sensorsDescription = sensorsDescriptionMap[key]; } } + for (var key in sensorsUnitMap) { + if (prop == key) { + var sensorsUnit = sensorsUnitMap[key]; + if (sensorsUnit == null) { + sensorsUnit = ""; + } + } + } + adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + "���" + jsonData[prop] + sensorsUnit + "</p>"); } - adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + "���" + jsonData[prop] + sensorsUnit + "</p>"); } + adressOutHtml += "</div>"; + infoWindow.setContent(adressOutHtml); + infoWindow.redraw(); } - adressOutHtml += "</div>"; - infoWindow.setContent(adressOutHtml); - infoWindow.redraw(); } } /* if (!$.isEmptyObject(sensorInfo)) { @@ -896,14 +1003,14 @@ }); moralMarker.addEventListener("mouseout", function () { - var obj = {}; - obj['methodName'] = 'stopDeliverMac'; - var objStr = JSON.stringify(obj); - if (!!window['external'] && !!window['external']['callWin']) { - window['external'].callWin(objStr); - } else { - alert(objStr); - } + /* var obj = {}; + obj['methodName'] = 'stopDeliverMac'; + var objStr = JSON.stringify(obj); + if (!!window['external'] && !!window['external']['callWin']) { + window['external'].callWin(objStr); + } else { + alert(objStr); + }*/ moralMap.closeInfoWindow(); }); @@ -952,6 +1059,31 @@ moralMap.getEquipments = function (key) { return moralMap['_equipments']; } + + moralMap.putDevice = function (key, obj) { + if (key != null && key != "") { + key = String.prototype.toLowerCase.call(key); + if (moralMap['_devices'] == undefined) { + moralMap['_devices'] = {}; + } + moralMap['_devices'][key] = obj; + } + } + + moralMap.getDevice = function (key) { + if (key == null) { + return null; + } + key = String.prototype.toLowerCase.call(key); + if (typeof moralMap['_devices'] === 'object') { + return moralMap['_devices'][key]; + } + } + + moralMap.getDevices = function (key) { + return moralMap['_devices']; + } + moralMap.clearEquipments = function () { if (moralMap['_equipments'] != undefined) { delete moralMap['_equipments']; @@ -991,6 +1123,34 @@ } return markers; } + + moralMap.getHorizonWindMarkers = function (isShow) { + var bounds = moralMap.getBounds(); + var oldWindMarkerList; + var isShow = (isShow) ? baiduMap : null; + if (moralMap.layer() == "equipments") { + oldWindMarkerList = moralMap.getDevices(); + } + var markers = []; + if (oldWindMarkerList != null && typeof oldWindMarkerList == "object") { + for (var i in oldWindMarkerList) { + var oldWindMarker = oldWindMarkerList[i]; + if (oldWindMarker != null && oldWindMarker instanceof BMap.Overlay && oldWindMarker.getMap() == isShow) { + var option = oldWindMarker.getOption(); + if (typeof option == 'object') { + var longitude = option['longitude']; + var latitude = option['latitude']; + // ������������������������������������ + if (longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) { + markers.push(oldWindMarker); + } + } + } + } + } + return markers; + } + moralMap.showPointMonitor = function (id) { var mpointMarker = moralMap.getMpoint(id); var mpoint = mpointMarker.getOption(); @@ -1072,5 +1232,14 @@ } } + moralMap.refreshWindDir = function (devicesInfo) { + var deviceInfo = devicesInfo; + var mac = deviceInfo["mac"]; + var device = moralMap.getDevice(mac); + if (device) { + device.refreshWindDir(deviceInfo); + } + } + window.moralMap = moralMap; })(jQuery, BMap, window); -- Gitblit v1.8.0