fengxiang
2018-05-29 2e342d040375b2c0a353357353200a6e07c8f87e
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);
                  }
               }