From 712a73114593e64ae3126f9bb531d968f3581394 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Tue, 30 Jun 2020 10:31:23 +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..95a4695 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 windIcon = _option["windIcon"];
+ var windUrl = windIcon["url"] + speedLevel + ".png";
+ return new BMap.Icon(windUrl, new BMap.Size(windIcon["width"], windIcon["height"]), {
+ imageSize: new BMap.Size(windIcon["width"], windIcon["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 && windSpeed <= 0.2) {
+ speedLevel = 0;
+ } else if (windSpeed > 0.2 && windSpeed <= 1.5) {
+ speedLevel = 1;
+ } else if (windSpeed > 1.5 && windSpeed <= 3.3) {
+ speedLevel = 2;
+ } else if (windSpeed > 3.3 && windSpeed <= 5.4) {
+ speedLevel = 3;
+ } else if (windSpeed > 5.4 && windSpeed <= 7.9) {
+ speedLevel = 4;
+ } else if (windSpeed > 7.9 && windSpeed <= 10.7) {
+ speedLevel = 5;
+ } else if (windSpeed > 10.7 && windSpeed <= 13.8) {
+ speedLevel = 6;
+ } else if (windSpeed > 13.8 && windSpeed <= 17.1) {
+ speedLevel = 7;
+ } else if (windSpeed > 17.1) {
+ 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 windIcon = {};
+ windIcon["url"] = "/img/icoWind0";
+ windIcon["width"] = 25;
+ windIcon["height"] = 25;
+ option["windIcon"] = windIcon;
+ 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