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