fengxiang
2018-08-13 b548f17e642210ac5301db8493b5b5fe28dfab65
地图更新
4 files modified
83 ■■■■ changed files
src/main/java/com/moral/common/util/ExampleUtil.java 2 ●●● patch | view | raw | blame | history
src/main/webapp/js/moralmap.js 30 ●●●● patch | view | raw | blame | history
src/main/webapp/js/utils.js 2 ●●● patch | view | raw | blame | history
src/main/webapp/view/map.jsp 49 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/common/util/ExampleUtil.java
@@ -55,7 +55,7 @@
            }
            if(!StringUtils.isNullOrEmpty(params)){
                params = URLDecoder.decode(params, "UTF-8");
                if (!StringUtils.isNullOrEmpty(params) && params.startsWith("or|")) {
                if (params.startsWith("or|")) {
                    String[] criteria = params.trim().split(OR_SPLIT);
                    for (String criterion : criteria) {
                        // criterion为null或""跳过
src/main/webapp/js/moralmap.js
@@ -120,7 +120,7 @@
        var startZoom = moralMap.startZoom();
        //刷新key防止延迟加载
        //       var key = moralMap.lazyKeyer();
        var confine = moralMap.getZooMConfine();
        var confine = moralMap.getZoomConfine();
        if(endZoom > startZoom) {
            //放大超过边界
            if(endZoom >= confine && startZoom <= confine) {
@@ -157,13 +157,13 @@
        if(!!baiduBounds){
            this.northeastLng = baiduBounds.xl.lng;//东北角经度,大一点
            this.northeastLat = baiduBounds.xl.lat;//东北角纬度,大一点
            this.southwestLng = baiduBounds.Ol.lng;//西北角经度坐标,小一点
            this.southwestLat = baiduBounds.Ol.lat;//西北角纬度坐标,小一点
            this.southwestLng = baiduBounds.Ol.lng;//西南角经度坐标,小一点
            this.southwestLat = baiduBounds.Ol.lat;//西南角经度坐标,小一点
        }else{
            this.northeastLng = null;//东北角经度,大一点
            this.northeastLat = null;//东北角纬度,大一点
            this.southwestLng = null;//西北角经度坐标,小一点
            this.southwestLat = null;//西北角纬度坐标,小一点
            this.southwestLng = null;//西南角经度坐标,小一点
            this.southwestLat = null;//西南角经度坐标,小一点
        }
    }
    moralMap.getBounds = function() {
@@ -208,9 +208,10 @@
    }
    moralMap.addOverlay = function(overlay) {
        if(overlay.getMap() != baiduMap) {
            setTimeout(function(){
            // setTimeout(function(){
                baiduMap.addOverlay.call(baiduMap, overlay);
            },10);
            // },10);
            baiduMap.addOverlay.call(baiduMap, overlay);
        }
    }
    moralMap.addOverlays = function(overlays) {
@@ -221,8 +222,16 @@
        }
    }
    moralMap.removeOverlay = function() {
    moralMap.removeOverlay = function(overlay) {
        // baiduMap.removeOverlay(overlay);
        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)
@@ -828,9 +837,12 @@
            delete moralMap['_equipments'];
        }
    }
    moralMap.getZooMConfine = function() {
    moralMap.getZoomConfine = function() {
        return 18;
    }
    moralMap.getZoom = function() {
        return baiduMap.getZoom();
    }
    moralMap.getHorizonMarkers = function(isShow) {
        var bounds = moralMap.getBounds();
        var oldMarkerList;
src/main/webapp/js/utils.js
@@ -1,4 +1,4 @@
//paraName 等找参数的名称
//paraName 参数的名称
function getUrlParam(paraName) {
    var url = document.location.toString();
    var arrObj = url.split("?");
src/main/webapp/view/map.jsp
@@ -437,10 +437,55 @@
            paramMap["Le"]=  bounds.southwestLng;//西北角经度坐标,小一点
            loadLazy("getMonitorpointList",paramMap,addOverMpoints);
            startRefreshPage();
            showGrid();
    });
    //地图加载完成后 加载监控点,速度慢
    moralMap.addEventListener("tilesloaded", function(type, target) {
        showGrid();
    });
    //map为地图对象
    // TODO 临时
    function bs() {
        var bs = moralMap.getBounds();  //获取当前地图范围的经纬度
        // var bssw = bs.getSouthWest();        //获取西南角的经纬度(左下端点)
        // var bsne = bs.getNorthEast();        //获取东北角的经纬度(右上端点)
        return { 'x1': bs.southwestLng, 'y1': bs.southwestLat, 'x2': bs.northeastLng, 'y2': bs.northeastLat };
    }
    /**
     * 显示网格
     */
    // TODO 临时
    function showGrid(){
        var isShowGrid = getUrlParam("isShowGrid");
        if(!isShowGrid||moralMap.getZoom()<15){
           return;
        }
        var XY = bs();
        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) {
                //此类表示绘制一个多边形覆盖物(注意:一定要下面的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)            //网格右上端点
                ], {strokeColor:"blue", strokeWeight:2, strokeOpacity:1, fillOpacity:0.1});
                // polygon .addEventListener("click",function clickFunction(){
                //     alert("你居然敢点我");
                // });
                // moralMap.addOverlay(polygon);
                polygons.push(polygon);
            }
        }
        moralMap.addOverlays(polygons);
        if(!!showGrid.polygons){
            moralMap.removeOverlays(showGrid.polygons);
        }
        showGrid.polygons = polygons;
    }
    // 点击事件关闭 弹窗列表
    moralMap.addEventListener("click", function(type, target) {
        moralMap.closePopupbox("#popup_box");
@@ -450,7 +495,7 @@
    //地图放大缩小事件时,关闭弹窗
    moralMap.addEventListener('zoomend', function(type) {
         var endZoom = this.getZoom();
         if(endZoom>=moralMap.getZooMConfine()){//超过界限加载设备
         if(endZoom>=moralMap.getZoomConfine()){//超过界限加载设备
                 loadOverlays("get-devices",addOverEquipments);
         }else{
                loadOverlays("get-monitorpoints",addOverMpoints);
@@ -459,7 +504,7 @@
    });
    moralMap.addEventListener('moveend', function(type) {
         var endZoom = this.getZoom();
         if(endZoom>=moralMap.getZooMConfine()){//超过界限加载设备
         if(endZoom>=moralMap.getZoomConfine()){//超过界限加载设备
                 loadOverlays("get-devices",addOverEquipments);
         }else{
                loadOverlays("get-monitorpoints",addOverMpoints);