From f16045cde17854377084335c478e3cae0d08d6b8 Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期四, 15 五月 2025 14:18:38 +0800 Subject: [PATCH] change --- src/utils/water.js | 67 +++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 21 deletions(-) diff --git a/src/utils/water.js b/src/utils/water.js index 15ed4fb..22723c3 100644 --- a/src/utils/water.js +++ b/src/utils/water.js @@ -17,20 +17,34 @@ * 鍒涘缓姘翠綋妯℃嫙灞� * @param {Object} options - 鍙�夊弬鏁� * @param {number} options.interval - 姘翠綋妯℃嫙鐨勬椂闂撮棿闅旓紙鍗曚綅锛氭绉掞級 + * @param {string} options.baseUrl - 浠跨湡鏈嶅姟鍦板潃 + * @param {boolean} options.colorRender - 鏄惁鍚敤棰滆壊娓叉煋 */ export function createWaterPrimitive(options = {}) { - const { baseUrl = "/simu/c2h1dc", interval = 1000 } = options; // 榛樿 baseUrl 鍜� interval - - water = earthCtrl.simulate.createWaterSimulateLayer({ - baseUrl, // 浠跨湡鏈嶅姟 URL - interval, // 鍔ㄦ�佽缃� interval - color: new SmartEarth.Cesium.Color.fromCssColorString("#D4F2E7"), - loop: false, // 鏄惁寰幆鎾斁 - callback: timeCallback, // 鍥炶皟鍑芥暟 - }); - console.log(`Water simulation started with baseUrl: ${baseUrl}, interval: ${interval}ms`); -} + const { baseUrl = "/simu/c2h1dc", interval = 1000, colorRender = true } = options; + water = earthCtrl.simulate.createWaterSimulateLayer({ + baseUrl, + interval, + color: new SmartEarth.Cesium.Color.fromCssColorString("#D4F2E7"), + loop: false, + callback: timeCallback, + waterHeightLevels: [ + { height: 0.5, color: "#09a2dc" }, + { height: 1.0, color: "#58c196" }, + { height: 1.5, color: "#bedf74" }, + { height: 2.0, color: "#d7f06e" }, + { height: 2.5, color: "#ffe930" }, + { height: 3.0, color: "#fdd10a" }, + { height: 4.0, color: "#feb652" }, + { height: 5.0, color: "#fd7f06" }, + { height: 10.0, color: "#fe2b07" }, + ], + colorRender, // 鎺у埗鏄惁鍚敤棰滆壊娓叉煋 + }); + + console.log(`Water simulation started with baseUrl: ${baseUrl}, interval: ${interval}ms, colorRender: ${colorRender}`); +} /** * 鍒濆鍖栨按浣撴ā鎷熻鍥� */ @@ -77,28 +91,39 @@ /** * 璺宠浆鍒版煇涓椂闂寸偣鐨勬按闈㈢姸鎬� + * @param {number} closestIndex - 鐩爣鏃堕棿鎴崇储寮� */ export function setTimeForWaterSimulation(closestIndex) { - console.log(closestIndex,'index'); - if (water) { - const imageList = water.getTimeList(); // 鑾峰彇鎵�鏈夊彲鐢ㄦ椂闂存埑 - if (imageList.length === 0) { + const imageList = water.getTimeList(); + + if (!imageList.length) { console.warn("No timestamps available for water simulation."); return; } - const idx = Math.floor(Math.random() * imageList.length); // 闅忔満閫夋嫨涓�涓椂闂存埑 - console.log( - `Jumping to timestamp: count:[${imageList.length}], index:[${idx}]` - ); - - water.setTime(imageList[closestIndex]); // 璁剧疆鏃堕棿鎴筹紝璺宠浆鍒板搴旀椂鍒� + + const idx = Math.floor(Math.random() * imageList.length); + console.log(`Jumping to timestamp: count:[${imageList.length}], index:[${closestIndex}]`); + water.setTime(imageList[closestIndex]); } else { console.warn("No water simulation to set time for."); } } /** + * 璁剧疆鎴栧叧闂鑹叉覆鏌� + * @param {boolean} enabled + */ +export function toggleWaterColorRender(enabled) { + if (water) { + water.colorRender = enabled; + console.log(`Water color render set to: ${enabled}`); + } else { + console.warn("No water simulation to toggle color rendering."); + } +} + +/** * 鏃堕棿鎴冲洖璋冨嚱鏁� * @param {number} timeStamp - 褰撳墠鏃堕棿鎴� */ -- Gitblit v1.9.3