From 2e342d040375b2c0a353357353200a6e07c8f87e Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 29 May 2018 14:50:23 +0800
Subject: [PATCH] 地图相关资源

---
 src/main/webapp/js/moralmap.js |   67 +++++++++++++---------
 src/main/webapp/view/map.jsp   |  105 +++++++++++++++++++----------------
 2 files changed, 97 insertions(+), 75 deletions(-)

diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js
index 4bcc87a..3ff6473 100644
--- a/src/main/webapp/js/moralmap.js
+++ b/src/main/webapp/js/moralmap.js
@@ -54,7 +54,7 @@
 			style: "normal" //������������������������������ 
 		}
 		map.setMapStyle(mapStyle);
-		var showZoom = 12;
+		var showZoom = 13;
 		if(arguments.length == 2) {
 			map.centerAndZoom(new BMap.Point(arguments[0], arguments[1]), showZoom);
 		} else if(arguments.length == 1) {
@@ -139,43 +139,56 @@
 			}
 		}
 	})();
+    // ���������������
+    moralMap.Bounds = function (baiduBounds) {
+    	if(!!baiduBounds){
+            this.northeastLng = baiduBounds.xl.lng;//���������������������������
+            this.northeastLat = baiduBounds.xl.lat;//���������������������������
+            this.southwestLng = baiduBounds.Ol.lng;//���������������������������������
+            this.southwestLat = baiduBounds.Ol.lat;//���������������������������������
+		}else{
+            this.northeastLng = null;//���������������������������
+            this.northeastLat = null;//���������������������������
+            this.southwestLng = null;//���������������������������������
+            this.southwestLat = null;//���������������������������������
+		}
+    }
 	moralMap.getBounds = function() {
-		return baiduMap.getBounds(); //������bounds;
+		return new moralMap.Bounds(baiduMap.getBounds()); //������bounds;
 	}
 	moralMap.getMaxBounds = function() {
 		var key = "_" + moralMap.layer() + "_bounds";
 		return this[key];
 	}
