| | |
| | | (function($, BMap, window) { |
| | | var sensorNames = { |
| | | "e1": ["PM2.5", "ug/m3"], |
| | | "e2": ["PM10", "ug/m3"], |
| | | "e3": ["颗粒物0.3", "PCS/0.1L"], |
| | | "e4": ["颗粒物2.5", "PCS/0.1L"], |
| | | "e5": ["甲醛", "mg/m3"], |
| | | "e6": ["湿度", "%"], |
| | | "e7": ["温度", "℃"], |
| | | "e8": ["氧气", "%"], |
| | | "e9": ["氯气", "mg/m3"], |
| | | "e10": ["一氧化碳", "mg/m3"], |
| | | "e11": ["二氧化硫", "ug/m3"], |
| | | "e12": ["光照", "Lux"], |
| | | "e13": ["噪音", "dB"], |
| | | "e14": ["氨气", "mg/m3"], |
| | | "e15": ["臭氧", "ug/m3"], |
| | | "e16": ["二氧化氮", "ug/m3"], |
| | | "e17": ["挥发有机气体", "PPB"], |
| | | "e18": ["风速", "m/s"], |
| | | "e19": ["二氧化碳", "mg/m3"] |
| | | } |
| | | var showSensorKeys=["e1","e2","e10","e11","e15","e16"]; |
| | | var moralMap = {}; |
| | | var baiduMap = null; |
| | | /* |
| | | * 根据mac地址获取version |
| | | */ |
| | | // moralMap.getVersion = function(mac){ |
| | | // var version = null; |
| | | // $.ajax({ |
| | | // type:"get", |
| | | // url:"getversion?mac="+mac, |
| | | // async:false, |
| | | // success:function(jsonData){ |
| | | // if(jsonData!=null&&typeof jsonData=='object'){ |
| | | // version = jsonData['version']; |
| | | // } |
| | | // } |
| | | // }); |
| | | // return version; |
| | | // } |
| | | /* |
| | | * 百度地图初始化 |
| | | */ |
| | | moralMap.mapInit = function() { |
| | | var defaultParam = { |
| | | (function ($, BMap, window) { |
| | | var sensorNames = { |
| | | "e1": ["PM2.5", "ug/m3"], |
| | | "e2": ["PM10", "ug/m3"], |
| | | "e3": ["颗粒物0.3", "PCS/0.1L"], |
| | | "e4": ["颗粒物2.5", "PCS/0.1L"], |
| | | "e5": ["甲醛", "mg/m3"], |
| | | "e6": ["湿度", "%"], |
| | | "e7": ["温度", "℃"], |
| | | "e8": ["氧气", "%"], |
| | | "e9": ["氯气", "mg/m3"], |
| | | "e10": ["一氧化碳", "mg/m3"], |
| | | "e11": ["二氧化硫", "ug/m3"], |
| | | "e12": ["光照", "Lux"], |
| | | "e13": ["噪音", "dB"], |
| | | "e14": ["氨气", "mg/m3"], |
| | | "e15": ["臭氧", "ug/m3"], |
| | | "e16": ["二氧化氮", "ug/m3"], |
| | | "e17": ["挥发有机气体", "PPB"], |
| | | "e18": ["风速", "m/s"], |
| | | "e19": ["二氧化碳", "mg/m3"] |
| | | } |
| | | var showSensorKeys = ["e1", "e2", "e10", "e11", "e15", "e16"]; |
| | | var moralMap = {}; |
| | | var baiduMap = null; |
| | | /* |
| | | * 根据mac地址获取version |
| | | */ |
| | | // moralMap.getVersion = function(mac){ |
| | | // var version = null; |
| | | // $.ajax({ |
| | | // type:"get", |
| | | // url:"getversion?mac="+mac, |
| | | // async:false, |
| | | // success:function(jsonData){ |
| | | // if(jsonData!=null&&typeof jsonData=='object'){ |
| | | // version = jsonData['version']; |
| | | // } |
| | | // } |
| | | // }); |
| | | // return version; |
| | | // } |
| | | /* |
| | | * 百度地图初始化 |
| | | */ |
| | | moralMap.mapInit = function () { |
| | | var defaultParam = { |
| | | minZoom: 12, |
| | | maxZoom: 20 |
| | | }; |
| | | if(!!arguments[1]) { |
| | | $.extend(defaultParam,arguments[1]); |
| | | if (!!arguments[1]) { |
| | | $.extend(defaultParam, arguments[1]); |
| | | } |
| | | baiduMap = new BMap.Map("mapCanvas",defaultParam); // 创建Map实例,设置地图允许的最小/大级别 |
| | | var map = baiduMap; |
| | | var mapStyle = { |
| | | features: ["road", "building", "water", "land"], //隐藏地图上的poi |
| | | style: "normal" //设置地图风格为高端黑 |
| | | } |
| | | map.setMapStyle(mapStyle); |
| | | baiduMap = new BMap.Map("mapCanvas", defaultParam); // 创建Map实例,设置地图允许的最小/大级别 |
| | | var map = baiduMap; |
| | | var mapStyle = { |
| | | features: ["road", "building", "water", "land"], //隐藏地图上的poi |
| | | style: "normal" //设置地图风格为高端黑 |
| | | } |
| | | map.setMapStyle(mapStyle); |
| | | var showZoom = !!arguments[2] |
| | | && arguments[2] <=defaultParam.maxZoom |
| | | && arguments[2] >= defaultParam.minZoom?arguments[2]:12; |
| | | && arguments[2] <= defaultParam.maxZoom |
| | | && arguments[2] >= defaultParam.minZoom ? arguments[2] : 12; |
| | | var address = arguments[0]; |
| | | var regoinNames = address.split(" "); |
| | | var cityName = regoinNames.length>1?regoinNames[1]:regoinNames[0]; |
| | | var cityName = regoinNames.length > 1 ? regoinNames[1] : regoinNames[0]; |
| | | map.setCurrentCity(cityName); |
| | | // 将地址解析结果显示在地图上,并调整地图视野 |
| | | // 创建地址解析器实例 |
| | | var myGeo = new BMap.Geocoder(); |
| | | myGeo.getPoint(address, function(point){ |
| | | if (point) { |
| | | map.centerAndZoom(point, showZoom); |
| | | }else{ |
| | | alert("您选择地址没有解析到结果!"); |
| | | // 将地址解析结果显示在地图上,并调整地图视野 |
| | | // 创建地址解析器实例 |
| | | var myGeo = new BMap.Geocoder(); |
| | | myGeo.getPoint(address, function (point) { |
| | | if (point) { |
| | | map.centerAndZoom(point, showZoom); |
| | | } else { |
| | | alert("您选择地址没有解析到结果!"); |
| | | } |
| | | }, cityName); |
| | | //增加导航控件 |
| | | map.enableScrollWheelZoom(true); |
| | | var navigation = new BMap.NavigationControl({ |
| | | anchor: BMAP_ANCHOR_BOTTOM_RIGHT, |
| | | type: BMAP_NAVIGATION_CONTROL_LARGE |
| | | }); |
| | | map.addControl(navigation); |
| | | } |
| | | moralMap.closeSearchBox = function () { |
| | | moralMap["_searchBoxKey"] = Math.random(); |
| | | $(".search_box").css("display", "none"); |
| | | } |
| | | //延时开启 |
| | | moralMap.openSearchBox = function () { |
| | | key = Math.random(); |
| | | moralMap["_searchBoxKey"] = key; |
| | | setTimeout(function () { |
| | | if (moralMap["_searchBoxKey"] == key) { |
| | | $(".search_box").css("display", "block"); |
| | | } |
| | | }, 1500); |
| | | } |
| | | /* |
| | | * ----------------适配方法------------------------ |
| | | */ |
| | | moralMap.addEventListener = function (type, fn) { |
| | | baiduMap.addEventListener(type, function () { |
| | | if (type == "zoomstart") { |
| | | moralMap._zoomStartHandle(); |
| | | } else if (type == "zoomend") { |
| | | moralMap._zoomEndHandle(); |
| | | } |
| | | fn.apply(baiduMap, arguments); |
| | | }); |
| | | } |
| | | moralMap._zoomStartHandle = function () { |
| | | baiduMap.closeInfoWindow(); |
| | | moralMap.startZoom(baiduMap.getZoom()); |
| | | } |
| | | moralMap._zoomEndHandle = function () { |
| | | if ($(".search_box").css("display") == "none") { |
| | | moralMap.openSearchBox(); |
| | | } |
| | | var endZoom = baiduMap.getZoom(); |
| | | var startZoom = moralMap.startZoom(); |
| | | //刷新key防止延迟加载 |
| | | // var key = moralMap.lazyKeyer(); |
| | | var confine = moralMap.getZoomConfine(); |
| | | if (endZoom > startZoom) { |
| | | //放大超过边界 |
| | | if (endZoom >= confine && startZoom <= confine) { |
| | | //清空控件 |
| | | moralMap.layer("equipments"); |
| | | moralMap.clearOverlays(); |
| | | } |
| | | } else { |
| | | //缩小超过边界 |
| | | if (endZoom != startZoom && startZoom >= confine && endZoom < confine) { |
| | | //清空控件 |
| | | moralMap.layer("monitorpoints"); |
| | | moralMap.clearOverlays(); |
| | | } |
| | | } |
| | | } |
| | | moralMap.layer = (function () { |
| | | var _layers = ["equipments", "monitorpoints"]; |
| | | var _layer = "monitorpoints"; |
| | | return function (layer) { |
| | | if (layer == undefined) { |
| | | return _layer; |
| | | } else { |
| | | for (var i in _layers) { |
| | | if (layer == _layers[i]) { |
| | | _layer = layer; |
| | | } |
| | | } |
| | | }, cityName); |
| | | //增加导航控件 |
| | | map.enableScrollWheelZoom(true); |
| | | var navigation = new BMap.NavigationControl({ |
| | | anchor: BMAP_ANCHOR_BOTTOM_RIGHT, |
| | | type: BMAP_NAVIGATION_CONTROL_LARGE |
| | | }); |
| | | map.addControl(navigation); |
| | | } |
| | | moralMap.closeSearchBox = function() { |
| | | moralMap["_searchBoxKey"] = Math.random(); |
| | | $(".search_box").css("display", "none"); |
| | | } |
| | | //延时开启 |
| | | moralMap.openSearchBox = function() { |
| | | key = Math.random(); |
| | | moralMap["_searchBoxKey"] = key; |
| | | setTimeout(function() { |
| | | if(moralMap["_searchBoxKey"] == key) { |
| | | $(".search_box").css("display", "block"); |
| | | } |
| | | }, 1500); |
| | | } |
| | | /* |
| | | * ----------------适配方法------------------------ |
| | | */ |
| | | moralMap.addEventListener = function(type, fn) { |
| | | baiduMap.addEventListener(type, function() { |
| | | if(type == "zoomstart") { |
| | | moralMap._zoomStartHandle(); |
| | | } else if(type == "zoomend") { |
| | | moralMap._zoomEndHandle(); |
| | | } |
| | | fn.apply(baiduMap, arguments); |
| | | }); |
| | | } |
| | | moralMap._zoomStartHandle = function() { |
| | | baiduMap.closeInfoWindow(); |
| | | moralMap.startZoom(baiduMap.getZoom()); |
| | | } |
| | | moralMap._zoomEndHandle = function() { |
| | | if($(".search_box").css("display") == "none") { |
| | | moralMap.openSearchBox(); |
| | | } |
| | | var endZoom = baiduMap.getZoom(); |
| | | var startZoom = moralMap.startZoom(); |
| | | //刷新key防止延迟加载 |
| | | // var key = moralMap.lazyKeyer(); |
| | | var confine = moralMap.getZoomConfine(); |
| | | if(endZoom > startZoom) { |
| | | //放大超过边界 |
| | | if(endZoom >= confine && startZoom <= confine) { |
| | | //清空控件 |
| | | moralMap.layer("equipments"); |
| | | moralMap.clearOverlays(); |
| | | } |
| | | } else { |
| | | //缩小超过边界 |
| | | if(endZoom != startZoom && startZoom >= confine && endZoom < confine) { |
| | | //清空控件 |
| | | moralMap.layer("monitorpoints"); |
| | | moralMap.clearOverlays(); |
| | | } |
| | | } |
| | | } |
| | | moralMap.layer = (function() { |
| | | var _layers = ["equipments", "monitorpoints"]; |
| | | var _layer = "monitorpoints"; |
| | | return function(layer) { |
| | | if(layer == undefined) { |
| | | return _layer; |
| | | } else { |
| | | for(var i in _layers) { |
| | | if(layer == _layers[i]) { |
| | | _layer = layer; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | })(); |
| | | } |
| | | } |
| | | })(); |
| | | // 坐标适配器 |
| | | moralMap.Bounds = function (baiduBounds) { |
| | | if(!!baiduBounds){ |
| | | if (!!baiduBounds) { |
| | | this.northeastLng = baiduBounds.getNorthEast().lng;//东北角经度,大一点 |
| | | this.northeastLat = baiduBounds.getNorthEast().lat;//东北角纬度,大一点 |
| | | this.southwestLng = baiduBounds.getSouthWest().lng;//西南角经度坐标,小一点 |
| | | this.southwestLat = baiduBounds.getSouthWest().lat;//西南角经度坐标,小一点 |
| | | }else{ |
| | | } else { |
| | | this.northeastLng = null;//东北角经度,大一点 |
| | | this.northeastLat = null;//东北角纬度,大一点 |
| | | this.southwestLng = null;//西南角经度坐标,小一点 |
| | | this.southwestLat = null;//西南角经度坐标,小一点 |
| | | } |
| | | } |
| | | } |
| | | moralMap.getBounds = function() { |
| | | return new moralMap.Bounds(baiduMap.getBounds()); //即时bounds; |
| | | } |
| | | moralMap.getMaxBounds = function() { |
| | | var key = "_" + moralMap.layer() + "_bounds"; |
| | | return this[key]; |
| | | } |
| | | moralMap.setMaxBounds = function(bs) { |
| | | var key = "_" + moralMap.layer() + "_bounds"; |
| | | var _bounds = !!this[key]?this[key]:new moralMap.Bounds(); //累积数据 |
| | | //记录最大边界 |
| | | _bounds.northeastLng = _bounds.northeastLng || bs.northeastLng; |
| | | _bounds.northeastLat = _bounds.northeastLat || bs.northeastLat; |
| | | _bounds.southwestLng = _bounds.southwestLng || bs.southwestLng; |
| | | _bounds.southwestLat = _bounds.southwestLat || bs.southwestLat; |
| | | _bounds.northeastLng = bs.northeastLng > _bounds.northeastLng ? bs.northeastLng: _bounds.northeastLng; |
| | | _bounds.northeastLat = bs.northeastLat > _bounds.northeastLat ? bs.northeastLat: _bounds.northeastLat; |
| | | _bounds.southwestLng = bs.southwestLng < _bounds.southwestLng ? bs.southwestLng: _bounds.southwestLng; |
| | | _bounds.southwestLat = bs.southwestLat < _bounds.southwestLat ? bs.southwestLat: _bounds.southwestLat; |
| | | this[key] = _bounds; |
| | | } |
| | | moralMap.isOverBounds = function() { |
| | | var isOver = false; |
| | | var _bounds = moralMap.getMaxBounds(); //累计数据 |
| | | var bs = moralMap.getBounds(); //实际数据 |
| | | if(!_bounds) { |
| | | isOver = true; |
| | | moralMap.setMaxBounds(bs); |
| | | } else { |
| | | isOver = (bs.northeastLng > _bounds.northeastLng |
| | | || bs.northeastLat > _bounds.northeastLat |
| | | || bs.southwestLng < _bounds.southwestLng |
| | | || bs.southwestLat < _bounds.southwestLat); |
| | | if(isOver){ |
| | | moralMap.setMaxBounds(bs); |
| | | } |
| | | } |
| | | moralMap.getBounds = function () { |
| | | return new moralMap.Bounds(baiduMap.getBounds()); //即时bounds; |
| | | } |
| | | moralMap.getMaxBounds = function () { |
| | | var key = "_" + moralMap.layer() + "_bounds"; |
| | | return this[key]; |
| | | } |
| | | moralMap.setMaxBounds = function (bs) { |
| | | var key = "_" + moralMap.layer() + "_bounds"; |
| | | var _bounds = !!this[key] ? this[key] : new moralMap.Bounds(); //累积数据 |
| | | //记录最大边界 |
| | | _bounds.northeastLng = _bounds.northeastLng || bs.northeastLng; |
| | | _bounds.northeastLat = _bounds.northeastLat || bs.northeastLat; |
| | | _bounds.southwestLng = _bounds.southwestLng || bs.southwestLng; |
| | | _bounds.southwestLat = _bounds.southwestLat || bs.southwestLat; |
| | | _bounds.northeastLng = bs.northeastLng > _bounds.northeastLng ? bs.northeastLng : _bounds.northeastLng; |
| | | _bounds.northeastLat = bs.northeastLat > _bounds.northeastLat ? bs.northeastLat : _bounds.northeastLat; |
| | | _bounds.southwestLng = bs.southwestLng < _bounds.southwestLng ? bs.southwestLng : _bounds.southwestLng; |
| | | _bounds.southwestLat = bs.southwestLat < _bounds.southwestLat ? bs.southwestLat : _bounds.southwestLat; |
| | | this[key] = _bounds; |
| | | } |
| | | moralMap.isOverBounds = function () { |
| | | var isOver = false; |
| | | var _bounds = moralMap.getMaxBounds(); //累计数据 |
| | | var bs = moralMap.getBounds(); //实际数据 |
| | | if (!_bounds) { |
| | | isOver = true; |
| | | moralMap.setMaxBounds(bs); |
| | | } else { |
| | | isOver = (bs.northeastLng > _bounds.northeastLng |
| | | || bs.northeastLat > _bounds.northeastLat |
| | | || bs.southwestLng < _bounds.southwestLng |
| | | || bs.southwestLat < _bounds.southwestLat); |
| | | if (isOver) { |
| | | moralMap.setMaxBounds(bs); |
| | | } |
| | | } |
| | | |
| | | return isOver; |
| | | } |
| | | moralMap.addOverlay = function(overlay) { |
| | | if(overlay.getMap() != baiduMap) { |
| | | // setTimeout(function(){ |
| | | baiduMap.addOverlay.call(baiduMap, overlay); |
| | | // },10); |
| | | return isOver; |
| | | } |
| | | moralMap.addOverlay = function (overlay) { |
| | | if (overlay.getMap() != baiduMap) { |
| | | // setTimeout(function(){ |
| | | baiduMap.addOverlay.call(baiduMap, overlay); |
| | | } |
| | | } |
| | | moralMap.addOverlays = function(overlays) { |
| | | if(overlays != null && typeof overlays == 'object') { |
| | | for(var i in overlays) { |
| | | moralMap.addOverlay(overlays[i]); |
| | | } |
| | | } |
| | | // },10); |
| | | baiduMap.addOverlay.call(baiduMap, overlay); |
| | | } |
| | | } |
| | | moralMap.addOverlays = function (overlays) { |
| | | if (overlays != null && typeof overlays == 'object') { |
| | | for (var i in overlays) { |
| | | moralMap.addOverlay(overlays[i]); |
| | | } |
| | | } |
| | | |
| | | } |
| | | moralMap.removeOverlay = function(overlay) { |
| | | } |
| | | moralMap.removeOverlay = function (overlay) { |
| | | // baiduMap.removeOverlay(overlay); |
| | | baiduMap.removeOverlay.apply(baiduMap, arguments); |
| | | } |
| | | moralMap.removeOverlays = function(overlays) { |
| | | if(overlays != null && typeof overlays == 'object') { |
| | | baiduMap.removeOverlay.apply(baiduMap, arguments); |
| | | } |
| | | moralMap.removeOverlays = function (overlays) { |
| | | if (overlays != null && typeof overlays == 'object') { |
| | | for (var i in overlays) { |
| | | moralMap.removeOverlay(overlays[i]); |
| | | } |
| | | } |
| | | } |
| | | moralMap.getOverlays = function() { |
| | | var overLays = baiduMap.getOverlays.apply(baiduMap, arguments) |
| | | var moralMarker = []; |
| | | for(var i in overLays) { |
| | | if(overLays[i] instanceof BMap.Overlay) { |
| | | moralMarker.push(overLays[i]); |
| | | } |
| | | } |
| | | return moralMarker; |
| | | } |
| | | moralMap.clearCloseInfoWindow = function () { |
| | | if(!!moralMap["_closeInfoWinTimer"]){ |
| | | } |
| | | moralMap.getOverlays = function () { |
| | | var overLays = baiduMap.getOverlays.apply(baiduMap, arguments) |
| | | var moralMarker = []; |
| | | for (var i in overLays) { |
| | | if (overLays[i] instanceof BMap.Overlay) { |
| | | moralMarker.push(overLays[i]); |
| | | } |
| | | } |
| | | return moralMarker; |
| | | } |
| | | moralMap.clearCloseInfoWindow = function () { |
| | | if (!!moralMap["_closeInfoWinTimer"]) { |
| | | clearTimeout(moralMap["_closeInfoWinTimer"]); |
| | | moralMap["_closeInfoWinTimer"] = null; |
| | | } |
| | | } |
| | | moralMap.openInfoWindow = function() { |
| | | moralMap.openInfoWindow = function () { |
| | | moralMap.clearCloseInfoWindow(); |
| | | baiduMap.openInfoWindow.apply(baiduMap, arguments);; //开启信息窗口 |
| | | } |
| | | moralMap.closeInfoWindow = function() { |
| | | baiduMap.openInfoWindow.apply(baiduMap, arguments); //开启信息窗口 |
| | | } |
| | | moralMap.closeInfoWindow = function () { |
| | | var timer = setTimeout(function () { |
| | | baiduMap.closeInfoWindow.apply(baiduMap, arguments); |
| | | moralMap["_closeInfoWinTimer"] = null; |
| | | },1200); |
| | | }, 1200); |
| | | moralMap["_closeInfoWinTimer"] = timer; |
| | | } |
| | | moralMap.clearOverlays = function() { |
| | | baiduMap.clearOverlays(); |
| | | } |
| | | moralMap.startZoom = ( |
| | | function() { |
| | | var _zoom = null; |
| | | return function(z) { |
| | | if(z == undefined) { |
| | | return _zoom; |
| | | } else { |
| | | _zoom = z; |
| | | } |
| | | } |
| | | } |
| | | )(); |
| | | moralMap.lazyKeyer = (function() { |
| | | var _key = null; |
| | | return function(key) { |
| | | if(key == undefined) { |
| | | _key = Math.random(); |
| | | return _key; |
| | | } else { |
| | | return _key == key; |
| | | } |
| | | }; |
| | | })(); |
| | | moralMap.getUtf8Length = function(str) { |
| | | return str.replace(/[\u0391-\uFFE5]/g, "cc").length; |
| | | } |
| | | //弹窗处理 |
| | | moralMap.showPopupbox = function(id) { |
| | | setTimeout(function () { |
| | | } |
| | | moralMap.clearOverlays = function () { |
| | | baiduMap.clearOverlays(); |
| | | } |
| | | moralMap.startZoom = ( |
| | | function () { |
| | | var _zoom = null; |
| | | return function (z) { |
| | | if (z == undefined) { |
| | | return _zoom; |
| | | } else { |
| | | _zoom = z; |
| | | } |
| | | } |
| | | } |
| | | )(); |
| | | moralMap.lazyKeyer = (function () { |
| | | var _key = null; |
| | | return function (key) { |
| | | if (key == undefined) { |
| | | _key = Math.random(); |
| | | return _key; |
| | | } else { |
| | | return _key == key; |
| | | } |
| | | }; |
| | | })(); |
| | | moralMap.getUtf8Length = function (str) { |
| | | return str.replace(/[\u0391-\uFFE5]/g, "cc").length; |
| | | } |
| | | //弹窗处理 |
| | | moralMap.showPopupbox = function (id) { |
| | | setTimeout(function () { |
| | | $(id).css('display', 'block'); |
| | | },1); |
| | | } |
| | | moralMap.closePopupbox = function(id) { |
| | | $(id).css('display', 'none'); |
| | | } |
| | | moralMap.isPopupBoxShow = function(id) { |
| | | return $(id).css('display') == 'block'; |
| | | } |
| | | moralMap.onItermClick = function(index,select) { |
| | | var row = moralMap.getPopupEqu(index); |
| | | if(row['mac']==null){ |
| | | }, 1); |
| | | } |
| | | moralMap.closePopupbox = function (id) { |
| | | $(id).css('display', 'none'); |
| | | } |
| | | moralMap.isPopupBoxShow = function (id) { |
| | | return $(id).css('display') == 'block'; |
| | | } |
| | | moralMap.onItermClick = function (index, select) { |
| | | var row = moralMap.getPopupEqu(index); |
| | | if (row['mac'] == null) { |
| | | alert("mac项未配置,请联系管理员设置"); |
| | | return; |
| | | } |
| | | var equ = { |
| | | methodName : 'chart'== select ?'showChart':'showDeviceMonitor', |
| | | name: row['name'], |
| | | mac: (row['mac']).toLowerCase(), |
| | | longitude: row['longitude'], |
| | | latitude: row['latitude'], |
| | | var equ = { |
| | | methodName: 'chart' == select ? 'showChart' : 'showDeviceMonitor', |
| | | name: row['name'], |
| | | mac: (row['mac']).toLowerCase(), |
| | | longitude: row['longitude'], |
| | | latitude: row['latitude'], |
| | | monitorPointId: row['monitorPointId'], |
| | | version:row['deviceVersion']['version'] |
| | | }; |
| | | !!select?equ['monitorPointId'] = row["monitorPointId"]:null; |
| | | var equStr = JSON.stringify(equ); |
| | | if(window["console"]!=undefined){ |
| | | version: row['deviceVersion']['version'] |
| | | }; |
| | | !!select ? equ['monitorPointId'] = row["monitorPointId"] : null; |
| | | var equStr = JSON.stringify(equ); |
| | | if (window["console"] != undefined) { |
| | | console.log(equStr); |
| | | } |
| | | if(!!window['external']&&!!window['external']['callWin']){ |
| | | if (!!window['external'] && !!window['external']['callWin']) { |
| | | window['external'].callWin(equStr); |
| | | }else{ |
| | | if(!!select&&select==='chart'&&!!window['external']&&!!window['external']['showChartInfo']){ |
| | | window['external'].showChartInfo(equStr); |
| | | }else if(!!window['external']&&!!window['external']['showMonitorInfo']){ |
| | | window['external'].showMonitorInfo(equStr); |
| | | }else{ |
| | | alert(equStr); |
| | | } else { |
| | | if (!!select && select === 'chart' && !!window['external'] && !!window['external']['showChartInfo']) { |
| | | window['external'].showChartInfo(equStr); |
| | | } else if (!!window['external'] && !!window['external']['showMonitorInfo']) { |
| | | window['external'].showMonitorInfo(equStr); |
| | | } else { |
| | | alert(equStr); |
| | | } |
| | | } |
| | | |
| | | } |
| | | moralMap.setPopupEqus = function (arr) { |
| | | moralMap["_equs"] = arr; |
| | | } |
| | | moralMap.getPopupEquMacs = function () { |
| | | var macs = []; |
| | | if (moralMap["_equs"] != null) { |
| | | for (var i in moralMap["_equs"]) { |
| | | var equ = moralMap["_equs"][i]; |
| | | macs.push(equ["mac"]); |
| | | } |
| | | } |
| | | return macs; |
| | | } |
| | | moralMap.getPopupEqu = function (index) { |
| | | if (typeof moralMap["_equs"] === 'object') { |
| | | return moralMap["_equs"][index]; |
| | | } |
| | | throw "equs is empty"; |
| | | } |
| | | //{id:必填,url:,pagesize:} |
| | | //list加载 |
| | | moralMap.initListView = function (option) { |
| | | var listView = { |
| | | load: function (url) { |
| | | if (url != undefined) { |
| | | $.extend(option, { |
| | | "url": url |
| | | }); |
| | | } |
| | | } |
| | | option["pageNo"] = 1; |
| | | _load(option); |
| | | } |
| | | }; |
| | | listView["option"] = option; |
| | | listView.refreshState = function (equstates) { |
| | | if (equstates != null) { |
| | | for (var i in equstates) { |
| | | var equstate = equstates[i]; |
| | | var mac = equstate["mac"]; |
| | | var state = equstate["state"]; |
| | | var id_select = "#listview_state_" + mac; |
| | | var stateObj = _getStateMap(state); |
| | | var stateClass = stateObj["state"]; |
| | | var stateName = stateObj["stateName"]; |
| | | if (!$(id_select).hasClass(state)) { |
| | | $(id_select).attr("class", stateClass); |
| | | $(id_select).text(stateName); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | moralMap.setPopupEqus = function(arr) { |
| | | moralMap["_equs"] = arr; |
| | | } |
| | | moralMap.getPopupEquMacs = function() { |
| | | var macs = []; |
| | | if(moralMap["_equs"] != null) { |
| | | for(var i in moralMap["_equs"]) { |
| | | var equ = moralMap["_equs"][i]; |
| | | macs.push(equ["mac"]); |
| | | } |
| | | } |
| | | return macs; |
| | | } |
| | | moralMap.getPopupEqu = function(index) { |
| | | if(typeof moralMap["_equs"] === 'object') { |
| | | return moralMap["_equs"][index]; |
| | | } |
| | | throw "equs is empty"; |
| | | } |
| | | //{id:必填,url:,pagesize:} |
| | | //list加载 |
| | | moralMap.initListView = function(option) { |
| | | var listView = { |
| | | load: function(url) { |
| | | if(url != undefined) { |
| | | $.extend(option, { |
| | | "url": url |
| | | }); |
| | | } |
| | | option["pageNo"] = 1; |
| | | _load(option); |
| | | } |
| | | }; |
| | | listView["option"] = option; |
| | | listView.refreshState = function(equstates) { |
| | | if(equstates != null) { |
| | | for(var i in equstates) { |
| | | var equstate = equstates[i]; |
| | | var mac = equstate["mac"]; |
| | | var state = equstate["state"]; |
| | | var id_select = "#listview_state_" + mac; |
| | | var stateObj = _getStateMap(state); |
| | | var stateClass = stateObj["state"]; |
| | | var stateName = stateObj["stateName"]; |
| | | if(!$(id_select).hasClass(state)) { |
| | | $(id_select).attr("class", stateClass); |
| | | $(id_select).text(stateName); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | function _getStateMap(s) { |
| | | var state; |
| | | var stateName; |
| | | switch (parseInt(s)) { |
| | | case 0: |
| | | state = 'state00'; |
| | | stateName = '正常'; |
| | | break; |
| | | case 1: |
| | | state = 'state01'; |
| | | stateName = '轻度'; |
| | | break; |
| | | case 2: |
| | | state = 'state02'; |
| | | stateName = '中度'; |
| | | break; |
| | | case 3: |
| | | state = 'state03'; |
| | | stateName = '严重'; |
| | | break; |
| | | case 4: |
| | | state = 'state04'; |
| | | stateName = '维保'; |
| | | break; |
| | | } |
| | | return { |
| | | "state": state, |
| | | "stateName": stateName |
| | | }; |
| | | } |
| | | |
| | | function _getStateMap(s) { |
| | | var state; |
| | | var stateName; |
| | | switch(parseInt(s)) { |
| | | case 0: |
| | | state = 'state00'; |
| | | stateName = '正常'; |
| | | break; |
| | | case 1: |
| | | state = 'state01'; |
| | | stateName = '轻度'; |
| | | break; |
| | | case 2: |
| | | state = 'state02'; |
| | | stateName = '中度'; |
| | | break; |
| | | case 3: |
| | | state = 'state03'; |
| | | stateName = '严重'; |
| | | break; |
| | | case 4: |
| | | state = 'state04'; |
| | | stateName = '维保'; |
| | | break; |
| | | } |
| | | return { |
| | | "state": state, |
| | | "stateName": stateName |
| | | }; |
| | | } |
| | | function _load(option) { |
| | | if (option['url'] != null && option['url'] != "") { |
| | | var pageSize = option["pageSize"] || 20; |
| | | var pageNo = option["pageNo"] || 1; |
| | | var url = option['url']; |
| | | url += "&pageNo=" + pageNo; |
| | | url += "&pageSize=" + pageSize; |
| | | console.log(url); |
| | | $.ajax({ |
| | | type: "get", |
| | | cache: false, |
| | | url: url, |
| | | async: true, |
| | | success: function (res) { |
| | | if (res != null && res.total != null) { |
| | | var rows = res.data; |
| | | if (rows == null || rows.length == 0) { |
| | | $(option['id']).html("没有查询到任何数据!"); |
| | | return; |
| | | } |
| | | //储存设备信息 |
| | | moralMap.setPopupEqus(rows); |
| | | var outHtml = "<ul class='list'>"; |
| | | for (var i = 0; i < rows.length; i++) { |
| | | var e = rows[i]; |
| | | var state = 'state01'; |
| | | var stateName = ''; |
| | | var s = e['state'] == undefined ? 0 : e['state']; |
| | | var stateObj = _getStateMap(s); |
| | | state = stateObj["state"]; |
| | | stateName = stateObj["stateName"]; |
| | | var name = e['name']; |
| | | if (moralMap.getUtf8Length(name) > 22) { |
| | | var stop1 = 0; |
| | | for (var stop1_i = 0, len = 0; stop1_i < name.length; stop1_i++) { |
| | | len += ((name.charCodeAt(stop1_i) & 0xff00) != 0) ? 2 : 1; |
| | | stop1 = stop1_i; |
| | | if (len > 8) break; |
| | | } |
| | | var stop2 = 0; |
| | | for (var stop2_i = name.length - 1, len = 0; stop2_i >= 0; stop2_i--) { |
| | | len += ((name.charCodeAt(stop2_i) & 0xff00) != 0) ? 2 : 1; |
| | | stop2 = stop2_i; |
| | | if (len > 10) break; |
| | | } |
| | | name = name.substring(0, stop1) + "..." + name.substring(stop2, name.length); |
| | | } |
| | | var li = "<li id='listview_item_" + e['mac'] + "'><span class='list-chart-span' onclick=moralMap.onItermClick(\"" + i + "\",'chart')><img src='/img/chart.png'></span>" |
| | | + "<span id='listview_state_" + e['mac'] + "'class='" + state + "'>" + stateName + "</span>" + |
| | | "<div style='cursor: pointer;' onclick=moralMap.onItermClick(\"" + i + "\")>" + name + "</div></li>"; |
| | | outHtml += li; |
| | | } |
| | | outHtml += "</ul>"; |
| | | var total = res['total']; |
| | | var totalPage = Math.ceil(total / pageSize); |
| | | if (totalPage > 1) { |
| | | outHtml += "<div id='page' class='page_div'></div>"; |
| | | } |
| | | $(option['id']).html(outHtml); |
| | | if (totalPage > 1) { |
| | | $("#page").paging({ |
| | | pageNo: pageNo, |
| | | totalPage: totalPage, |
| | | totalSize: total, |
| | | callback: function (num) { |
| | | //先清空内容 |
| | | $(option['id']).html(""); |
| | | option["pageNo"] = num; |
| | | _load(option); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | function _load(option) { |
| | | if(option['url'] != null && option['url'] != "") { |
| | | var pageSize = option["pageSize"] || 20; |
| | | var pageNo = option["pageNo"] || 1; |
| | | var url = option['url']; |
| | | url += "&pageNo=" + pageNo; |
| | | url += "&pageSize=" + pageSize; |
| | | console.log(url); |
| | | $.ajax({ |
| | | type: "get", |
| | | cache: false, |
| | | url: url, |
| | | async: true, |
| | | success: function(res) { |
| | | if(res!=null&&res.total!=null) { |
| | | var rows = res.data; |
| | | if(rows==null||rows.length == 0) { |
| | | $(option['id']).html("没有查询到任何数据!"); |
| | | return; |
| | | } |
| | | //储存设备信息 |
| | | moralMap.setPopupEqus(rows); |
| | | var outHtml = "<ul class='list'>"; |
| | | for(var i = 0; i < rows.length; i++) { |
| | | var e = rows[i]; |
| | | var state = 'state01'; |
| | | var stateName = ''; |
| | | var s = e['state'] == undefined ? 0 : e['state']; |
| | | var stateObj = _getStateMap(s); |
| | | state = stateObj["state"]; |
| | | stateName = stateObj["stateName"]; |
| | | var name = e['name']; |
| | | if(moralMap.getUtf8Length(name) > 22) { |
| | | var stop1 = 0; |
| | | for(var stop1_i = 0, len = 0; stop1_i < name.length; stop1_i++) { |
| | | len += ((name.charCodeAt(stop1_i) & 0xff00) != 0) ? 2 : 1; |
| | | stop1 = stop1_i; |
| | | if(len > 8) break; |
| | | } |
| | | var stop2 = 0; |
| | | for(var stop2_i = name.length - 1, len = 0; stop2_i >= 0; stop2_i--) { |
| | | len += ((name.charCodeAt(stop2_i) & 0xff00) != 0) ? 2 : 1; |
| | | stop2 = stop2_i; |
| | | if(len > 10) break; |
| | | } |
| | | name = name.substring(0, stop1) + "..." + name.substring(stop2, name.length); |
| | | } |
| | | var li = "<li id='listview_item_" + e['mac'] + "'><span class='list-chart-span' onclick=moralMap.onItermClick(\"" + i + "\",'chart')><img src='/img/chart.png'></span>" |
| | | +"<span id='listview_state_" + e['mac'] + "'class='" + state + "'>" + stateName + "</span>" + |
| | | "<div style='cursor: pointer;' onclick=moralMap.onItermClick(\"" + i + "\")>" + name + "</div></li>"; |
| | | outHtml += li; |
| | | } |
| | | outHtml += "</ul>"; |
| | | var total = res['total']; |
| | | var totalPage = Math.ceil(total / pageSize); |
| | | if(totalPage > 1) { |
| | | outHtml += "<div id='page' class='page_div'></div>"; |
| | | } |
| | | $(option['id']).html(outHtml); |
| | | if(totalPage > 1) { |
| | | $("#page").paging({ |
| | | pageNo: pageNo, |
| | | totalPage: totalPage, |
| | | totalSize: total, |
| | | callback: function(num) { |
| | | //先清空内容 |
| | | $(option['id']).html(""); |
| | | option["pageNo"] = num; |
| | | _load(option); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | return listView; |
| | | } |
| | | moralMap.MoralMarker = function(option) { |
| | | var _option = option; |
| | | var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); |
| | | var _iconObj = _getMapIcon(_option["state"]); |
| | | this._point = _pointObj; |
| | | //获取MapIcon私有方法 |
| | | function _getMapIcon(state) { |
| | | state = state == null ? 0 : state; |
| | | var icon = _option["icon"]; |
| | | //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"]) |
| | | }); |
| | | } |
| | | this.constructor.call(this, _pointObj, { |
| | | icon: _iconObj, |
| | | enableMassClear: true |
| | | }) |
| | | //事件注册 |
| | | var eventType = ['click']; |
| | | for(var index in eventType) { |
| | | var eventName = eventType[index]; |
| | | if(_option[eventName] != undefined && typeof _option[eventName] == "function") { |
| | | var fn = _option[eventName]; |
| | | this.addEventListener(eventName, function() { |
| | | //将arguments转换成数组 |
| | | var args = Array.prototype.slice.call(arguments); |
| | | fn.apply(this, args); |
| | | }); |
| | | } |
| | | } |
| | | return $.extend(this, { |
| | | refreshState: function(state) { |
| | | //状态发生变化的时候刷新 图标 |
| | | if(_option['state'] != state){ |
| | | return listView; |
| | | } |
| | | moralMap.MoralMarker = function (option) { |
| | | var _option = option; |
| | | var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); |
| | | var _iconObj = _getMapIcon(_option["state"]); |
| | | this._point = _pointObj; |
| | | |
| | | //获取MapIcon私有方法 |
| | | function _getMapIcon(state) { |
| | | state = state == null ? 0 : state; |
| | | var icon = _option["icon"]; |
| | | //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"]) |
| | | }); |
| | | } |
| | | |
| | | this.constructor.call(this, _pointObj, { |
| | | icon: _iconObj, |
| | | enableMassClear: true |
| | | }) |
| | | //事件注册 |
| | | var eventType = ['click']; |
| | | for (var index in eventType) { |
| | | var eventName = eventType[index]; |
| | | if (_option[eventName] != undefined && typeof _option[eventName] == "function") { |
| | | var fn = _option[eventName]; |
| | | this.addEventListener(eventName, function () { |
| | | //将arguments转换成数组 |
| | | var args = Array.prototype.slice.call(arguments); |
| | | fn.apply(this, args); |
| | | }); |
| | | } |
| | | } |
| | | return $.extend(this, { |
| | | refreshState: function (state) { |
| | | //状态发生变化的时候刷新 图标 |
| | | if (_option['state'] != state) { |
| | | _option['state'] = state; |
| | | var iconObj = _getMapIcon(state); |
| | | this.setIcon(iconObj); |
| | | } |
| | | }, |
| | | getOption: function() { |
| | | return _option; |
| | | }, |
| | | setOption: function(option) { |
| | | _option = option; |
| | | } |
| | | }) |
| | | } |
| | | //new BMap.Marker()这种写法IE7会报错,很奇葩 |
| | | moralMap.MoralMarker.prototype = new BMap.Marker(); |
| | | //监控点对象 包装Mark对象 |
| | | 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; |
| | | var moralMarker = new moralMap.MoralMarker(option); |
| | | // var mark =new BMap.Marker(pointObj,{icon:iconObj}); |
| | | //==================infoWindow-start============================ |
| | | var infoWindow = (function() { |
| | | //生成信息框 |
| | | var winOpts = { |
| | | width: 110, // 信息窗口宽度 |
| | | height: 80, // 信息窗口高度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-8,-5) //设置信息窗偏移 |
| | | } |
| | | } |
| | | }, |
| | | getOption: function () { |
| | | return _option; |
| | | }, |
| | | setOption: function (option) { |
| | | _option = option; |
| | | } |
| | | }) |
| | | } |
| | | //new BMap.Marker()这种写法IE7会报错,很奇葩 |
| | | moralMap.MoralMarker.prototype = new BMap.Marker(); |
| | | //监控点对象 包装Mark对象 |
| | | 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; |
| | | var moralMarker = new moralMap.MoralMarker(option); |
| | | // var mark =new BMap.Marker(pointObj,{icon:iconObj}); |
| | | //==================infoWindow-start============================ |
| | | var infoWindow = (function () { |
| | | //生成信息框 |
| | | var winOpts = { |
| | | width: 110, // 信息窗口宽度 |
| | | height: 80, // 信息窗口高度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-8, -5) //设置信息窗偏移 |
| | | } |
| | | |
| | | function getTitleOutHtml() { |
| | | //title太长用引号... |
| | | var title = (option["name"] == null) ? "" : option["name"]; |
| | | if(title.length > 13) { |
| | | title = title.slice(0, 13) + "..."; |
| | | } |
| | | var titleOutHtml = ""; |
| | | titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" |
| | | titleOutHtml += "title='" + option["name"] + "'>"; |
| | | titleOutHtml += title + "</p>"; |
| | | return titleOutHtml; |
| | | } |
| | | function getTitleOutHtml() { |
| | | //title太长用引号... |
| | | var title = (option["name"] == null) ? "" : option["name"]; |
| | | if (title.length > 13) { |
| | | title = title.slice(0, 13) + "..."; |
| | | } |
| | | var titleOutHtml = ""; |
| | | titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" |
| | | titleOutHtml += "title='" + option["name"] + "'>"; |
| | | titleOutHtml += title + "</p>"; |
| | | return titleOutHtml; |
| | | } |
| | | |
| | | function getAdressOutHtml() { |
| | | var address = (option["address"] == null) ? "" : option["address"]; |
| | | if(address.length > 18) { |
| | | address = address.slice(0, 18) + "..."; |
| | | } |
| | | var adressOutHtml = ""; |
| | | adressOutHtml += "<div onmouseover='moralMap.clearCloseInfoWindow()'"; |
| | | adressOutHtml += "onmouseout='moralMap.closeInfoWindow()'"; |
| | | adressOutHtml +=" style='font:12px arial,sans-serif;margin-top:12px'><table cellspacing='0' style='overflow:hidden;table-layout:fixed;width:100%;font:12px arial,sans-serif'>"; |
| | | adressOutHtml += "<tbody><tr><td style='vertical-align:top;width:38px;white-space:nowrap;word-break:keep-all'>地址: </td><td style='line-height:16px'>"; |
| | | adressOutHtml += address + " "; |
| | | adressOutHtml += "</td></tr>"; |
| | | function getAdressOutHtml() { |
| | | var address = (option["address"] == null) ? "" : option["address"]; |
| | | if (address.length > 18) { |
| | | address = address.slice(0, 18) + "..."; |
| | | } |
| | | var adressOutHtml = ""; |
| | | adressOutHtml += "<div onmouseover='moralMap.clearCloseInfoWindow()'"; |
| | | adressOutHtml += "onmouseout='moralMap.closeInfoWindow()'"; |
| | | adressOutHtml += " style='font:12px arial,sans-serif;margin-top:12px'><table cellspacing='0' style='overflow:hidden;table-layout:fixed;width:100%;font:12px arial,sans-serif'>"; |
| | | adressOutHtml += "<tbody><tr><td style='vertical-align:top;width:38px;white-space:nowrap;word-break:keep-all'>地址: </td><td style='line-height:16px'>"; |
| | | adressOutHtml += address + " "; |
| | | adressOutHtml += "</td></tr>"; |
| | | //adressOutHtml += "<tr><td style='width:98%;padding-top:10px;'colspan='2'><a href='javascript:void(0);' style='display:block;position: relative;float: right;' onclick='moralMap.showPointMonitor("+option.id+")'>实时数据>></a></td></tr>"; |
| | | adressOutHtml += "</tbody></table></div>"; |
| | | return adressOutHtml; |
| | | } |
| | | return new BMap.InfoWindow(getAdressOutHtml(), winOpts); |
| | | })(); |
| | | if(moralMarker["infoWindow"] == undefined) { |
| | | moralMarker["infoWindow"] = infoWindow; |
| | | } |
| | | //弹窗打开和关闭 |
| | | moralMarker.addEventListener("mouseover", function() { |
| | | moralMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | }); |
| | | moralMarker.addEventListener("mouseout", function() { |
| | | return adressOutHtml; |
| | | } |
| | | |
| | | return new BMap.InfoWindow(getAdressOutHtml(), winOpts); |
| | | })(); |
| | | if (moralMarker["infoWindow"] == undefined) { |
| | | moralMarker["infoWindow"] = infoWindow; |
| | | } |
| | | //弹窗打开和关闭 |
| | | moralMarker.addEventListener("mouseover", function () { |
| | | moralMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | }); |
| | | moralMarker.addEventListener("mouseout", function () { |
| | | moralMap.closeInfoWindow(); |
| | | }); |
| | | //==================infoWindow-end============================ |
| | | //储存监控点 |
| | | moralMap.putMpoint(option['id'], moralMarker); |
| | | return moralMarker; |
| | | } |
| | | //储存MonitorPoint对象 |
| | | moralMap.putMpoint = function(key, obj) { |
| | | if(moralMap['_mpoints'] == undefined) { |
| | | moralMap['_mpoints'] = {}; |
| | | } |
| | | moralMap['_mpoints'][key] = obj; |
| | | } |
| | | //key为监控点id |
| | | moralMap.getMpoint = function(key) { |
| | | if(typeof moralMap['_mpoints'] === 'object') { |
| | | return moralMap['_mpoints'][key]; |
| | | } |
| | | } |
| | | moralMap.getMpoints = function(key) { |
| | | return moralMap['_mpoints']; |
| | | } |
| | | moralMap.clearMpoints = function() { |
| | | if(moralMap['_mpoints'] != undefined) { |
| | | delete moralMap['_mpoints']; |
| | | } |
| | | }); |
| | | //==================infoWindow-end============================ |
| | | //储存监控点 |
| | | moralMap.putMpoint(option['id'], moralMarker); |
| | | return moralMarker; |
| | | } |
| | | //储存MonitorPoint对象 |
| | | moralMap.putMpoint = function (key, obj) { |
| | | if (moralMap['_mpoints'] == undefined) { |
| | | moralMap['_mpoints'] = {}; |
| | | } |
| | | moralMap['_mpoints'][key] = obj; |
| | | } |
| | | //key为监控点id |
| | | moralMap.getMpoint = function (key) { |
| | | if (typeof moralMap['_mpoints'] === 'object') { |
| | | return moralMap['_mpoints'][key]; |
| | | } |
| | | } |
| | | moralMap.getMpoints = function (key) { |
| | | return moralMap['_mpoints']; |
| | | } |
| | | moralMap.clearMpoints = function () { |
| | | if (moralMap['_mpoints'] != undefined) { |
| | | delete moralMap['_mpoints']; |
| | | } |
| | | |
| | | } |
| | | //设备以mac为key储存 |
| | | //监控点对象 包装MoralMark对象 |
| | | 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; |
| | | option["offline_width"] = 300; |
| | | option["offline_height"] = 80; |
| | | option["online_width"] = 355; |
| | | option["online_height"] = 385; |
| | | var moralMarker = new moralMap.MoralMarker(option); |
| | | // var mark =new BMap.Marker(pointObj,{icon:iconObj}); |
| | | //==================infoWindow-start============================ |
| | | } |
| | | |
| | | var infoWindow = (function() { |
| | | //生成信息框 |
| | | var winOpts = { |
| | | width: 110, // 信息窗口宽度 |
| | | height: 80, // 信息窗口高度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-8,-5) //设置信息窗偏移 |
| | | } |
| | | //设备以mac为key储存 |
| | | //监控点对象 包装MoralMark对象 |
| | | moralMap.Equipment = function (option) { |
| | | var sensorsMap; |
| | | var sensorsUnitMap; |
| | | $.ajax({ |
| | | url: "getSensorsMap?mac=" + option['mac'], |
| | | type: "get", |
| | | dataType: "json", |
| | | success: function (data) { |
| | | sensorsMap = data.data; |
| | | } |
| | | }); |
| | | |
| | | function getTitleOutHtml() { |
| | | //title太长用引号... |
| | | var title = (option["name"] == null) ? "" : option["name"]; |
| | | if(title.length > 13) { |
| | | title = title.slice(0, 13) + "..."; |
| | | } |
| | | var titleOutHtml = ""; |
| | | titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" |
| | | titleOutHtml += "title='" + option["name"] + "'>"; |
| | | titleOutHtml += title + "</p>"; |
| | | return titleOutHtml; |
| | | } |
| | | $.ajax({ |
| | | url: "getSensorsUnitMap?mac=" + option['mac'], |
| | | type: "get", |
| | | dataType: "json", |
| | | success: function (data) { |
| | | sensorsUnitMap = data.data; |
| | | } |
| | | }); |
| | | |
| | | function getAdressOutHtml() { |
| | | var address = (option["address"] == null) ? "" : option["address"]; |
| | | if(address.length > 18) { |
| | | address = address.slice(0, 18) + "..."; |
| | | } |
| | | var adressOutHtml = ""; |
| | | adressOutHtml += "<div onmouseover='moralMap.clearCloseInfoWindow()'"; |
| | | adressOutHtml += "onmouseout='moralMap.closeInfoWindow()'"; |
| | | adressOutHtml +=" style='font:12px arial,sans-serif;margin-top:12px'><table cellspacing='0' style='overflow:hidden;table-layout:fixed;width:100%;font:12px arial,sans-serif'>"; |
| | | adressOutHtml += "<tbody><tr><td style='vertical-align:top;width:38px;white-space:nowrap;word-break:keep-all'>地址: </td><td style='line-height:16px'>"; |
| | | adressOutHtml += address + " "; |
| | | adressOutHtml += "</td></tr>"; |
| | | adressOutHtml += "</tbody></table></div>"; |
| | | //$("#searchParam").val(address); |
| | | return adressOutHtml; |
| | | } |
| | | return new BMap.InfoWindow(getAdressOutHtml(), winOpts); |
| | | })(); |
| | | 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; |
| | | option["offline_width"] = 300; |
| | | option["offline_height"] = 80; |
| | | option["online_width"] = 355; |
| | | option["online_height"] = 385; |
| | | var moralMarker = new moralMap.MoralMarker(option); |
| | | // var mark =new BMap.Marker(pointObj,{icon:iconObj}); |
| | | //==================infoWindow-start============================ |
| | | var infoWindow = (function () { |
| | | //生成信息框 |
| | | var winOpts = { |
| | | width: 300, // 信息窗口宽度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-8, -5) //设置信息窗偏移 |
| | | } |
| | | |
| | | /*var infoWindow = (function() { |
| | | //生成信息框 |
| | | var winOpts = { |
| | | width: option["online_width"], // 信息窗口宽度 |
| | | height:option["online_height"], // 信息窗口高度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-2, -10) //设置信息窗偏移 |
| | | } |
| | | function getTitleOutHtml() { |
| | | //title太长用引号... |
| | | var title = (option["name"] == null) ? "" : option["name"]; |
| | | if (title.length > 13) { |
| | | title = title.slice(0, 13) + "..."; |
| | | } |
| | | var address = (option["address"] == null) ? "" : option["address"]; |
| | | if (address.length > 18) { |
| | | address = address.slice(0, 18) + "..."; |
| | | } |
| | | var titleOutHtml = ""; |
| | | titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" |
| | | titleOutHtml += "title='" + option["name"] + "'>"; |
| | | titleOutHtml += title + "</p>"; |
| | | titleOutHtml += "<p style='height: 18px;line-height: 18px;font-size: 12px'>地址: " + address + "</p>" |
| | | return titleOutHtml; |
| | | } |
| | | |
| | | function getTitleOutHtml() { |
| | | //title太长用引号... |
| | | var title = (option["name"] == null) ? "" : option["name"]; |
| | | if(title.length > 13) { |
| | | title = title.slice(0, 13) + "..."; |
| | | } |
| | | var titleOutHtml = ""; |
| | | titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" |
| | | titleOutHtml += "title='" + option["name"] + "'>"; |
| | | titleOutHtml += title + "</p>"; |
| | | return titleOutHtml; |
| | | } |
| | | return new BMap.InfoWindow("", winOpts); |
| | | })(); |
| | | var dataHandle = { |
| | | _getDataOutHtml: function(data) { |
| | | if(data==null||data["state"]==4){ |
| | | return "<br/><h3>设备正在维护升级,暂时没有数据!</h3>"; |
| | | } |
| | | var mac = data['mac']; |
| | | var itme_mac_key = "item-" + mac + "-" + key; |
| | | var dataOutHtml = "<div id='"+itme_mac_key+"' class='equ-data-box'><ul class='equ-data-list'>"; |
| | | for(var key in data) { |
| | | if($.inArray(key,showSensorKeys)!=-1) { |
| | | var dataValue = data[key]; |
| | | var name = sensorNames[key][0]; |
| | | var unit = sensorNames[key][1]; |
| | | var itme_state = dataHandle._getSensorState(data, key); |
| | | return new BMap.InfoWindow("", winOpts); |
| | | })(); |
| | | |
| | | /*var infoWindow = (function() { |
| | | //生成信息框 |
| | | var winOpts = { |
| | | width: option["online_width"], // 信息窗口宽度 |
| | | height:option["online_height"], // 信息窗口高度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-2, -10) //设置信息窗偏移 |
| | | } |
| | | |
| | | function getTitleOutHtml() { |
| | | //title太长用引号... |
| | | var title = (option["name"] == null) ? "" : option["name"]; |
| | | if(title.length > 13) { |
| | | title = title.slice(0, 13) + "..."; |
| | | } |
| | | var titleOutHtml = ""; |
| | | titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" |
| | | titleOutHtml += "title='" + option["name"] + "'>"; |
| | | titleOutHtml += title + "</p>"; |
| | | return titleOutHtml; |
| | | } |
| | | return new BMap.InfoWindow("", winOpts); |
| | | })(); |
| | | var dataHandle = { |
| | | _getDataOutHtml: function(data) { |
| | | if(data==null||data["state"]==4){ |
| | | return "<br/><h3>设备正在维护升级,暂时没有数据!</h3>"; |
| | | } |
| | | var mac = data['mac']; |
| | | var itme_mac_key = "item-" + mac + "-" + key; |
| | | var dataOutHtml = "<div id='"+itme_mac_key+"' class='equ-data-box'><ul class='equ-data-list'>"; |
| | | for(var key in data) { |
| | | if($.inArray(key,showSensorKeys)!=-1) { |
| | | var dataValue = data[key]; |
| | | var name = sensorNames[key][0]; |
| | | var unit = sensorNames[key][1]; |
| | | var itme_state = dataHandle._getSensorState(data, key); |
| | | // var itme_name_mac_key = "item-name-" + mac + "-" + key; |
| | | var itme_data_mac_key = "item-data-" + mac + "-" + key; |
| | | var item = "<li>"; |
| | | var itme_data_mac_key = "item-data-" + mac + "-" + key; |
| | | var item = "<li>"; |
| | | item += "<p>"+name+"</p>"; |
| | | item += "<span id='"+itme_data_mac_key+"' class='"+itme_state+"'>"+dataValue+"</span>"; |
| | | item += "<em>"+unit+"</em>"; |
| | | item += "</li>"; |
| | | dataOutHtml += item; |
| | | } |
| | | item += "</li>"; |
| | | dataOutHtml += item; |
| | | } |
| | | |
| | | } |
| | | dataOutHtml += "</ul></div>"; |
| | | return dataOutHtml; |
| | | }, |
| | | _getSensorState: function(data, key) { |
| | | var grade="grade"; |
| | | } |
| | | dataOutHtml += "</ul></div>"; |
| | | return dataOutHtml; |
| | | }, |
| | | _getSensorState: function(data, key) { |
| | | var grade="grade"; |
| | | var levels; |
| | | if(data["level3"]!=null){ |
| | | levels = data["level3"] instanceof Array ? data["level3"]:JSON.parse(data["level3"]); |
| | | if($.inArray(key,levels)!=-1){ |
| | | return grade+"03"; |
| | | } |
| | | } |
| | | if(data["level2"] !=null){ |
| | | levels = data["level2"] instanceof Array ? data["level2"]:JSON.parse(data["level2"]); |
| | | if($.inArray(key,levels)!=-1){ |
| | | return grade+"02"; |
| | | } |
| | | } |
| | | if(data["level1"] !=null){ |
| | | if(data["level3"]!=null){ |
| | | levels = data["level3"] instanceof Array ? data["level3"]:JSON.parse(data["level3"]); |
| | | if($.inArray(key,levels)!=-1){ |
| | | return grade+"03"; |
| | | } |
| | | } |
| | | if(data["level2"] !=null){ |
| | | levels = data["level2"] instanceof Array ? data["level2"]:JSON.parse(data["level2"]); |
| | | if($.inArray(key,levels)!=-1){ |
| | | return grade+"02"; |
| | | } |
| | | } |
| | | if(data["level1"] !=null){ |
| | | levels = data["level1"] instanceof Array ? data["level1"]:JSON.parse(data["level1"]); |
| | | if($.inArray(key,levels)!=-1){ |
| | | return grade+"01"; |
| | | } |
| | | } |
| | | return grade+"00"; |
| | | } |
| | | };*/ |
| | | if($.inArray(key,levels)!=-1){ |
| | | return grade+"01"; |
| | | } |
| | | } |
| | | return grade+"00"; |
| | | } |
| | | };*/ |
| | | |
| | | if(moralMarker["infoWindow"] == undefined) { |
| | | moralMarker["infoWindow"] = infoWindow; |
| | | } |
| | | var mouseOverHandle = option['mouseover']; |
| | | //弹窗打开和关闭 |
| | | /*moralMarker.addEventListener("mouseover", function() { |
| | | if(mouseOverHandle!=null&&mouseOverHandle instanceof Function){ |
| | | if (moralMarker["infoWindow"] == undefined) { |
| | | moralMarker["infoWindow"] = infoWindow; |
| | | } |
| | | var mouseOverHandle = option['mouseover']; |
| | | //弹窗打开和关闭 |
| | | /*moralMarker.addEventListener("mouseover", function() { |
| | | if(mouseOverHandle!=null&&mouseOverHandle instanceof Function){ |
| | | //将arguments转换成数组 |
| | | var args = Array.prototype.slice.call(arguments); |
| | | mouseOverHandle.apply(this, args); |
| | | } |
| | | moralMap.closeSearchBox(); |
| | | baiduMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | if(infoWindow.getContent() == "") { |
| | | var data = this.getData(); |
| | | var option = this.getOption(); |
| | | if(data==null||data["state"]==4){ |
| | | infoWindow.setHeight(option["offline_height"]); |
| | | infoWindow.setWidth(option["offline_width"]); |
| | | }else{ |
| | | infoWindow.setHeight(option["online_height"]); |
| | | infoWindow.setWidth(option["online_width"]); |
| | | } |
| | | infoWindow.setContent(dataHandle._getDataOutHtml(data)); |
| | | infoWindow.redraw(); |
| | | } |
| | | }); |
| | | moralMarker.addEventListener("mouseout", function() { |
| | | baiduMap.closeInfoWindow(); |
| | | infoWindow.setContent(""); |
| | | moralMap.openSearchBox(); |
| | | });*/ |
| | | |
| | | moralMarker.addEventListener("mouseover", function() { |
| | | moralMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | }); |
| | | moralMarker.addEventListener("mouseout", function() { |
| | | moralMap.closeInfoWindow(); |
| | | }); |
| | | } |
| | | moralMap.closeSearchBox(); |
| | | baiduMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | if(infoWindow.getContent() == "") { |
| | | var data = this.getData(); |
| | | var option = this.getOption(); |
| | | if(data==null||data["state"]==4){ |
| | | infoWindow.setHeight(option["offline_height"]); |
| | | infoWindow.setWidth(option["offline_width"]); |
| | | }else{ |
| | | infoWindow.setHeight(option["online_height"]); |
| | | infoWindow.setWidth(option["online_width"]); |
| | | } |
| | | infoWindow.setContent(dataHandle._getDataOutHtml(data)); |
| | | infoWindow.redraw(); |
| | | } |
| | | }); |
| | | moralMarker.addEventListener("mouseout", function() { |
| | | baiduMap.closeInfoWindow(); |
| | | infoWindow.setContent(""); |
| | | moralMap.openSearchBox(); |
| | | });*/ |
| | | 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); |
| | | } |
| | | |
| | | //==================infoWindow-end============================ |
| | | //储存监控点 |
| | | moralMap.putEquipment(option['mac'], moralMarker); |
| | | var _super_refreshState = moralMarker.refreshState; |
| | | //$("#searchParam").val(option['mac']); |
| | | return $.extend(moralMarker, { |
| | | refreshState: function(data) { |
| | | if(data != null && data!="") { |
| | | var state = this.getOption()["state"]; |
| | | this.setData(data); //更新数据 |
| | | _super_refreshState.call(this, data["state"]); |
| | | //如果当前窗体时打开的,刷新窗体里的数据 |
| | | /*if(infoWindow.isOpen()) { |
| | | if(data["state"]==4){ |
| | | if(state!=4){ |
| | | infoWindow.setHeight(option["offline_height"]); |
| | | infoWindow.setWidth(option["offline_width"]); |
| | | infoWindow.setContent(dataHandle._getDataOutHtml(data)); |
| | | infoWindow.redraw(); |
| | | } |
| | | return; |
| | | } |
| | | var mac = data["mac"]; |
| | | var itme_mac_key = "#item-" + mac + "-" + key; |
| | | if($(itme_mac_key).length==0){ |
| | | infoWindow.setHeight(option["online_height"]); |
| | | infoWindow.setWidth(option["online_width"]); |
| | | infoWindow.setContent(dataHandle._getDataOutHtml(data)); |
| | | infoWindow.redraw(); |
| | | } |
| | | for(var key in data) { |
| | | if($.inArray(key,showSensorKeys)!=-1) { |
| | | var dataValue = data[key]; |
| | | var itme_state = dataHandle._getSensorState(data, key); |
| | | var itme_data_mac_key = "#item-data-" + mac + "-" + key; |
| | | if(!$(itme_data_mac_key).hasClass(itme_state)) { |
| | | $(itme_data_mac_key).attr("class", itme_state); |
| | | } |
| | | $(itme_data_mac_key).text(dataValue); |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | }, |
| | | setData:function(data){ |
| | | var option = this.getOption(); |
| | | option["data"] = data; |
| | | this.setOption(option); |
| | | }, |
| | | getData:function(){ |
| | | return this.getOption()["data"]; |
| | | } |
| | | }); |
| | | } |
| | | //储存MonitorPoint对象 |
| | | moralMap.putEquipment = function(key, obj) { |
| | | if(key!=null&&key!=""){ |
| | | moralMap.showSensors = function (jsonData) { |
| | | var address = (option["address"] == null) ? "" : option["address"]; |
| | | if (address.length > 18) { |
| | | address = address.slice(0, 18) + "..."; |
| | | } |
| | | 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 sensorsMap) { |
| | | if (prop == key) { |
| | | var sensorsDescription = sensorsMap[key]; |
| | | } |
| | | } |
| | | for (var key in sensorsUnitMap) { |
| | | if (prop == key) { |
| | | var sensorsUnit = sensorsUnitMap[key]; |
| | | } |
| | | } |
| | | adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + ":" + jsonData[prop] + sensorsUnit + "</p>"); |
| | | } |
| | | } |
| | | adressOutHtml += "</div>"; |
| | | infoWindow.setContent(adressOutHtml); |
| | | infoWindow.redraw(); |
| | | } |
| | | /* if (!$.isEmptyObject(sensorInfo)) { |
| | | moralMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | }*/ |
| | | moralMap.openInfoWindow(infoWindow, this._point); //开启信息窗口 |
| | | }); |
| | | |
| | | 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); |
| | | } |
| | | moralMap.closeInfoWindow(); |
| | | }); |
| | | |
| | | //==================infoWindow-end============================ |
| | | //储存监控点 |
| | | moralMap.putEquipment(option['mac'], moralMarker); |
| | | var _super_refreshState = moralMarker.refreshState; |
| | | //$("#searchParam").val(option['mac']); |
| | | return $.extend(moralMarker, { |
| | | refreshState: function (data) { |
| | | if (data != null && data != "") { |
| | | var state = this.getOption()["state"]; |
| | | this.setData(data); //更新数据 |
| | | _super_refreshState.call(this, data["state"]); |
| | | //如果当前窗体时打开的,刷新窗体里的数据 |
| | | /*if(infoWindow.isOpen()) { |
| | | if(data["state"]==4){ |
| | | if(state!=4){ |
| | | infoWindow.setHeight(option["offline_height"]); |
| | | infoWindow.setWidth(option["offline_width"]); |
| | | infoWindow.setContent(dataHandle._getDataOutHtml(data)); |
| | | infoWindow.redraw(); |
| | | } |
| | | return; |
| | | } |
| | | var mac = data["mac"]; |
| | | var itme_mac_key = "#item-" + mac + "-" + key; |
| | | if($(itme_mac_key).length==0){ |
| | | infoWindow.setHeight(option["online_height"]); |
| | | infoWindow.setWidth(option["online_width"]); |
| | | infoWindow.setContent(dataHandle._getDataOutHtml(data)); |
| | | infoWindow.redraw(); |
| | | } |
| | | for(var key in data) { |
| | | if($.inArray(key,showSensorKeys)!=-1) { |
| | | var dataValue = data[key]; |
| | | var itme_state = dataHandle._getSensorState(data, key); |
| | | var itme_data_mac_key = "#item-data-" + mac + "-" + key; |
| | | if(!$(itme_data_mac_key).hasClass(itme_state)) { |
| | | $(itme_data_mac_key).attr("class", itme_state); |
| | | } |
| | | $(itme_data_mac_key).text(dataValue); |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | }, |
| | | setData: function (data) { |
| | | var option = this.getOption(); |
| | | option["data"] = data; |
| | | this.setOption(option); |
| | | }, |
| | | getData: function () { |
| | | return this.getOption()["data"]; |
| | | } |
| | | }); |
| | | } |
| | | //储存MonitorPoint对象 |
| | | moralMap.putEquipment = function (key, obj) { |
| | | if (key != null && key != "") { |
| | | key = String.prototype.toLowerCase.call(key); |
| | | if(moralMap['_equipments'] == undefined) { |
| | | if (moralMap['_equipments'] == undefined) { |
| | | moralMap['_equipments'] = {}; |
| | | } |
| | | moralMap['_equipments'][key] = obj; |
| | | } |
| | | } |
| | | moralMap.getEquipment = function(key) { |
| | | if(key == null){ |
| | | return null; |
| | | } |
| | | key = String.prototype.toLowerCase.call(key); |
| | | if(typeof moralMap['_equipments'] === 'object') { |
| | | return moralMap['_equipments'][key]; |
| | | } |
| | | } |
| | | moralMap.getEquipments = function(key) { |
| | | return moralMap['_equipments']; |
| | | } |
| | | moralMap.clearEquipments = function() { |
| | | if(moralMap['_equipments'] != undefined) { |
| | | delete moralMap['_equipments']; |
| | | } |
| | | } |
| | | moralMap.getZoomConfine = function() { |
| | | return 18; |
| | | } |
| | | moralMap.getZoom = function() { |
| | | return baiduMap.getZoom(); |
| | | } |
| | | moralMap.getHorizonMarkers = function(isShow) { |
| | | var bounds = moralMap.getBounds(); |
| | | var oldMarkerList; |
| | | var isShow = (isShow) ? baiduMap : null; |
| | | if(moralMap.layer() == "equipments") { |
| | | oldMarkerList = moralMap.getEquipments(); |
| | | } else { |
| | | oldMarkerList = moralMap.getMpoints(); |
| | | } |
| | | var markers = []; |
| | | if(oldMarkerList != null && typeof oldMarkerList == "object") { |
| | | for(var i in oldMarkerList) { |
| | | var oldmarker = oldMarkerList[i]; |
| | | if(oldmarker != null && oldmarker instanceof BMap.Overlay && oldmarker.getMap() == isShow) { |
| | | var option = oldmarker.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(oldmarker); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return markers; |
| | | } |
| | | } |
| | | } |
| | | moralMap.getEquipment = function (key) { |
| | | if (key == null) { |
| | | return null; |
| | | } |
| | | key = String.prototype.toLowerCase.call(key); |
| | | if (typeof moralMap['_equipments'] === 'object') { |
| | | return moralMap['_equipments'][key]; |
| | | } |
| | | } |
| | | moralMap.getEquipments = function (key) { |
| | | return moralMap['_equipments']; |
| | | } |
| | | moralMap.clearEquipments = function () { |
| | | if (moralMap['_equipments'] != undefined) { |
| | | delete moralMap['_equipments']; |
| | | } |
| | | } |
| | | moralMap.getZoomConfine = function () { |
| | | return 18; |
| | | } |
| | | moralMap.getZoom = function () { |
| | | return baiduMap.getZoom(); |
| | | } |
| | | moralMap.getHorizonMarkers = function (isShow) { |
| | | var bounds = moralMap.getBounds(); |
| | | var oldMarkerList; |
| | | var isShow = (isShow) ? baiduMap : null; |
| | | if (moralMap.layer() == "equipments") { |
| | | oldMarkerList = moralMap.getEquipments(); |
| | | } else { |
| | | oldMarkerList = moralMap.getMpoints(); |
| | | } |
| | | var markers = []; |
| | | if (oldMarkerList != null && typeof oldMarkerList == "object") { |
| | | for (var i in oldMarkerList) { |
| | | var oldmarker = oldMarkerList[i]; |
| | | if (oldmarker != null && oldmarker instanceof BMap.Overlay && oldmarker.getMap() == isShow) { |
| | | var option = oldmarker.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(oldmarker); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return markers; |
| | | } |
| | | moralMap.showPointMonitor = function (id) { |
| | | var mpointMarker = moralMap.getMpoint(id); |
| | | var mpoint = mpointMarker.getOption(); |
| | | if(!!mpoint){ |
| | | delete mpoint['organization']; |
| | | delete mpoint['icon']; |
| | | delete mpoint['click']; |
| | | if(window["console"]!=undefined){ |
| | | if (!!mpoint) { |
| | | delete mpoint['organization']; |
| | | delete mpoint['icon']; |
| | | delete mpoint['click']; |
| | | if (window["console"] != undefined) { |
| | | console.log(mpoint); |
| | | } |
| | | $.get("getvers?mptid="+id,function (res) { |
| | | if(!!res&&res.code==1){ |
| | | $.get("getvers?mptid=" + id, function (res) { |
| | | if (!!res && res.code == 1) { |
| | | mpoint['versions'] = res.data; |
| | | mpoint['methodName'] = 'showPointMonitor'; |
| | | var mpointStr = JSON.stringify(mpoint); |
| | | if(!!window['external']&&window['external']['callWin']){ |
| | | if (!!window['external'] && window['external']['callWin']) { |
| | | window['external'].callWin(mpointStr); |
| | | }else{ |
| | | } else { |
| | | alert(JSON.stringify(mpointStr)); |
| | | } |
| | | } |
| | | }) |
| | | }else{ |
| | | if(window["console"]!=undefined){ |
| | | } else { |
| | | if (window["console"] != undefined) { |
| | | console.log("option of mpointMarker is null"); |
| | | console.log(mpointMarker); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | moralMap.callJS = function(condition) { |
| | | 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); |
| | | |
| | | } |
| | | moralMap.callJS = function (condition) { |
| | | 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 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | window.moralMap = moralMap; |
| | | window.moralMap = moralMap; |
| | | })(jQuery, BMap, window); |