xufenglei
2018-11-14 c398d5256db186bd280156fa63d62e13a3baa8d1
src/main/webapp/view/map.jsp
@@ -278,14 +278,14 @@
         <div class="charts_btn">
         </div>
      </div>
       <div class="search_box">
       <!-- <div class="search_box">
      <button id="searchBtn" type="button">搜索</button>
      <input id="searchParam"/>
      </div>
     <div id="popup_box">
      </div> -->
     <!-- <div id="popup_box">
         <div id="equ_list" class="listview">
         </div>
     </div>
     </div> -->
     <div id="mapCanvas"></div>
     <div id="mapParams" style="display: none;">
        ${requestScope.mapParams}
@@ -316,7 +316,7 @@
      var params = moralMap['params'];
      var mpoint = obj.currentTarget.getOption();
        $("#searchParam").val(mpoint['name']);
        //$("#searchParam").val(mpoint['name']);
      var url = 'get-devices-by-mid-oid?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
      listView.load(url); 
      moralMap.showPopupbox("#popup_box");
@@ -395,7 +395,6 @@
                           }
                           var equStr = JSON.stringify(equ);
                           if(window["console"]!=undefined){
                              console.log(equStr);
                           }
                                 if(!!window['external']&&!!window['external']['callWin']){
                                        window['external'].callWin(equStr);
@@ -447,10 +446,15 @@
    //map为地图对象
    // TODO 临时
    function bs() {
    function getBounds() {
        var bs = moralMap.getBounds();  //获取当前地图范围的经纬度
        // var bssw = bs.getSouthWest();      //获取西南角的经纬度(左下端点)
        // var bsne = bs.getNorthEast();      //获取东北角的经纬度(右上端点)
      if(!getBounds.topLeftAnchor){
            getBounds.topLeftAnchor = {};
            getBounds.topLeftAnchor.x0 =  bs.southwestLng;
            getBounds.topLeftAnchor.y0 =  bs.northeastLat;
      }
        return { 'x1': bs.southwestLng, 'y1': bs.southwestLat, 'x2': bs.northeastLng, 'y2': bs.northeastLat };
    }
    /**
@@ -466,17 +470,28 @@
        if(!isShowGrid||moralMap.getZoom()<14){
           return;
      }
        var XY = bs();
        var XY = getBounds();
        var polygons = [];
        console.log(XY);
        for (var i = XY.x1; i < XY.x2; i = i + 0.0063) {
            for (var j = XY.y2; j > XY.y1; j = j - 0.0048) {
        var X1 = XY.x1;
        var Y2 = XY.y2;
        var X0 = getBounds.topLeftAnchor.x0;
        var Y0 = getBounds.topLeftAnchor.y0;
        var width = 0.0063;
        var height = 0.0048;
        // var multiple = 1000000;
        if(!!getBounds.topLeftAnchor) {
            X1=X0 + Math.ceil((X1-X0)/width-1)*width;
            Y2=Y0 + Math.ceil((Y2-Y0)/height)*height;
      }
        for (var i = X1; i < XY.x2; i = i + width) {
            for (var j = Y2; j > XY.y1; j = j - height) {
                //此类表示绘制一个多边形覆盖物(注意:一定要下面的Point列表为多变形的顶点,描线顺序为从上到下,从左到右,顺序乱了,绘制出来的多边形也会乱,如图二所示,图二是将顶点的顺序给错了(网格左上端点,网格左下端点,网格右上端点,网格右下端点))
                var polygon = new BMap.Polygon([
                    new BMap.Point(i, j),    //网格左上端点
                    new BMap.Point(i, j-0.0048),  //网格左下端点
                    new BMap.Point(i+0.0063, j-0.0048),    //网格右下端点
                    new BMap.Point(i+0.0063, j)         //网格右上端点
                    new BMap.Point(i, j-height),  //网格左下端点
                    new BMap.Point(i+width, j-height),    //网格右下端点
                    new BMap.Point(i+width, j)         //网格右上端点
                ], {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5, fillOpacity:0.1});
                // polygon .addEventListener("click",function clickFunction(){
                //     alert("你居然敢点我");
@@ -493,7 +508,7 @@
    }
   // 点击事件关闭 弹窗列表
    moralMap.addEventListener("click", function(type, target) {
        moralMap.closePopupbox("#popup_box");
        //moralMap.closePopupbox("#popup_box");
    });
   //地图放大缩小事件时,关闭弹窗
   moralMap.addEventListener('zoomstart', function(type) {});
@@ -505,7 +520,7 @@
        }else{
            loadOverlays("get-monitorpoints",addOverMpoints);
        }
        moralMap.closePopupbox("#popup_box");
        //moralMap.closePopupbox("#popup_box");
   });
   moralMap.addEventListener('moveend', function(type) {
        var endZoom = this.getZoom();
@@ -514,13 +529,13 @@
        }else{
            loadOverlays("get-monitorpoints",addOverMpoints);
        }
        moralMap.closePopupbox("#popup_box");
        //moralMap.closePopupbox("#popup_box");
   });
   //搜索框单击事件
   $("#searchBtn").click(
      function(e) {
         var param = encodeURI($("#searchParam").val());
         moralMap.showPopupbox("#popup_box");
         //moralMap.showPopupbox("#popup_box");
         var url = 'get-devices-for-popup?name=' + param + "&orgId=" + params['orgId'];
         listView.load(url); 
      }
@@ -567,12 +582,12 @@
   //刷新页面
   function refreshAllState() {
      var parma={};
      if(moralMap.isPopupBoxShow("#popup_box")) {
      /* if(moralMap.isPopupBoxShow("#popup_box")) {
         var popupEquMacs = moralMap.getPopupEquMacs();
         if(popupEquMacs!=null&&popupEquMacs.length>0){
            parma["popupEquMacs"] = popupEquMacs;
         }
      }
      } */
      //从缓存取
       var oldMarkerList = moralMap.getHorizonMarkers(true);
       var markerKeys = [];
@@ -636,4 +651,8 @@
            });
      }
   }
   function callJS(jsonData){
      moralMap.callJS(jsonData);
   }
</script>