From 62aba1d99a88553d4b8a7e750225a228c3fc3892 Mon Sep 17 00:00:00 2001
From: wangjuncheng <1>
Date: 星期四, 19 六月 2025 14:01:18 +0800
Subject: [PATCH] 箭头

---
 src/utils/water.js |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/src/utils/water.js b/src/utils/water.js
index e30f7c1..745eedf 100644
--- a/src/utils/water.js
+++ b/src/utils/water.js
@@ -10,6 +10,7 @@
  */
 export function destoryWaterPrimitive() {
   if (water) {
+    enableWaterArrowFlow(false);
     water.destroy();
     water = null;
     console.log("Water simulation destroyed.");
@@ -23,25 +24,32 @@
  * @param {string} options.baseUrl - 浠跨湡鏈嶅姟鍦板潃
  * @param {boolean} options.colorRender - 鏄惁鍚敤棰滆壊娓叉煋
  */
-export function createWaterPrimitive(options = {}) {
+export async function createWaterPrimitive(options = {}) {
   const {
     baseUrl = "/simu/c2h1dc",
     interval = 1000,
     colorRender = true,
-    minFlowRate = 0.1,   // 鏂板鍙傛暟
-    maxFlowRate = 12     // 鏂板鍙傛暟
+    minFlowRate = 0.1, // 鏂板鍙傛暟
+    maxFlowRate = 12, // 鏂板鍙傛暟
   } = options;
 
   // 瀹氫箟姘存繁棰滆壊鏄犲皠鐨勮壊鏍�
   const colorStops = [
-    "#09a2dc", "#58c196", "#bedf74", "#d7f06e",
-    "#ffe930", "#fdd10a", "#feb652", "#fd7f06",
-    "#fe2b07", "#4d0a08"
+    "#09a2dc",
+    "#58c196",
+    "#bedf74",
+    "#d7f06e",
+    "#ffe930",
+    "#fdd10a",
+    "#feb652",
+    "#fd7f06",
+    "#fe2b07",
+    "#4d0a08",
   ];
 
   const levelCount = colorStops.length;
-  const minAllowed = 0.01; // 鏈�灏忓厑璁稿��
-  const threshold = 1;     // 灏忓�间笌澶у�煎垎鐣岀偣
+  const minAllowed = 0.005; // 鏈�灏忓厑璁稿��
+  const threshold = 1; // 灏忓�间笌澶у�煎垎鐣岀偣
 
   let effectiveMin = Math.max(minFlowRate, minAllowed); // 鏈�灏忎笉鑳藉皬浜� 0.01
 
@@ -66,15 +74,14 @@
 
     waterHeightLevels.push({
       height: parseFloat(height.toFixed(2)), // 淇濈暀涓や綅灏忔暟
-      color: colorStops[i]
+      color: colorStops[i],
     });
   }
 
   waterLegendData.value = waterHeightLevels;
-  console.log(waterLegendData.value, '鍥句緥鏁版嵁');
+  console.log(waterLegendData.value, "鍥句緥鏁版嵁");
 
-  // 鍒涘缓鍥惧眰
-  water = earthCtrl.simulate.createWaterSimulateLayer({
+  water = await earthCtrl.simulate.createWaterSimulateLayer({
     baseUrl,
     interval,
     color: SmartEarth.Cesium.Color.fromCssColorString("#D4F2E7"),
@@ -83,9 +90,10 @@
     alphaByDepth: -0.3,
     waterHeightLevels,
     colorRender,
-    sizeIndex:0,
+    sizeIndex: 0,
   });
-
+  enableWaterArrowFlow(true);
+  toggleWaterShadow(false);
   console.log(
     `浠跨湡妯℃嫙鍙傛暟锛氳姹傝矾寰� ${baseUrl}, 甯ч棿闂撮殧 ${interval}ms, 鏄惁寮�鍚笓棰樻覆鏌� ${colorRender}`
   );
@@ -168,8 +176,45 @@
     console.warn("No water simulation to toggle color rendering.");
   }
 }
+// ==================銆怱DK 鏂板鍔熻兘 - 绠ご娴佸悜 & 闃村奖鎺у埗銆�==================
 
 /**
+ * 寮�鍚�/鍏抽棴绠ご娴佸悜鍔ㄧ敾
+ * @param {boolean} enabled - 鏄惁鍚敤绠ご鍔ㄧ敾
+ */
+export function enableWaterArrowFlow(enabled) {
+  if (water) {
+    water.arrowEnabled = enabled; // 鍋囪 SDK 鏀寔姝ゅ睘鎬�
+    console.log(`绠ご娴佸悜鍔ㄧ敾宸�${enabled ? "寮�鍚�" : "鍏抽棴"}`);
+  } else {
+    console.warn("鏈壘鍒版按浣撴ā鎷熷浘灞傦紝璇峰厛鍚姩娲按妯℃嫙");
+  }
+}
+
+/**
+ * 寮�鍚�/鍏抽棴鍏ㄥ眬闃村奖鏁堟灉
+ * @param {boolean} enabled - 鏄惁鍚敤闃村奖
+ */
+export function toggleWaterShadow(enabled) {
+  if (!viewer) {
+    console.warn("Cesium Viewer 鏈垵濮嬪寲锛屾棤娉曡缃槾褰�");
+    return;
+  }
+
+  try {
+    earthCtrl.shadows = enabled;
+    if (enabled) {
+      earthCtrl.shadowMap.maximumDistance = 10000.0; //鏈�澶ц窛绂�
+      earthCtrl.shadowMap.pointLightRadius = 50.0; //鐐瑰厜婧愬崐寰�
+    }
+    console.log(`闃村奖鏁堟灉宸�${enabled ? "寮�鍚�" : "鍏抽棴"}`);
+  } catch (error) {
+    console.error("璁剧疆闃村奖澶辫触:", error);
+  }
+}
+
+// ==================================================
+/**
  * 鏃堕棿鎴冲洖璋冨嚱鏁�
  * @param {number} timeStamp - 褰撳墠鏃堕棿鎴�
  */

--
Gitblit v1.9.3