赣州市洪水风险预警系统三维版本
xiebin
2023-02-21 67d3f679bad4d67a9dcf396fac97368a72f02910
修改洪水淹没分析水位计算方式
1 files modified
46 ■■■■ changed files
widgets/FloodAnalysis/Widget.js 46 ●●●● patch | view | raw | blame | history
widgets/FloodAnalysis/Widget.js
@@ -63,7 +63,8 @@
            waterlineSelectName: "http://localhost:82/blade-ycreal/waterline/selectName",
            childpage: "http://localhost:82/blade-ycreal/water/childpage",
            getCzByGlCodeByGlQdj: "http://localhost:82/blade-ycreal/waterline/getCzByGlCodeByGlQdj",
            getHistoryList: "http://localhost:82/blade-ycreal/inundationResult/list",
            getRealTimeWaterByhdId: "http://localhost:82/blade-ycreal/waterline/getRealTimeWaterByhdId",
            getHistoryList: "http://192.168.0.207:82/blade-ycreal/inundationResult/list",
            saveHistoryData: "http://localhost:82/blade-ycreal/inundationResult/save",
            getCoordinatesMinQdj: "http://localhost:82/blade-ycreal/water/getCoordinatesMinQdj",
        },
@@ -174,8 +175,8 @@
            })
            //水位输入事件
            $('#sw-input').on("input", function () {
                self.getYcSub()
            $('#sw-input').on("input", function (e,v) {
                // self.getYcSub($('#sw-input').val())
            })
            //河段选择框改变事件
@@ -186,8 +187,12 @@
                $('#glzd').val(selected.stnm)
                $('#qdj').val(selected.gl_qdj.substring(0,selected.gl_qdj.length - 2))
                self.currentHd = selected
                // 获取水面线数据
                self.getSmxData(selected.river_code, selected.default_smx)
                // 获取最近起点距数据
                self.getMin(selected.default_smx,selected.gl_qdj)
                // 获取实时水位
                if (self.waterEntity)
                    self.map.entities.remove(self.waterEntity)
                //地图定位
@@ -365,6 +370,7 @@
                        $('#flood-tbody').html("")
                        $('#analysis-pagination').hide()
                    }
                    data.forEach(e => {
                        self.smxSelect.append("<option value=" + e.smxcode + ">" + e.waterline + "</option>");
@@ -531,12 +537,12 @@
        },
        //预测水位计算
        getYcSub() {
        getYcSub(val) {
            const self = this
            self.analysisTableList.forEach(e => {
                e.lng = Number(e.lng).toFixed(4)
                e.lat = Number(e.lat).toFixed(4)
                e.sw = self.calculateSw(e.water, $('#sw-input').val())
                e.sw = self.calculateSw(e.water, val)
                e.water = Number(e.water).toFixed(2)
                e.sw = Number(e.sw).toFixed(2)
@@ -545,28 +551,44 @@
            self.loadPagination(self.analysisTableList, "analysis-pagination")
        },
        //实时水位计算
        getSub(hdid, smxcode) {
        //减法函数
        accSub(arg1,arg2){
            var r1,r2,m,n;
            try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
            m=Math.pow(10,Math.max(r1,r2));
            //last modify by deeka
            //动态控制精度长度
            n=(r1>=r2)?r1:r2;
            return ((arg1*m-arg2*m)/m).toFixed(n);
        },
        //获取实时水位
        getRealTimeWaterByhdId(hdid) {
            const self = this
            // 实时 需要请求服务器获取实时水位数据
            if ($('input[name=middleRadio]:checked').val() == 'realtime') {
                $.ajax({
                    url: self.url.getCzByGlCodeByGlQdj,
                    url: self.url.getRealTimeWaterByhdId,
                    type: 'get',
                    dataType: 'json',
                    jsonp: 'callback',
                    jsonpCallback: 'data',
                    data: {
                        hdId: hdid,
                        smxcode: smxcode
                        hdId: hdid
                    },
                    success: function (res) {
                        if (res.code == 200) {
                            let sub = res.data
                            $('#sw-input').val(sub)
                            //获取计算的差值    实时的水位-根据获取的最近水面点的信息计算
                            let chazhi = 0
                            if (sub > 0) {
                                chazhi = self.accSub(sub,self.currentNearPoint.water)
                            }
                            self.analysisTableList.forEach(e => {
                                e.lng = Number(e.lng).toFixed(4)
                                e.lat = Number(e.lat).toFixed(4)
                                e.sw = self.calculateSw(e.water, sub)
                                e.sw = self.calculateSw(e.water, chazhi)
                                e.water = Number(e.water).toFixed(2)
                                e.sw = Number(e.sw).toFixed(2)
@@ -577,7 +599,7 @@
                    }
                });
            } else {
                self.getYcSub()
                // self.getYcSub($('#sw-input').val())
            }
        },