From 2ee0ab96f3edfbf8aefc9e2c5d5f73332411eb99 Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期四, 17 四月 2025 16:30:09 +0800 Subject: [PATCH] change --- src/utils/tools.js | 88 ++++++++++++++++++++++++++++++++------------ 1 files changed, 64 insertions(+), 24 deletions(-) diff --git a/src/utils/tools.js b/src/utils/tools.js index 9b23612..6f0a779 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -2,6 +2,8 @@ // import cameraIcon from "../assets/images/base/瑙嗛娴嬬偣.png" // import cameraIconSel from "../assets/images/base/瑙嗛娴嬬偣sel.png" import { ElLoading, ElMessage } from "element-plus"; +import RainEffect from './rain' +import SnowEffect from './snow' let layerIsOpen = false; const Cesium = SmartEarth.Cesium; const colorAll = { @@ -19,10 +21,71 @@ analysisDXPMRes: [], slopeArrow: null, elevationTool: null, + rainEffect: null, + snowEffect: null, // 鏂板闆晥鏋滃疄渚� init(earthCtrl) { this.earthCtrl = earthCtrl; return this; + }, + hexToColor(hexColor) { + const hex = hexColor.replace('#', ''); + const r = parseInt(hex.substring(0, 2), 16) / 255; + const g = parseInt(hex.substring(2, 4), 16) / 255; + const b = parseInt(hex.substring(4, 6), 16) / 255; + return new Cesium.Color(r, g, b, 1.0); + }, + // 娓呴櫎澶╂皵鐗规晥 + delRain(){ + if (this.rainEffect) { + this.rainEffect.destroy() + this.rainEffect = null + } + }, + delSnow(){ + if (this.snowEffect) { + this.snowEffect.destroy(); + this.snowEffect = null; + } + }, + // 闆ㄥぉ妯℃嫙 + toggleRain(option, show) { + console.log(option, 'option') + // 鍏堥攢姣佹棫瀹炰緥 + if (this.rainEffect) { + this.rainEffect.destroy() + this.rainEffect = null + } + this.rainEffect = new RainEffect(earthCtrl.viewer, { + tiltAngle: -0.2, //鍊炬枩瑙掑害 + rainSize: option.rainSize, // 闆ㄧ殑澶у皬 + rainSpeed: option.rainSpeed, // 闆ㄧ殑閫熷害 + color: this.hexToColor(option.rainColor) // 闆ㄧ殑棰滆壊 + }) + }, + // 闆ぉ妯℃嫙 + toggleSnow(option = {}, show = true) { + console.log(option, 'option'); + const defaultOption = { + snowSize: 0.02, // 榛樿闆殑澶у皬 + snowSpeed: 100.0, // 榛樿闆殑閫熷害 + snowColor: "#ffffff", // 榛樿棰滆壊锛氱櫧鑹� + }; + option = { ...defaultOption, ...option }; + if (this.snowEffect) { + this.snowEffect.destroy(); + this.snowEffect = null; + } + this.snowEffect = new SnowEffect(earthCtrl.viewer, { + snowSize: option.snowSize, // 闆殑澶у皬 + snowSpeed: option.snowSpeed, // 闆殑閫熷害 + snowColor: this.hexToColor(option.snowColor), // 闆殑棰滆壊 + }); + + // 鎺у埗鏄剧ず/闅愯棌 + if (this.snowEffect) { + this.snowEffect.show(show); + } }, // 鍧″害鍒嗘瀽 pdfx(option) { @@ -69,7 +132,7 @@ this.slopeArrow.setPositions(polygonPosition); this.slopeArrow.setSlopeType(1); this.slopeArrow.setRegionEnabled(true); - console.log(this.slopeArrow,'slope') + console.log(this.slopeArrow, 'slope') }); }, // 鍏抽棴鍧″悜绠ご @@ -78,29 +141,6 @@ this.slopeArrow.setSlopeType(0); } }, - - // 澶╂皵 - toggleRain(weather = "rain", show) { - if (show) { - earthCtrl.environment.showEffect(weather); - } else { - earthCtrl.environment.disableEffect(weather); - } - }, - toggleSnow(weather = "snow", show) { - if (show) { - earthCtrl.environment.showEffect(weather); - } else { - let snowValue = { - test1: 2, - test2: 1.0, - test3: 0.5, - test4: 0.5, - }; - earthCtrl.environment.disableEffect(weather); - } - }, - // 鏍囩粯 CreateLabel(pic, show) { if (show) { -- Gitblit v1.9.3