| | |
| | | //new BMap.Marker()这种写法IE7会报错,很奇葩 |
| | | moralMap.MoralMarker.prototype = new BMap.Marker(); |
| | | //监控点对象 包装Mark对象 |
| | | var showMonitorpointInfoWindow = null; |
| | | moralMap.Monitorpoint = function(option) { |
| | | var icon = {}; |
| | | icon["stateIcons"] = ["/img/ico00.png", "/img/ico01.png", "/img/ico02.png", "/img/ico03.png", "/img/ico04.png"]; |
| | |
| | | } |
| | | return new BMap.InfoWindow(getAdressOutHtml(), winOpts); |
| | | })(); |
| | | if (!showMonitorpointInfoWindow) { |
| | | showMonitorpointInfoWindow = infoWindow; |
| | | } |
| | | if(moralMarker["infoWindow"] == undefined) { |
| | | moralMarker["infoWindow"] = infoWindow; |
| | | } |
| | |
| | | } |
| | | //设备以mac为key储存 |
| | | //监控点对象 包装MoralMark对象 |
| | | var showEquipmentInfoWindow = null; |
| | | moralMap.Equipment = function(option) { |
| | | var icon = {}; |
| | | icon["stateIcons"] = ["/img/ico_coo00.png", "/img/ico_coo01.png", "/img/ico_coo02.png", "/img/ico_coo03.png", "/img/ico_coo04.png"]; |
| | |
| | | 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"], // 信息窗口宽度 |
| | |
| | | } |
| | | return grade+"00"; |
| | | } |
| | | }; |
| | | };*/ |
| | | |
| | | if(moralMarker["infoWindow"] == undefined) { |
| | | moralMarker["infoWindow"] = infoWindow; |
| | | } |
| | | var mouseOverHandle = option['mouseover']; |
| | | //弹窗打开和关闭 |
| | | moralMarker.addEventListener("mouseover", function() { |
| | | /*moralMarker.addEventListener("mouseover", function() { |
| | | if(mouseOverHandle!=null&&mouseOverHandle instanceof Function){ |
| | | //将arguments转换成数组 |
| | | var args = Array.prototype.slice.call(arguments); |
| | |
| | | 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'], moralMarker); |
| | | var _super_refreshState = moralMarker.refreshState; |
| | | if (!showEquipmentInfoWindow) { |
| | | showEquipmentInfoWindow = infoWindow; |
| | | } |
| | | //$("#searchParam").val(option['mac']); |
| | | return $.extend(moralMarker, { |
| | | refreshState: function(data) { |
| | | if(data != null && data!="") { |
| | |
| | | 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"]); |
| | |
| | | $(itme_data_mac_key).text(dataValue); |
| | | } |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | }, |
| | | setData:function(data){ |
| | |
| | | } |
| | | |
| | | moralMap.callJS = function(condition) { |
| | | var condition = JSON.parse(condition); |
| | | var new_point = new BMap.Point(condition.longitude, condition.latitude); |
| | | baiduMap.panTo(new_point); |
| | | baiduMap.setCenter(new_point); |
| | | if (condition.type == "mpoint") { |
| | | baiduMap.setZoom(17); |
| | | new moralMap.Monitorpoint(condition); |
| | | moralMap.openInfoWindow(showMonitorpointInfoWindow, new_point); |
| | | showMonitorpointInfoWindow = null; |
| | | } else if (condition.type == "device") { |
| | | baiduMap.setZoom(18); |
| | | new moralMap.Equipment(condition); |
| | | moralMap.openInfoWindow(showEquipmentInfoWindow, new_point); |
| | | showEquipmentInfoWindow = null; |
| | | } |
| | | var new_point = new BMap.Point(condition.longitude, condition.latitude); |
| | | baiduMap.panTo(new_point); |
| | | baiduMap.setCenter(new_point); |
| | | baiduMap.setZoom(condition.type == "mpoint" ? 17 : 18); |
| | | var interval = setInterval(function(){ |
| | | var marker; |
| | | if (condition.type == "mpoint") { |
| | | marker = moralMap.getMpoint(condition.id); |
| | | } else if (condition.type == "device") { |
| | | marker = moralMap.getEquipment(condition.mac); |
| | | } |
| | | if(marker){ |
| | | clearInterval(interval); |
| | | moralMap.openInfoWindow(marker["infoWindow"], new_point); |
| | | } |
| | | }, 50); |
| | | |
| | | } |
| | | |
| | | |