From 9e4480300d1285a574d52451206c5adc81396be4 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Mon, 13 Jul 2020 09:36:17 +0800
Subject: [PATCH] 无组织排放实时

---
 src/main/webapp/js/moralmap.js | 2050 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 1,152 insertions(+), 898 deletions(-)

diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js
index bc42550..4ec747c 100644
--- a/src/main/webapp/js/moralmap.js
+++ b/src/main/webapp/js/moralmap.js
@@ -1,989 +1,1243 @@
-(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
+            maxZoom: 20,
+            enableMapClick: false
         };
-	    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];
+        if (cityName == "���������" || cityName == "���" || cityName == "���������������������������") {
+            cityName = regoinNames[2];
+        }
         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) {
+                if ("���������" == cityName) {
+                    var longitude = 113.30640743;
+                    var latitude = 40.08256467;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������" == cityName) {
+                    var longitude = 105.733648;
+                    var latitude = 38.858951;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������" == cityName) {
+                    var longitude = 113.136019;
+                    var latitude = 41.001403;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 104.647678;
+                    var latitude = 28.758767;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������" == cityName) {
+                    var longitude = 92.056768;
+                    var latitude = 31.482684;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 105.930055;
+                    var latitude = 29.363305;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 105.727253;
+                    var latitude = 29.714369;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 106.061728;
+                    var latitude = 29.852264;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 106.654609;
+                    var latitude = 29.035883;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 106.889359;
+                    var latitude = 28.907664;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 107.735181;
+                    var latitude = 29.869663;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 107.336118;
+                    var latitude = 30.334042;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������" == cityName) {
+                    var longitude = 108.04224;
+                    var latitude = 30.30452;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 108.671036;
+                    var latitude = 31.953145;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 109.576402;
+                    var latitude = 31.40266;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 109.879221;
+                    var latitude = 31.087199;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 109.468749;
+                    var latitude = 31.024849;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������������������" == cityName) {
+                    var longitude = 108.118685;
+                    var latitude = 30.006859;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������������������������" == cityName) {
+                    var longitude = 108.17085;
+                    var latitude = 29.301729;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������������������������" == cityName) {
+                    var longitude = 108.774583;
+                    var latitude = 28.848811;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������������������������" == cityName) {
+                    var longitude = 109.011853;
+                    var latitude = 28.454209;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 108.656267;
+                    var latitude = 19.101378;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 110.397709;
+                    var latitude = 18.799833;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������" == cityName) {
+                    var longitude = 109.522965;
+                    var latitude = 18.782911;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 110.47882;
+                    var latitude = 19.265073;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 110.105702;
+                    var latitude = 19.358194;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 110.363233;
+                    var latitude = 19.686848;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 110.803934;
+                    var latitude = 19.549335;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 110.010636;
+                    var latitude = 19.745166;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 109.693419;
+                    var latitude = 19.920291;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������������������" == cityName) {
+                    var longitude = 109.702907;
+                    var latitude = 18.647732;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������������" == cityName) {
+                    var longitude = 110.045039;
+                    var latitude = 18.513155;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������������������" == cityName) {
+                    var longitude = 109.842786;
+                    var latitude = 19.041625;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������������" == cityName) {
+                    var longitude = 109.060164;
+                    var latitude = 19.304817;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������������" == cityName) {
+                    var longitude = 109.453447;
+                    var latitude = 19.232744;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 109.588035;
+                    var latitude = 19.526327;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("������������������������������" == cityName) {
+                    var longitude = 103.380977;
+                    var latitude = 23.380877;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������������������������" == cityName) {
+                    var longitude = 100.800568;
+                    var latitude = 22.023519;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 100.972567;
+                    var latitude = 22.830712;
+                    point = new BMap.Point(longitude, latitude);
+                } else if ("���������" == cityName) {
+                    var longitude = 106.638135;
+                    var latitude = 29.709625;
+                    point = new BMap.Point(longitude, latitude);
                 }
-            }, 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;
-					}
-				}
-			}
-		}
-	})();
+                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;
+                    }
+                }
+            }
+        }
+    })();
     // ���������������
     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{
+        if (!!baiduBounds) {
+            this.northeastLng = baiduBounds.getNorthEast().lng;//���������������������������
+            this.northeastLat = baiduBounds.getNorthEast().lat;//���������������������������
+            this.southwestLng = baiduBounds.getSouthWest().lng;//���������������������������������
+            this.southwestLat = baiduBounds.getSouthWest().lat;//���������������������������������
+        } 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: 'showVoc' == select ? 'showVoc' : '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){
-            console.log(equStr);
+            version: row['deviceVersion']['version'],
+            provinceCode: row['monitorPoint']['provinceCode']
+        };
+        !!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 === 'showVoc' && !!window['external'] && !!window['external']['showVocInfo']) {
+                window['external'].showChartInfo(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'];
+                                if (deviceStates) {
+                                    for (var j in deviceStates) {
+                                        var deviceState = deviceStates[j];
+                                        if (deviceState.mac == e['mac']) {
+                                            s = deviceState.state;
+                                            break;
+                                        }
+                                    }
+                                }
+                                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 + "\",'showVoc')><img src='/img/list.png' width='20px'></span>"
+                                    + "<span id='listview_state_" + e['mac'] + "'class='" + state + "'>" + stateName + "</span>" +
+                                    "<div>" + 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];
-			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) {
-		var icon = {};
-		icon["stateIcons"] = ["/img/ico00.png", "/img/ico01.png", "/img/ico02.png", "/img/ico03.png", "/img/ico04.png"];
-		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;
+        if (moralMarker["infoWindow"] == undefined) {
+            moralMarker["infoWindow"] = infoWindow;
+        }
 
-			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;
-			}
+        //���������������������
+        moralMarker.addEventListener("click", function () {
+            var winOpts = {
+                width: 250, // ������������������
+                height: 160, // ������������������
+                // title: getTitleOutHtml(), // ������������������
+                offset: new BMap.Size(-8, -5) //���������������������
+            }
+            var winfowText = "<div style='width:250px'>";
+            var title = (option["name"] == null) ? "" : option["name"];
+            if (title.length > 13) {
+                title = title.slice(0, 13) + "...";
+            }
+            winfowText += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'"
+            winfowText += "title='" + option["name"] + "'>";
+            winfowText += title + "</p>";
+            var listText = '<div id="equ_list" class="listview" style="min-height:50px;overflow:auto;max-height:140px;" ></div>';
+            winfowText = winfowText + listText + "</div>";
+            var infoWindow = new BMap.InfoWindow(winfowText, winOpts);
+            moralMap.openInfoWindow(infoWindow, this._point); //������������������
+        });
 
