From 66f4a9b4de3223e4de244a1b22ecb54d51119584 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 18 Feb 2023 14:22:57 +0800
Subject: [PATCH] 洪水淹没-添加历史记录保存功能
---
widgets/FloodAnalysis/Widget.js | 180 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 100 insertions(+), 80 deletions(-)
diff --git a/widgets/FloodAnalysis/Widget.js b/widgets/FloodAnalysis/Widget.js
index 1c9e71b..0811815 100644
--- a/widgets/FloodAnalysis/Widget.js
+++ b/widgets/FloodAnalysis/Widget.js
@@ -36,6 +36,8 @@
smxSelect: null,
//河段下拉列表
hdDataList: [],
+ //水面线下拉列表
+ smxDataList:[],
//洪水分析表格数据
analysisTableList: [],
dgridSelectEvent:null,
@@ -59,8 +61,8 @@
waterlineSelectName: "http://192.168.0.207:82/blade-ycreal/waterline/selectName",
childpage: "http://192.168.0.207:82/blade-ycreal/water/childpage",
getCzByGlCodeByGlQdj: "http://192.168.0.207:82/blade-ycreal/waterline/getCzByGlCodeByGlQdj",
- getHistoryList: "",
- saveHistoryData: "",
+ getHistoryList: "http://192.168.0.103:82/blade-ycreal/inundationResult/list",
+ saveHistoryData: "http://192.168.0.103:82/blade-ycreal/inundationResult/save",
getCoordinatesMinQdj: "http://192.168.0.207:82/blade-ycreal/water/getCoordinatesMinQdj",
},
evaluateData: [
@@ -242,6 +244,9 @@
if (this.drawingPolyline)
this.map.entities.remove(this.drawingPolyline);
+ if (this.waterEntity)
+ this.map.entities.remove(this.waterEntity)
+
this.map.scene.globe.baseColor = Cesium.Color.WHITE;
$('#hd-select option').remove()
@@ -353,6 +358,7 @@
},
success: function (res) {
let data = res.data
+ self.smxDataList = data
self.smxSelect.find("option").remove();//添加新值 删除旧值
if (data.length <= 0) {
$('#flood-tbody').html("")
@@ -390,44 +396,7 @@
success: function (res) {
if (res.code == 200) {
let data = res.data.records
- self.deleteEntities(self.pointEntities)
- // 水面线连线
- let cartesians = []
- for (let i = 0; i < data.length; i++) {
- cartesians.push(new Cesium.Cartesian3.fromDegrees(data[i].lng, data[i].lat,data[i].sw))
- let temp = self.map.entities.add({
- position: Cesium.Cartesian3.fromDegrees(data[i].lng, data[i].lat,data[i].sw),
- point: {
- color: Cesium.Color.RED,
- pixelSize: 11,
- //防止地形遮挡住点
- disableDepthTestDistance: Number.POSITIVE_INFINITY,
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
- },
- });
- // 清空使用
- self.pointEntities.push(temp)
-
- // if (data[i].location.length>12){
- // data[i].location = data[i].location.substring(0,12)+"..."
- // }
-
- }
-
- // 先清空 后画线
- if (self.drawingPolyline)
- self.map.entities.remove(self.drawingPolyline);
- let lineOpts = {
- polyline: {
- positions: cartesians,
- clampToGround: true,
- width: 3,
- color: "#279a9a"
- }
- };
- // 画线
- self.drawingPolyline = self.map.entities.add(lineOpts);
-
+ self.createPointAndLine(data,self.pointEntities)
self.analysisTableList = data
self.getSub(self.currentHd.id, self.currentSmxcode)
}
@@ -435,28 +404,68 @@
});
},
+ //创建点线
+ createPointAndLine(data,pointEntities){
+ this.deleteEntities(pointEntities)
+ // 水面线连线
+ let cartesians = []
+ for (let i = 0; i < data.length; i++) {
+ cartesians.push(new Cesium.Cartesian3.fromDegrees(data[i].lng, data[i].lat,data[i].sw))
+ let temp = this.map.entities.add({
+ position: Cesium.Cartesian3.fromDegrees(data[i].lng, data[i].lat,data[i].sw),
+ point: {
+ color: Cesium.Color.RED,
+ pixelSize: 11,
+ //防止地形遮挡住点
+ disableDepthTestDistance: Number.POSITIVE_INFINITY,
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
+ },
+ });
+ // 清空使用
+ pointEntities.push(temp)
+ }
+
+ // 先清空 后画线
+ if (this.drawingPolyline){
+ this.map.entities.remove(this.drawingPolyline);
+ }
+ let lineOpts = {
+ polyline: {
+ positions: cartesians,
+ clampToGround: true,
+ width: 3,
+ color: "#279a9a"
+ }
+ };
+ // 画线
+ this.drawingPolyline = this.map.entities.add(lineOpts);
+
+ },
+
//获取历史风险图数据列表
getHistoryList() {
const self = this
- // $.ajax({
- // url: self.url.getHistoryList,
- // type: 'get',
- // dataType: 'json',
- // jsonp: 'callback',
- // jsonpCallback: 'data',
- // data: {
- // name: "",
- // },
- // success: function (res) {
- // if (res.code == 200) {
- // console.log(res)
- // let data = res.data.records
- //
- // }
- // }
- // });
- let data = self.historyTableList
- self.loadPagination(data,"history-pagination")
+ $.ajax({
+ url: self.url.getHistoryList,
+ type: 'get',
+ dataType: 'json',
+ jsonp: 'callback',
+ jsonpCallback: 'data',
+ data: {
+ name: "",
+ pageSize:999999999,
+ },
+ success: function (res) {
+ if (res.code == 200) {
+ let data = res.data.records
+ data.forEach(e=>{
+ e.smxVal = JSON.parse(e.smxVal)
+ })
+ self.historyTableList = data
+ self.loadPagination(data,"history-pagination")
+ }
+ }
+ });
},
/**
@@ -512,21 +521,6 @@
},
/**
- * 加载历史风险表格
- * @param listData 需要加载的数据
- */
- loadHistoryTable(listData) {
- var table = ""
- listData.forEach(e => {
- table += '<tr>' +
- '<td><div><input type="radio" name="tableRadio" value=' + e.id + '></div></td>' +
- '<td><div>' + e.name + '</div></td>' +
- '</tr>'
- })
- $('#flood-history-tbody').html(table)
- },
-
- /**
* 计算水位
* @param waterline 水面线高度
* @param number 差值
@@ -535,6 +529,7 @@
let sw = this.floatAdd(Number(waterline), Number(sub))
return sw
},
+
//预测水位计算
getYcSub() {
const self = this
@@ -549,6 +544,7 @@
self.loadPagination(self.analysisTableList, "analysis-pagination")
},
+
//实时水位计算
getSub(hdid, smxcode) {
const self = this
@@ -611,7 +607,7 @@
saveHistoryData() {
const self = this
$.ajax({
- url: self.url.getCzByGlCodeByGlQdj,
+ url: self.url.saveHistoryData,
type: 'get',
dataType: 'json',
jsonp: 'callback',
@@ -653,9 +649,22 @@
//评估分析弹窗
evaluatePopup() {
var self = this
- let data = this.evaluateData
- let dataStr = JSON.stringify(data)
- let hdStr = JSON.stringify(this.currentHd)
+ let selectSmx = this.smxDataList.filter(e=>{
+ return e.smxcode == this.currentSmxcode
+ })
+
+ let parentData = {}
+
+ parentData.data = this.evaluateData
+ parentData.hd = this.currentHd
+ parentData.smx = selectSmx[0]
+ parentData.sw = $('#sw-input').val()
+ parentData.point = this.analysisTableList
+ // let data = this.evaluateData
+ // let dataStr = JSON.stringify(data)
+ // let hdStr = JSON.stringify(this.currentHd)
+
+ // let smxStr = JSON.stringify(selectSmx[0])
var url = './corelib/common/popup/evaluateAnalysis.html'
var top = ($(window).height() - 600) / 2;
@@ -667,7 +676,7 @@
area: ['1500px', '700px'],
skin: 'floodAnalysis',
offset: 'auto',
- content: url + "?data=" + encodeURIComponent(dataStr) + "&hd=" + encodeURIComponent(hdStr),//使用encodeURIComponent转码,避免中文字符乱码,避免url截取错误
+ content: url + "?parentData=" + encodeURIComponent(JSON.stringify(parentData)),//使用encodeURIComponent转码,避免中文字符乱码,避免url截取错误
id: "floodAnalysisLayer",
closeBtn: 1,
});
@@ -742,10 +751,21 @@
this.dgridSelectEvent = grid.on("dgrid-select", function(evt){
//获取行数据
let data = evt.rows[0].data
- console.log(data)
+
+ if (data.smxVal.point.length>0){
+ self.createPointAndLine(data.smxVal.point,self.pointEntities)
+
+ self.map.camera.flyTo({
+ destination: Cesium.Cartesian3.fromDegrees(data.lon, data.lat, 50000),
+ });
+
+ self.drawWater()
+ }
+
});
grid.renderArray(dataList);
},
+
// 洪水淹没效果
drawWater() {
//地图定位
--
Gitblit v1.9.3