| | |
| | | import { cartesianToXY } from "@/utils/map" |
| | | let water = null |
| | | import { cartesianToXY } from "@/utils/map"; |
| | | let water = null; |
| | | export function destoryWaterPrimitive() { |
| | | if (water) { |
| | | water.destroy() |
| | | water = null |
| | | } |
| | | if (water) { |
| | | water.destroy(); |
| | | water = null; |
| | | } |
| | | } |
| | | // export function createWaterPrimitive(rainfall) { |
| | | // if (water) { |
| | | // water.rainfall = rainfall; |
| | | // return; |
| | | // } |
| | | // // let positionArray = [ |
| | | // // { |
| | | // // x: -2172418.4199554003, |
| | | // // y: 4339741.174232391, |
| | | // // z: 4124707.9687457774, |
| | | // // }, |
| | | // // { |
| | | // // x: -2173054.1197314346, |
| | | // // y: 4339420.091643301, |
| | | // // z: 4124710.896091218, |
| | | // // }, |
| | | // // { |
| | | // // x: -2172832.10576698, |
| | | // // y: 4338665.615224519, |
| | | // // z: 4125615.341361447, |
| | | // // }, |
| | | // // { |
| | | // // x: -2171464.714295606, |
| | | // // y: 4337884.628113293, |
| | | // // z: 4127145.919793182, |
| | | // // }, |
| | | // // { |
| | | // // x: -2170738.824348358, |
| | | // // y: 4338621.865525843, |
| | | // // z: 4126755.442367371, |
| | | // // }, |
| | | // // { |
| | | // // x: -2171270.181257778, |
| | | // // y: 4338967.11477535, |
| | | // // z: 4126117.1692552743, |
| | | // // }, |
| | | // // { |
| | | // // x: -2171120.444962885, |
| | | // // y: 4339310.237335228, |
| | | // // z: 4125837.0031219805, |
| | | // // }, |
| | | // // { |
| | | // // x: -2171911.8873938583, |
| | | // // y: 4339707.853907823, |
| | | // // z: 4125007.7462886167, |
| | | // // }, |
| | | // // { |
| | | // // x: -2171934.494218292, |
| | | // // y: 4339685.285760623, |
| | | // // z: 4125019.506657141, |
| | | // // }, |
| | | // // ]; |
| | | // // const coordinates = []; |
| | | // // positionArray.forEach((item) => { |
| | | // // const result = cartesianToXY(item); |
| | | // // coordinates.push(result.longitude, result.latitude, result.height); |
| | | // // }); |
| | | // // water = earthCtrl.analysis.createWaterSimulateGPU({ |
| | | // // //isDraw: true, // 是否绘制水面 |
| | | // // height: -5, |
| | | // // maxHeight: 2000, |
| | | // // coordinates: coordinates, |
| | | // // // coordinates: [ |
| | | // // // 116.57628914253382, 40.5654461866556, 0, 116.57628914253382, 40.552898897029046, 0, |
| | | // // // 116.60855621443835, 40.552898897029046, 0, 116.60855621443835, 40.5654461866556, 0, |
| | | // // // ], |
| | | // // // coordinates: [ |
| | | // // // 116.568865, 40.590729, 0, 116.568865, 40.533505, 0, |
| | | // // // 116.608505, 40.533505, 0, 116.608505, 40.590729, 0, |
| | | // // // ], |
| | | // // }) |
| | | // water = earthCtrl.simulate.createWaterSimulateLayer({ |
| | | // // baseUrl: "http://192.168.10.187:81/20250412", |
| | | // // baseUrl: "http://192.168.56.107:8088/simu/c2h1d", //仿真服务url |
| | | // baseUrl: "/simu/c2h1dc", //仿真服务url |
| | | // interval: 125, //两帧请求的时间间隔,单位ms |
| | | // // color: new SmartEarth.Cesium.Color.fromCssColorString('#f4a460'), |
| | | // //清水色 |
| | | // color: new SmartEarth.Cesium.Color.fromCssColorString("#D4F2E7"), |
| | | // //浑水色 |
| | | // // color: new SmartEarth.Cesium.Color.fromCssColorString('#DEB887'), |
| | | // }); |
| | | // console.log("water", water); |
| | | |
| | | export function createWaterPrimitive(rainfall) { |
| | | if (water) { |
| | | water.rainfall = rainfall |
| | | return |
| | | } |
| | | let positionArray = [ |
| | | { |
| | | x: -2172418.4199554003, |
| | | y: 4339741.174232391, |
| | | z: 4124707.9687457774, |
| | | }, |
| | | { |
| | | x: -2173054.1197314346, |
| | | y: 4339420.091643301, |
| | | z: 4124710.896091218, |
| | | }, |
| | | { |
| | | x: -2172832.10576698, |
| | | y: 4338665.615224519, |
| | | z: 4125615.341361447, |
| | | }, |
| | | { |
| | | x: -2171464.714295606, |
| | | y: 4337884.628113293, |
| | | z: 4127145.919793182, |
| | | }, |
| | | { |
| | | x: -2170738.824348358, |
| | | y: 4338621.865525843, |
| | | z: 4126755.442367371, |
| | | }, |
| | | { |
| | | x: -2171270.181257778, |
| | | y: 4338967.11477535, |
| | | z: 4126117.1692552743, |
| | | }, |
| | | { |
| | | x: -2171120.444962885, |
| | | y: 4339310.237335228, |
| | | z: 4125837.0031219805, |
| | | }, |
| | | { |
| | | x: -2171911.8873938583, |
| | | y: 4339707.853907823, |
| | | z: 4125007.7462886167, |
| | | }, |
| | | { |
| | | x: -2171934.494218292, |
| | | y: 4339685.285760623, |
| | | z: 4125019.506657141, |
| | | }, |
| | | ] |
| | | const coordinates = [] |
| | | positionArray.forEach(item => { |
| | | const result = cartesianToXY(item) |
| | | coordinates.push(result.longitude, result.latitude, result.height) |
| | | }) |
| | | water = earthCtrl.analysis.createWaterSimulateGPU({ |
| | | //isDraw: true, // 是否绘制水面 |
| | | height: -5, |
| | | maxHeight: 2000, |
| | | coordinates: coordinates, |
| | | // coordinates: [ |
| | | // 116.57628914253382, 40.5654461866556, 0, 116.57628914253382, 40.552898897029046, 0, |
| | | // 116.60855621443835, 40.552898897029046, 0, 116.60855621443835, 40.5654461866556, 0, |
| | | // ], |
| | | // coordinates: [ |
| | | // 116.568865, 40.590729, 0, 116.568865, 40.533505, 0, |
| | | // 116.608505, 40.533505, 0, 116.608505, 40.590729, 0, |
| | | // ], |
| | | }) |
| | | console.log("water", water) |
| | | |
| | | // water.rainfall = 0.0001; // 调节雨量 |
| | | // water.rainPointMax = 2.0; // 渗水阈值 |
| | | // water.attenuation = 0.995; // 衰减 |
| | | // water.strenght = 0.25 // 水流强度 |
| | | } |
| | | |
| | | // // water.rainfall = 0.0001; // 调节雨量 |
| | | // // water.rainPointMax = 2.0; // 渗水阈值 |
| | | // // water.attenuation = 0.995; // 衰减 |
| | | // // water.strenght = 0.25 // 水流强度 |
| | | // } |
| | | export function createWaterPrimitive(options = {}) { |
| | | const { interval = 1000 } = options; // 默认 interval 为 1000 |
| | | |
| | | water = earthCtrl.simulate.createWaterSimulateLayer({ |
| | | baseUrl: "/simu/c2h1dc", // 仿真服务url |
| | | interval, // 动态设置 interval |
| | | color: new SmartEarth.Cesium.Color.fromCssColorString("#D4F2E7"), |
| | | }); |
| | | console.log(`Water simulation started with interval: ${interval}ms`); |
| | | } |
| | | export function initeWaterPrimitiveView() { |
| | | let view = { |
| | | destination: { |
| | | x: -2173603.2294639186, |
| | | y: 4338938.333124211, |
| | | z: 4128027.401463165, |
| | | }, |
| | | orientation: { |
| | | pitch: -0.6208443477400212, |
| | | roll: 0.000049799989940702005, |
| | | heading: 3.6294612473618644, |
| | | }, |
| | | } |
| | | viewer.scene.camera.flyTo(view) |
| | | let view = { |
| | | destination: { |
| | | x: -2173603.2294639186, |
| | | y: 4338938.333124211, |
| | | z: 4128027.401463165, |
| | | }, |
| | | orientation: { |
| | | pitch: -0.6208443477400212, |
| | | roll: 0.000049799989940702005, |
| | | heading: 3.6294612473618644, |
| | | }, |
| | | }; |
| | | viewer.scene.camera.flyTo(view); |
| | | } |
| | | |