fengxiang
2018-05-29 2e342d040375b2c0a353357353200a6e07c8f87e
地图相关资源
2 files modified
172 ■■■■■ changed files
src/main/webapp/js/moralmap.js 67 ●●●●● patch | view | raw | blame | history
src/main/webapp/view/map.jsp 105 ●●●● patch | view | raw | blame | history
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);
                        }
                    }
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>