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