| | |
| | | } |
| | | moralMap.openInfoWindow = function() { |
| | | moralMap.clearCloseInfoWindow(); |
| | | baiduMap.openInfoWindow.apply(baiduMap, arguments);; //开启信息窗口 |
| | | baiduMap.openInfoWindow.apply(baiduMap, arguments); //开启信息窗口 |
| | | } |
| | | moralMap.closeInfoWindow = function() { |
| | | var timer = setTimeout(function () { |
| | |
| | | }); |
| | | } |
| | | } |
| | | |
| | | return listView; |
| | | } |
| | | moralMap.MoralMarker = function(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; |
| | |
| | | imageSize: new BMap.Size(icon["width"], icon["height"]) |
| | | }); |
| | | } |
| | | |
| | | this.constructor.call(this, _pointObj, { |
| | | icon: _iconObj, |
| | | enableMassClear: true |
| | |
| | | adressOutHtml += "</tbody></table></div>"; |
| | | return adressOutHtml; |
| | | } |
| | | |
| | | return new BMap.InfoWindow(getAdressOutHtml(), winOpts); |
| | | })(); |
| | | if(moralMarker["infoWindow"] == undefined) { |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | //设备以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; |
| | | } |
| | | }); |
| | | |
| | | $.ajax({ |
| | | url: "getSensorsUnitMap?mac=" + option['mac'], |
| | | type: "get", |
| | | dataType: "json", |
| | | success: function (data) { |
| | | sensorsUnitMap = data.data; |
| | | } |
| | | }); |
| | | |
| | | if(deviceStates){ |
| | | for(var i in deviceStates){ |
| | | var state = deviceStates[i]; |
| | |
| | | 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, // 信息窗口高度 |
| | | width: 300, // 信息窗口宽度 |
| | | title: getTitleOutHtml(), // 信息窗口标题 |
| | | offset: new BMap.Size(-8,-5) //设置信息窗偏移 |
| | | } |
| | |
| | | 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; |
| | | 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; |
| | | } |
| | | return new BMap.InfoWindow(getAdressOutHtml(), winOpts); |
| | | |
| | | return new BMap.InfoWindow("", winOpts); |
| | | })(); |
| | | |
| | | /*var infoWindow = (function() { |
| | |
| | | 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); |
| | | } |
| | | |
| | | 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(); |
| | | }); |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | window.moralMap = moralMap; |
| | | })(jQuery, BMap, window); |