-			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'>���������&nbsp;</td><td style='line-height:16px'>";
-				adressOutHtml += address + "&nbsp;";
-				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() {
-            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'];
-		}
+        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'];
+        }
 
-	}
-	//���������mac���key������
-	//��������������� ������MoralMark������
-	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"];
-		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============================
+    }
+    //���������mac���key������
+    //��������������� ������MoralMark������
+    moralMap.Equipment = function (option) {
+        var sensorsDescriptionMap;
+        var sensorsUnitMap;
+        $.ajax({
+            url: "getSensorsMap?mac=" + option['mac'],
+            type: "get",
+            dataType: "json",
+            success: function (data) {
+                sensorsDescriptionMap = data[0];
+                sensorsUnitMap = data[1];
+            }
+        });
 
-		var infoWindow = (function() {
-			//���������������
-			var winOpts = {
-				width: 110, // ������������������
-				height: 80, // ������������������
-				title: getTitleOutHtml(), // ������������������
-				offset: new BMap.Size(-8,-5) //���������������������
-			}
+        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) //���������������������
+            }
 
-			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 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'>���������&nbsp;" + address + "</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'>���������&nbsp;</td><td style='line-height:16px'>";
-				adressOutHtml += address + "&nbsp;";
-				adressOutHtml += "</td></tr>";
-                adressOutHtml += "</tbody></table></div>";
-                //$("#searchParam").val(address);
-				return adressOutHtml;
-			}
-			return new BMap.InfoWindow(getAdressOutHtml(), winOpts);
-		})();
+            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) //���������������������
-			}
+        /*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);
+            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) {
+                if (!jsonData.hasOwnProperty('mac')) {
+                    infoWindow.setContent("");
+                    infoWindow.redraw();
+                } else {
+                    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">' + "���������&nbsp;" + date + "&nbsp;</p>";
+                    for (var prop in jsonData) {
+                        if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') {
+                            for (var key in sensorsDescriptionMap) {
+                                if (prop == key) {
+                                    var sensorsDescription = sensorsDescriptionMap[key];
+                                }
+                            }
+                            for (var key in sensorsUnitMap) {
+                                if (prop == key) {
+                                    var sensorsUnit = sensorsUnitMap[key];
+                                    if (sensorsUnit == null) {
+                                        sensorsUnit = "";
+                                    }
+                                }
+                            }
+                            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) {
-    	//$("#searchParam").val(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);
-    		if(moralMap.getMpoint(condition.id)){
-    			moralMap.openInfoWindow(moralMap.getMpoint(condition.id)["infoWindow"], new_point);
-    		}else {
-    			//$("#searchParam").val(condition.id);
-    		}
-    	} else if (condition.type == "device") {
-    		//baiduMap.centerAndZoom(new_point, 18);
-    		baiduMap.setZoom(18);
-    		if(moralMap.getEquipment(condition.mac)){
-    			moralMap.openInfoWindow(moralMap.getEquipment(condition.mac)["infoWindow"], new_point);
-    		} else {
-    			//var equipment = new moralMap.Equipment(condition);
-    			//moralMap.openInfoWindow(showInfoWindow, new_point);
-    			//moralMap.openInfoWindow(equipment["infoWindow"], new_point);
-    			//moralMap.openInfoWindow(moralMap.getEquipment(condition.mac)["infoWindow"], new_point);
-    			//moralMap.callJS(condition);
-    		}
-    	}
-	}
+    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);
 
+    }
 
-	window.moralMap = moralMap;
-})(jQuery, BMap, window);
\ No newline at end of file
+    var deviceStates;
+    var monitorPointStates;
+    moralMap.refreshState = function (states) {
+        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);
+            }
+        }
+        listView.refreshState(deviceStates);
+        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);

--
Gitblit v1.8.0