hdw
2018-09-28 dd3b23f7dd793c2eb1aa971aac76d3740bac7565
gx_tieta/WebRoot/index.jsp
@@ -597,7 +597,6 @@
               
               flushFourPie();      //更新四种饼状图
            });
            // 设置右键菜单
            var menu = new BMap.ContextMenu();
            var txtMenuItem = [
@@ -632,17 +631,7 @@
                        enparams:[e]
                     });
                  }
               },
               /* {
                  text: '机房定位',
                  callback: function(e) {
                     panel.setPanelLayout();
                     panel.showPanel();
                     $('#map .panel-mask').bind('click', function() {
                        panel.hidePanel();
                     });
                  }
               } */
               }
            ];
            //console.info(getPermit('taskchange_edit_permit', permits)+"*******");
            if(getPermit('batt_map_edit_permit', permits)) {
@@ -1594,6 +1583,7 @@
   function createMapDot(map, dotList) {
      // 清空覆盖物和对应的mk点
      mkList = [];
      // 遍历查询内容生成对应的图标
      for(var i = 0; i < dotList.length; i++) {
         var dotIcon = new BMap.Icon(getMapStateImg(mapImages, dotList[0].msg), new BMap.Size(36, 30));   // 设置图片
@@ -1624,6 +1614,9 @@
         map.addOverlay(mk);
      }
   }
   
   // 
   
@@ -1966,10 +1959,86 @@
      }
   }
   
   searchStation();
   // 设置页面中的可视区域图标
   ;(function($, window, document, gl, undefined) {
      // 设置命名空间
      gl.namespace('BMap');
      // 根据可视范围显示坐标点
      var dots = [];
      var currMarkers = {};
      // 查询当前范围内容的图标
      function queryInRect(map, callback) {
         var cp = map.getBounds(); // 返回map可视区域,以地理坐标表示
           var sw = cp.getSouthWest(); // 返回矩形区域的西南角
           var ne = cp.getNorthEast(); // 返回矩形区域的东北角
           //var zoom = map.getZoom(); //当前缩放级别
           //console.log(dots);
           var mapDots = getDotsList(sw, ne);
           callback(map, mapDots);
      }
      // 获取dots的集合
      function getDotsList(sw, ne) {
         var rs = [];
            swlng=sw.lng,
               swlat=sw.lat,
               nelng=ne.lng,
               nelat=ne.lat;
               var maxLng = sw.lng>ne.lng?sw.lng:ne.lng;
               var minLng = sw.lng<ne.lng?sw.lng:ne.lng;
               var maxLat = sw.lat>ne.lat?sw.lat:ne.lat;
               var minLat = sw.lat<ne.lat?sw.lat:ne.lat;
               for(var i=0; i<dots.length; i++) {
                  var dot = dots[i];
                  var lat = dot.lat;
                  var lng = dot.lng;
                  var sId = dot.binformation.StationId;
                  var isExist = checkMarker(sId);
                  // 未被添加过
                  if(!isExist) {
                     // 判断经纬度是否存在该区域
                     if(lng<maxLng && lng>minLng && lat<maxLat && lat>minLat) {
                        currMarkers['markers'+sId] = sId;
                        rs.push(dot);
                     }
                  }
               }
               return rs;
      }
      // 检测当前点是否已经被添加过
      function checkMarker(id) {
         var flag = false;
         // 遍历已经添加的点返回是否已经被添加过
         Object.keys(currMarkers).forEach(function(key) {
            if(currMarkers[key] == id) {
               flag = true;
            }
         });
         return flag;
      }
      // 设置dots集合的值
      function setDots(data) {
         dots = data;
      }
      // 将变量绑定到命名空间下
      gl.BMap.setDots = setDots;
      // 将函数绑定到命名空间下
      gl.BMap.queryInRect = queryInRect;
   })(jQuery, window, document, GLOBAL);
   searchStation(true);
   var allStation;
   //查询机房
   function searchStation(){
   function searchStation(setRect){
      var temp = createSearchParam();
      var json = JSON.stringify(temp);
      commonDot = new Array();
@@ -1980,7 +2049,7 @@
           type: "post",             
           //url: "BattMap_informationAction!searchAll",            
           url: "BattMap_informationAction!searchUserManageStation",            
           async:true,
           async: true,
           dataType:'text',
           data:"json="+json,      
           success: function(data){ 
@@ -1989,7 +2058,7 @@
            console.log(list.length);
            allStation = new Array();
            if(list!=undefined && list.length>0){
               for(var i=0;i<10;i++){
               for(var i=0;i<list.length;i++){
                  var tmp = {
                     binformation:list[i].data,
                     alarm_num:list[i].code,      //告警数目
@@ -1999,10 +2068,17 @@
                  };
                  allStation.push(analyzeData(tmp));
               }
               //console.info(allStation);
               createMapDot(map, allStation);
               // 显示区域的图标
               GLOBAL.BMap.setDots(allStation);
               GLOBAL.BMap.queryInRect(map,createMapDot);
               // 是否设置拖到和缩放
               if(setRect) {
                  map.addEventListener("moveend", GLOBAL.BMap.queryInRect.bind({},map, createMapDot));  // 拖动
                  map.addEventListener("zoomend", GLOBAL.BMap.queryInRect.bind({},map, createMapDot)); // 缩放
               }
               
               //setTimeout(searchStation, 4000);
               //createMapDot(map, allStation);
            }
           }             
      });