-	moralMap.setMaxBounds = function(bounds) {
+	moralMap.setMaxBounds = function(bs) {
 		var key = "_" + moralMap.layer() + "_bounds";
-		var _bounds = this[key]; //������������
-		if(_bounds == undefined) {
-			_bounds = {};
-		}
-		if(bounds == undefined) {
-			bounds = baiduMap.getBounds();
-		}
+		var _bounds = !!this[key]?this[key]:new moralMap.Bounds(); //������������
 		//������������������
-		_bounds["Fe"] = _bounds['Fe'] || bounds['Fe']; //���������������������������
-		_bounds["Ge"] = _bounds['Ge'] || bounds['Ge']; //���������������������������
-		_bounds["Ke"] = _bounds['Ke'] || bounds['Ke']; //���������������������������������
-		_bounds["Le"] = _bounds['Le'] || bounds['Le']; //���������������������������������
-		_bounds["Fe"] = bounds['Fe'] > _bounds["Fe"] ? bounds['Fe'] : _bounds["Fe"]; //���������������������������
-		_bounds["Ge"] = bounds['Ge'] > _bounds["Ge"] ? bounds['Ge'] : _bounds["Ge"]; //���������������������������
-		_bounds["Ke"] = bounds['Ke'] < _bounds["Ke"] ? bounds['Ke'] : _bounds["Ke"]; //���������������������������������
-		_bounds["Le"] = bounds['Le'] < _bounds["Le"] ? bounds['Le'] : _bounds["Le"]; //���������������������������������
+		_bounds.northeastLng = _bounds.northeastLng || bs.northeastLng;
+		_bounds.northeastLat = _bounds.northeastLat || bs.northeastLat;
+		_bounds.southwestLng = _bounds.southwestLng || bs.southwestLng;
+		_bounds.southwestLat = _bounds.southwestLat || bs.southwestLat;
+		_bounds.northeastLng = bs.northeastLng > _bounds.northeastLng ? bs.northeastLng: _bounds.northeastLng;
+		_bounds.northeastLat = bs.northeastLat > _bounds.northeastLat ? bs.northeastLat: _bounds.northeastLat;
+		_bounds.southwestLng = bs.southwestLng > _bounds.southwestLng ? bs.southwestLng: _bounds.southwestLng;
+		_bounds.southwestLat = bs.southwestLat > _bounds.southwestLat ? bs.southwestLat: _bounds.southwestLat;
 		this[key] = _bounds;
 	}
 	moralMap.isOverBounds = function() {
 		var isOver = false;
 		var _bounds = moralMap.getMaxBounds(); //������������
-		var bounds = baiduMap.getBounds(); //������������
-		if(_bounds == null) {
+		var bs = moralMap.getBounds(); //������������
+		if(!_bounds) {
 			isOver = true;
-			moralMap.setMaxBounds(bounds);
+			moralMap.setMaxBounds(bs);
 		} else {
-			isOver = (bounds['Fe'] > _bounds["Fe"] || bounds['Ge'] > _bounds["Ge"] || bounds['Ke'] < _bounds["Ke"] || bounds['Le'] < _bounds["Le"]);
-			moralMap.setMaxBounds(bounds);
+			    isOver = (bs.northeastLng > _bounds.northeastLng
+						|| bs.northeastLat > _bounds.northeastLat
+						|| bs.southwestLng > _bounds.southwestLng
+						|| bs.southwestLat > _bounds.southwestLat);
+			  if(isOver){
+                  moralMap.setMaxBounds(bs);
+			  }
 		}
 
 		return isOver;
@@ -528,7 +541,7 @@
 				width: 110, // ������������������
 				height: 80, // ������������������
 				title: getTitleOutHtml(), // ������������������
-				offset: new BMap.Size(-2, -21) //���������������������
+				offset: new BMap.Size(-2,0) //���������������������
 			}
 
 			function getTitleOutHtml() {
@@ -620,7 +633,7 @@
 				width: option["online_width"], // ������������������
 				height:option["online_height"], // ������������������
 				title: getTitleOutHtml(), // ������������������
-				offset: new BMap.Size(-2, -30) //���������������������
+				offset: new BMap.Size(-2, -10) //���������������������
 			}
 
 			function getTitleOutHtml() {
@@ -806,7 +819,7 @@
 		return 18;
 	}
 	moralMap.getHorizonMarkers = function(isShow) {
-		var bounds = baiduMap.getBounds();
+		var bounds = moralMap.getBounds();
 		var oldMarkerList;
 		var isShow = (isShow) ? baiduMap : null;
 		if(moralMap.layer() == "equipments") {
@@ -823,7 +836,7 @@
 					if(typeof option == 'object') {
 						var longitude = option['longitude'];
 						var latitude = option['latitude'];
-						if(longitude < bounds['Ge'] && longitude > bounds['Le'] && latitude < bounds['Fe'] && latitude > bounds['Ke']) {
+						if(longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) {
 							markers.push(oldmarker);
 						}
 					}
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index 6fc278f..24d95aa 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -350,7 +350,12 @@
 	    	var maxBounds = moralMap.getMaxBounds();
 	    	var paramMap = {};
 		    paramMap["orgId"]=  params['orgId'];
-		    $.extend(paramMap,maxBounds);
+		    // ���������������������
+            paramMap["Fe"]=  maxBounds.northeastLat;//���������������������������
+            paramMap["Ge"]=  maxBounds.northeastLng;//���������������������������
+            paramMap["Ke"]=  maxBounds.southwestLat;//���������������������������������
+            paramMap["Le"]=  maxBounds.southwestLng;//���������������������������������
+		    // $.extend(paramMap,maxBounds);
 			loadLazy(url,paramMap,callback);
 	    }
 	}
@@ -419,10 +424,11 @@
             var bounds = moralMap.getBounds();
 	        paramMap["areaCode"]=  params['areaCode'];
 	        paramMap["orgId"]=  params['orgId'];
-	        paramMap["Fe"]=  bounds['Fe'];//���������������������������
-	        paramMap["Ge"]=  bounds['Ge'];//���������������������������
-	        paramMap["Ke"]=  bounds['Ke'];//���������������������������������
-	        paramMap["Le"]=  bounds['Le'];//���������������������������������
+	        // ���������������������
+	        paramMap["Fe"]=  bounds.northeastLat;//���������������������������
+	        paramMap["Ge"]=  bounds.northeastLng;//���������������������������
+	        paramMap["Ke"]=  bounds.southwestLat;//���������������������������������
+	        paramMap["Le"]=  bounds.southwestLng;//���������������������������������
             loadLazy("getMonitorpointList",paramMap,addOverMpoints);
             startRefreshPage();
 	});
@@ -526,49 +532,52 @@
 	    parma["markerKeys"] = markerKeys;
         parma["areaCode"] = moralMap['params']["areaCode"];
         parma["orgId"] = moralMap['params']["orgId"];
-        $.ajax({
-			type: "post",
-			url: "get-real-state-data",
-			data:JSON.stringify(parma),
-			dataType:"json",
-			contentType:"application/json;charset=utf-8",
-			cache: false,
-			async: true,
-			success: function(data) {
-				if(data!=null&&typeof data === 'object') {
-					 var resultMap = data["extData"];
-					 if(resultMap==null){
-					 	return;
-					 }
-			         var markers = resultMap["markers"];
-			         var layer = resultMap["layer"];
-			         if(markers!=null&&markers.length>0){
-			         	    if(layer=="monitorpoints"){
-			         	    	 for(var a_i in markers){
-			         	    	 	var marker = markers[a_i];
-			         	    	 	var marker_id = marker["id"];
-			         	    	 	var mpoint = moralMap.getMpoint(marker_id);
-			         	    	 	if(mpoint!=null){
-			         	    	 		mpoint.refreshState(marker["state"]);
-			         	    	 	}
+        if((!!parma["popupEquMacs"]&&!!parma["popupEquMacs"].length)
+			||(!!parma["markerKeys"]&&!!parma["markerKeys"].length)){
+            $.ajax({
+                type: "post",
+                url: "get-real-state-data",
+                data:JSON.stringify(parma),
+                dataType:"json",
+                contentType:"application/json;charset=utf-8",
+                cache: false,
+                async: true,
+                success: function(data) {
+                    if(data!=null&&typeof data === 'object') {
+                        var resultMap = data["extData"];
+                        if(resultMap==null){
+                            return;
+                        }
+                        var markers = resultMap["markers"];
+                        var layer = resultMap["layer"];
+                        if(markers!=null&&markers.length>0){
+                            if(layer=="monitorpoints"){
+                                for(var a_i in markers){
+                                    var marker = markers[a_i];
+                                    var marker_id = marker["id"];
+                                    var mpoint = moralMap.getMpoint(marker_id);
+                                    if(mpoint!=null){
+                                        mpoint.refreshState(marker["state"]);
+                                    }
 //									mpoint.refreshState(4);
-			         	    	 }
-			         	    }else{
-			         	    	   for(var b_i in markers){
-			         	    	 	var marker = markers[b_i];
-			         	    	 	var marker_mac = marker["mac"];
-			         	    	 	var equipment = moralMap.getEquipment(marker_mac);
-			         	    	 	if(equipment!=null){
-			         	    	 		equipment.refreshState(marker);
-			         	    	 	}
-			         	    	   }
-			         	    }
-			         }
-			         if(resultMap["popupEquStates"]!=null){
-			         	listView.refreshState(resultMap["popupEquStates"]);
-			         }
-				}
-			}
-		});
+                                }
+                            }else{
+                                for(var b_i in markers){
+                                    var marker = markers[b_i];
+                                    var marker_mac = marker["mac"];
+                                    var equipment = moralMap.getEquipment(marker_mac);
+                                    if(equipment!=null){
+                                        equipment.refreshState(marker);
+                                    }
+                                }
+                            }
+                        }
+                        if(resultMap["popupEquStates"]!=null){
+                            listView.refreshState(resultMap["popupEquStates"]);
+                        }
+                    }
+                }
+            });
+		}
 	}
 </script>

--
Gitblit v1.8.0