From 90a6386cda8e3356c23f283656bf94e21e94b46a Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Thu, 08 Aug 2019 17:02:41 +0800 Subject: [PATCH] 修改路线粗细颜色及显示因子单位 --- src/main/webapp/js/moralmap.js | 495 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 364 insertions(+), 131 deletions(-) diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index e26429f..313ae6e 100644 --- a/src/main/webapp/js/moralmap.js +++ b/src/main/webapp/js/moralmap.js @@ -26,40 +26,55 @@ /* * ������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.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() { - baiduMap = new BMap.Map("mapCanvas", { - minZoom: 12, - maxZoom: 20 - }); // ������Map������,���������������������������/��������� + var defaultParam = { + minZoom: 12, + maxZoom: 20 + }; + 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); - var showZoom = 12; - if(arguments.length == 2) { - map.centerAndZoom(new BMap.Point(arguments[0], arguments[1]), showZoom); - } else if(arguments.length == 1) { - map.centerAndZoom(arguments[0], showZoom); - } + var showZoom = !!arguments[2] + && 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]; + map.setCurrentCity(cityName); + // ���������������������������������������,��������������������� + // ��������������������������� + 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({ @@ -107,7 +122,7 @@ var startZoom = moralMap.startZoom(); //������key������������������ // var key = moralMap.lazyKeyer(); - var confine = moralMap.getZooMConfine(); + var confine = moralMap.getZoomConfine(); if(endZoom > startZoom) { //������������������ if(endZoom >= confine && startZoom <= confine) { @@ -139,52 +154,66 @@ } } })(); + // ��������������� + moralMap.Bounds = function (baiduBounds) { + if(!!baiduBounds){ + this.northeastLng = baiduBounds.xl.lng;//��������������������������� + this.northeastLat = baiduBounds.xl.lat;//��������������������������� + this.southwestLng = baiduBounds.Ol.lng;//��������������������������������� + this.southwestLat = baiduBounds.Ol.lat;//��������������������������������� + }else{ + this.northeastLng = null;//��������������������������� + this.northeastLat = null;//��������������������������� + this.southwestLng = null;//��������������������������������� + this.southwestLat = null;//��������������������������������� + } + } moralMap.getBounds = function() { - return baiduMap.getBounds(); //������bounds; + return new moralMap.Bounds(baiduMap.getBounds()); //������bounds; } moralMap.getMaxBounds = function() { var key = "_" + moralMap.layer() + "_bounds"; return this[key]; } - moralMap.setMaxBounds = function(bounds) { + moralMap.setMaxBounds = function(bs) { var key = "_" + moralMap.layer() + "_bounds"; - var _bounds = this[key]; //������������ - if(_bounds == undefined) { - _bounds = {}; - } - if(bounds == undefined) { - bounds = baiduMap.getBounds(); - } + var _bounds = !!this[key]?this[key]:new moralMap.Bounds(); //������������ //������������������ - _bounds["Fe"] = _bounds['Fe'] || bounds['Fe']; //��������������������������� - _bounds["Ge"] = _bounds['Ge'] || bounds['Ge']; //��������������������������� - _bounds["Ke"] = _bounds['Ke'] || bounds['Ke']; //��������������������������������� - _bounds["Le"] = _bounds['Le'] || bounds['Le']; //��������������������������������� - _bounds["Fe"] = bounds['Fe'] > _bounds["Fe"] ? bounds['Fe'] : _bounds["Fe"]; //��������������������������� - _bounds["Ge"] = bounds['Ge'] > _bounds["Ge"] ? bounds['Ge'] : _bounds["Ge"]; //��������������������������� - _bounds["Ke"] = bounds['Ke'] < _bounds["Ke"] ? bounds['Ke'] : _bounds["Ke"]; //��������������������������������� - _bounds["Le"] = bounds['Le'] < _bounds["Le"] ? bounds['Le'] : _bounds["Le"]; //��������������������������������� + _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 bounds = baiduMap.getBounds(); //������������ - if(_bounds == null) { + var bs = moralMap.getBounds(); //������������ + if(!_bounds) { isOver = true; - moralMap.setMaxBounds(bounds); + moralMap.setMaxBounds(bs); } else { - isOver = (bounds['Fe'] > _bounds["Fe"] || bounds['Ge'] > _bounds["Ge"] || bounds['Ke'] < _bounds["Ke"] || bounds['Le'] < _bounds["Le"]); - moralMap.setMaxBounds(bounds); + 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(){ + // setTimeout(function(){ baiduMap.addOverlay.call(baiduMap, overlay); - },10); + // },10); + baiduMap.addOverlay.call(baiduMap, overlay); } } moralMap.addOverlays = function(overlays) { @@ -195,8 +224,16 @@ } } - moralMap.removeOverlay = function() { + moralMap.removeOverlay = function(overlay) { + // baiduMap.removeOverlay(overlay); 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) @@ -208,11 +245,22 @@ } return moralMarker; } + moralMap.clearCloseInfoWindow = function () { + if(!!moralMap["_closeInfoWinTimer"]){ + clearTimeout(moralMap["_closeInfoWinTimer"]); + moralMap["_closeInfoWinTimer"] = null; + } + } moralMap.openInfoWindow = function() { - baiduMap.openInfoWindow.apply(baiduMap, arguments); + moralMap.clearCloseInfoWindow(); + baiduMap.openInfoWindow.apply(baiduMap, arguments);; //������������������ } moralMap.closeInfoWindow = function() { - baiduMap.closeInfoWindow.apply(baiduMap, arguments); + var timer = setTimeout(function () { + baiduMap.closeInfoWindow.apply(baiduMap, arguments); + moralMap["_closeInfoWinTimer"] = null; + },1200); + moralMap["_closeInfoWinTimer"] = timer; } moralMap.clearOverlays = function() { baiduMap.clearOverlays(); @@ -245,32 +293,48 @@ } //������������ moralMap.showPopupbox = function(id) { - $(id).css('display', 'block'); + setTimeout(function () { + $(id).css('display', 'block'); + },1); } moralMap.closePopupbox = function(id) { - $(id).css('display', 'none'); + $(id).css('display', 'none'); } moralMap.isPopupBoxShow = function(id) { return $(id).css('display') == 'block'; } - moralMap.onItermClick = function(index) { + 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'], - version:moralMap.getVersion(row['mac']) - } + monitorPointId: row['monitorPointId'], + 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']['showMonitorInfo']){ - window['external'].showMonitorInfo(equStr); - }else{ - alert(equStr); + if(window["console"]!=undefined){ + console.log(equStr); } + 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); + } + } + } moralMap.setPopupEqus = function(arr) { moralMap["_equs"] = arr; @@ -346,7 +410,7 @@ break; case 4: state = 'state04'; - stateName = '������'; + stateName = '������'; break; } return { @@ -360,29 +424,18 @@ var pageSize = option["pageSize"] || 20; var pageNo = option["pageNo"] || 1; var url = option['url']; - url += "&page=" + pageNo; - url += "&rows=" + pageSize; + url += "&pageNo=" + pageNo; + url += "&pageSize=" + pageSize; + console.log(url); $.ajax({ type: "get", cache: false, url: url, async: true, - success: function(data) { - if(data) { - if(typeof data !== 'object' && typeof data === 'string') { - try { - data = $.parseJSON(data); - } catch(e) { - return; - } - } - var rows = null; - if(data['rows'] != undefined) { - rows = data['rows']; - } else { - rows = data; - } - if(rows.length == 0) { + success: function(res) { + if(res!=null&&res.total!=null) { + var rows = res.data; + if(rows==null||rows.length == 0) { $(option['id']).html("������������������������������"); return; } @@ -398,7 +451,7 @@ state = stateObj["state"]; stateName = stateObj["stateName"]; var name = e['name']; - if(moralMap.getUtf8Length(name) > 24) { + 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; @@ -413,11 +466,13 @@ } name = name.substring(0, stop1) + "..." + name.substring(stop2, name.length); } - var li = "<li id='listview_item_" + e['mac'] + "' onclick=moralMap.onItermClick(" + i + ")><span id='listview_state_" + e['mac'] + "' class='" + state + "'>" + stateName + "</span>" + name + "</li>"; + 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 = data['total']; + var total = res['total']; var totalPage = Math.ceil(total / pageSize); if(totalPage > 1) { outHtml += "<div id='page' class='page_div'></div>"; @@ -453,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"]) }); @@ -463,7 +519,7 @@ enableMassClear: true }) //������������ - var eventType = ['click', 'mouseover', 'mouseout']; + var eventType = ['click']; for(var index in eventType) { var eventName = eventType[index]; if(_option[eventName] != undefined && typeof _option[eventName] == "function") { @@ -477,9 +533,12 @@ } return $.extend(this, { refreshState: function(state) { - _option['state'] = state; - var iconObj = _getMapIcon(state); - this.setIcon(iconObj); + //��������������������������������� ������ + if(_option['state'] != state){ + _option['state'] = state; + var iconObj = _getMapIcon(state); + this.setIcon(iconObj); + } }, getOption: function() { return _option; @@ -490,24 +549,33 @@ }) } //new BMap.Marker()������������IE7��������������������� - moralMap.MoralMarker.prototype = BMap.Marker.prototype; + 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["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 moralMask = new moralMap.MoralMarker(option); + var moralMarker = new moralMap.MoralMarker(option); // var mark =new BMap.Marker(pointObj,{icon:iconObj}); //==================infoWindow-start============================ var infoWindow = (function() { //��������������� var winOpts = { width: 110, // ������������������ - height: 50, // ������������������ + height: 80, // ������������������ title: getTitleOutHtml(), // ������������������ - offset: new BMap.Size(-2, -21) //��������������������� + offset: new BMap.Size(-8,-5) //��������������������� } function getTitleOutHtml() { @@ -529,29 +597,32 @@ address = address.slice(0, 18) + "..."; } var adressOutHtml = ""; - adressOutHtml += "<div 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 += "<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></tbody></table></div>"; + 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(moralMask["infoWindow"] == undefined) { - moralMask["infoWindow"] = infoWindow; + if(moralMarker["infoWindow"] == undefined) { + moralMarker["infoWindow"] = infoWindow; } //��������������������� - moralMask.addEventListener("mouseover", function() { - baiduMap.openInfoWindow(infoWindow, this._point); //������������������ + moralMarker.addEventListener("mouseover", function() { + moralMap.openInfoWindow(infoWindow, this._point); //������������������ }); - moralMask.addEventListener("mouseout", function() { - baiduMap.closeInfoWindow(); + moralMarker.addEventListener("mouseout", function() { + moralMap.closeInfoWindow(); }); //==================infoWindow-end============================ //��������������� - moralMap.putMpoint(option['id'], moralMask); - return moralMask; + moralMap.putMpoint(option['id'], moralMarker); + return moralMarker; } //������MonitorPoint������ moralMap.putMpoint = function(key, obj) { @@ -578,8 +649,17 @@ //���������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["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; @@ -587,16 +667,58 @@ option["offline_height"] = 80; option["online_width"] = 355; option["online_height"] = 385; - var moralMask = new moralMap.MoralMarker(option); + 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 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); + })(); + + /*var infoWindow = (function() { //��������������� var winOpts = { width: option["online_width"], // ������������������ height:option["online_height"], // ������������������ title: getTitleOutHtml(), // ������������������ - offset: new BMap.Size(-2, -30) //��������������������� + offset: new BMap.Size(-2, -10) //��������������������� } function getTitleOutHtml() { @@ -616,7 +738,7 @@ var dataHandle = { _getDataOutHtml: function(data) { if(data==null||data["state"]==4){ - return "<br/><h3>������������������������,������������������!</h3>"; + return "<br/><h3>������������������������,������������������!</h3>"; } var mac = data['mac']; var itme_mac_key = "item-" + mac + "-" + key; @@ -643,30 +765,40 @@ }, _getSensorState: function(data, key) { var grade="grade"; + var levels; if(data["level3"]!=null){ - if($.inArray(key,data["level3"])!=-1){ + levels = data["level3"] instanceof Array ? data["level3"]:JSON.parse(data["level3"]); + if($.inArray(key,levels)!=-1){ return grade+"03"; } } if(data["level2"] !=null){ - if($.inArray(key,data["level2"])!=-1){ + levels = data["level2"] instanceof Array ? data["level2"]:JSON.parse(data["level2"]); + if($.inArray(key,levels)!=-1){ return grade+"02"; } } if(data["level1"] !=null){ - if($.inArray(key,data["level1"])!=-1){ + levels = data["level1"] instanceof Array ? data["level1"]:JSON.parse(data["level1"]); + if($.inArray(key,levels)!=-1){ return grade+"01"; } } return grade+"00"; } - }; + };*/ - if(moralMask["infoWindow"] == undefined) { - moralMask["infoWindow"] = infoWindow; + if(moralMarker["infoWindow"] == undefined) { + moralMarker["infoWindow"] = infoWindow; } + var mouseOverHandle = option['mouseover']; //��������������������� - moralMask.addEventListener("mouseover", function() { + /*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() == "") { @@ -683,23 +815,32 @@ infoWindow.redraw(); } }); - moralMask.addEventListener("mouseout", function() { + 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(); + }); + //==================infoWindow-end============================ //��������������� - moralMap.putEquipment(option['mac'], moralMask); - var _super_refreshState = moralMask.refreshState; - return $.extend(moralMask, { + 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(infoWindow.isOpen()) { if(data["state"]==4){ if(state!=4){ infoWindow.setHeight(option["offline_height"]); @@ -728,7 +869,7 @@ $(itme_data_mac_key).text(dataValue); } } - } + }*/ } }, setData:function(data){ @@ -743,13 +884,18 @@ } //������MonitorPoint������ moralMap.putEquipment = function(key, obj) { - key = String.prototype.toLowerCase.call(key); - if(moralMap['_equipments'] == undefined) { - moralMap['_equipments'] = {}; + if(key!=null&&key!=""){ + key = String.prototype.toLowerCase.call(key); + if(moralMap['_equipments'] == undefined) { + moralMap['_equipments'] = {}; + } + moralMap['_equipments'][key] = obj; } - 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]; @@ -763,11 +909,14 @@ delete moralMap['_equipments']; } } - moralMap.getZooMConfine = function() { + moralMap.getZoomConfine = function() { return 18; } + moralMap.getZoom = function() { + return baiduMap.getZoom(); + } moralMap.getHorizonMarkers = function(isShow) { - var bounds = baiduMap.getBounds(); + var bounds = moralMap.getBounds(); var oldMarkerList; var isShow = (isShow) ? baiduMap : null; if(moralMap.layer() == "equipments") { @@ -784,7 +933,8 @@ if(typeof option == 'object') { var longitude = option['longitude']; var latitude = option['latitude']; - if(longitude < bounds['Ge'] && longitude > bounds['Le'] && latitude < bounds['Fe'] && latitude > bounds['Ke']) { + // ������������������������������������ + if(longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) { markers.push(oldmarker); } } @@ -793,5 +943,88 @@ } 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){ + console.log(mpoint); + } + $.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']){ + window['external'].callWin(mpointStr); + }else{ + alert(JSON.stringify(mpointStr)); + } + } + }) + }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); + + } + + 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); + } + } + } + } + + window.moralMap = moralMap; })(jQuery, BMap, window); \ No newline at end of file -- Gitblit v1.8.0