From 67d3f679bad4d67a9dcf396fac97368a72f02910 Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Tue, 21 Feb 2023 13:36:36 +0800
Subject: [PATCH] 修改洪水淹没分析水位计算方式
---
widgets/FloodAnalysis/Widget.js | 46 ++++++++++++++++++++++++++++++++++------------
1 files changed, 34 insertions(+), 12 deletions(-)
diff --git a/widgets/FloodAnalysis/Widget.js b/widgets/FloodAnalysis/Widget.js
index 1fa5a18..c32ad52 100644
--- a/widgets/FloodAnalysis/Widget.js
+++ b/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())
}
},
--
Gitblit v1.9.3