From e5102b46b77fa8381caa914b4cec89baa5f5e0df Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Thu, 08 Aug 2019 17:17:35 +0800 Subject: [PATCH] AQI计算工具类 --- src/main/webapp/js/moralmap.js | 114 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 67 insertions(+), 47 deletions(-) diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index fefd52a..313ae6e 100644 --- a/src/main/webapp/js/moralmap.js +++ b/src/main/webapp/js/moralmap.js @@ -508,7 +508,8 @@ function _getMapIcon(state) { state = state == null ? 0 : state; var icon = _option["icon"]; - var url = icon["stateIcons"][state]; + //var url = icon["stateIcons"][state]; + var url = icon["url"] + state + ".png"; return new BMap.Icon(url, new BMap.Size(icon["width"], icon["height"]), { imageSize: new BMap.Size(icon["width"], icon["height"]) }); @@ -550,10 +551,18 @@ //new BMap.Marker()������������IE7��������������������� moralMap.MoralMarker.prototype = new BMap.Marker(); //��������������� ������Mark������ - var showMonitorpointInfoWindow = null; moralMap.Monitorpoint = function(option) { + if(monitorPointStates){ + for(var i in monitorPointStates){ + var state = monitorPointStates[i]; + if(state.id == option.id){ + option.state = state.state; + } + } + } var icon = {}; icon["stateIcons"] = ["/img/ico00.png", "/img/ico01.png", "/img/ico02.png", "/img/ico03.png", "/img/ico04.png"]; + icon["url"] = "/img/ico0"; icon["width"] = 50; icon["height"] = 50; option["icon"] = icon; @@ -600,9 +609,6 @@ } return new BMap.InfoWindow(getAdressOutHtml(), winOpts); })(); - if (!showMonitorpointInfoWindow) { - showMonitorpointInfoWindow = infoWindow; - } if(moralMarker["infoWindow"] == undefined) { moralMarker["infoWindow"] = infoWindow; } @@ -642,10 +648,18 @@ } //���������mac���key������ //��������������� ������MoralMark������ - var showEquipmentInfoWindow = null; moralMap.Equipment = 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["stateIcons"] = ["/img/ico_coo00.png", "/img/ico_coo01.png", "/img/ico_coo02.png", "/img/ico_coo03.png", "/img/ico_coo04.png"]; + icon["url"] = "/img/ico_coo0"; icon["width"] = 50; icon["height"] = 60; option["icon"] = icon; @@ -697,10 +711,7 @@ } return new BMap.InfoWindow(getAdressOutHtml(), winOpts); })(); - if (!showEquipmentInfoWindow) { - showEquipmentInfoWindow = infoWindow; - } - + /*var infoWindow = (function() { //��������������� var winOpts = { @@ -964,45 +975,54 @@ } moralMap.callJS = function(condition) { - var condition = JSON.parse(condition); - var new_point = new BMap.Point(condition.longitude, condition.latitude); - baiduMap.panTo(new_point); - baiduMap.setCenter(new_point); - var parma={}; - parma["areaCode"] = moralMap['params']["areaCode"]; - parma["orgId"] = moralMap['params']["orgId"]; - if (condition.type == "mpoint") { - parma["layer"] = "monitorpoints"; - parma["markerKeys"] = [condition.id]; - } else if (condition.type == "device") { - parma["layer"] = "equipments"; - parma["markerKeys"] = [condition.mac]; - } - //$("#searchParam").val(JSON.stringify(parma)); - $.ajax({ - type : "post", - url : "get-real-state-data", - data : JSON.stringify(parma), - dataType : "json", - contentType : "application/json;charset=utf-8", - cache : false, - async : true, - success : function(data) { - condition.state = data["extData"]["markers"][0]["state"]; - if (condition.type == "mpoint") { - baiduMap.setZoom(17); - new moralMap.Monitorpoint(condition); - moralMap.openInfoWindow(showMonitorpointInfoWindow, new_point); - showMonitorpointInfoWindow = null; - } else if (condition.type == "device") { - baiduMap.setZoom(18); - new moralMap.Equipment(condition); - moralMap.openInfoWindow(showEquipmentInfoWindow, new_point); - showEquipmentInfoWindow = null; + var new_point = new BMap.Point(condition.longitude, condition.latitude); + baiduMap.panTo(new_point); + baiduMap.setCenter(new_point); + baiduMap.setZoom(condition.type == "mpoint" ? 17 : 18); + var interval = setInterval(function(){ + var marker; + if (condition.type == "mpoint") { + marker = moralMap.getMpoint(condition.id); + } else if (condition.type == "device") { + marker = moralMap.getEquipment(condition.mac); + } + if(marker){ + clearInterval(interval); + moralMap.openInfoWindow(marker["infoWindow"], new_point); + } + }, 50); + + } + + var deviceStates ; + var monitorPointStates; + moralMap.refreshState = function(states) { + if (!monitorPointStates) { + monitorPointStates = states; + deviceStates = []; + for (var i in states) { + var state = states[i]; + for (var j in state.devices) { + var device = state.devices[j]; + deviceStates.push(device); } } - }); - + } + for (var i in states) { + var state = states[i]; + var mpoint = moralMap.getMpoint(state.id); + if (mpoint) { + mpoint.refreshState(state.state); + } + for (var j in state.devices) { + var marker = state.devices[j]; + var marker_mac = marker["mac"]; + var equipment = moralMap.getEquipment(marker_mac); + if (equipment) { + equipment.refreshState(marker); + } + } + } } -- Gitblit v1.8.0