wangjuncheng
2025-06-25 1190b6e0bea6f91b85b8e1b574300b18aac3e562
src/utils/water.js
@@ -1,4 +1,3 @@
import { cartesianToXY } from "@/utils/map";
import { useSimStore } from "@/store/simulation";
import { storeToRefs } from "pinia";
const simStore = useSimStore();
@@ -13,7 +12,7 @@
    enableWaterArrowFlow(false);
    water.destroy();
    water = null;
    console.log("Water simulation destroyed.");
    // console.log("Water simulation destroyed.");
  }
}
@@ -79,7 +78,8 @@
  }
  waterLegendData.value = waterHeightLevels;
  console.log(waterLegendData.value, "图例数据");
  // console.log(waterLegendData.value, "图例数据");
  water = await earthCtrl.simulate.createWaterSimulateLayer({
    baseUrl,
@@ -87,16 +87,17 @@
    color: SmartEarth.Cesium.Color.fromCssColorString("#D4F2E7"),
    loop: false,
    callback: timeCallback,
    alphaByDepth: -0.3,
    // alphaByDepth: -0.3,
    alphaByDepth: -0.8,
    waterHeightLevels,
    colorRender,
    sizeIndex: 0,
  });
  enableWaterArrowFlow(true);
  // enableWaterArrowFlow(false);
  toggleWaterShadow(false);
  console.log(
    `仿真模拟参数:请求路径 ${baseUrl}, 帧间间隔 ${interval}ms, 是否开启专题渲染 ${colorRender}`
  );
  // console.log(
  //   `仿真模拟参数:请求路径 ${baseUrl}, 帧间间隔 ${interval}ms, 是否开启专题渲染 ${colorRender}`
  // );
}
/**
 * 初始化水体模拟视图
@@ -117,14 +118,24 @@
  viewer.scene.camera.flyTo(view);
  // console.log("Camera view initialized for water simulation.");
}
/**
 * 更新水颜色
 */
export function updateWaterColor(color) {
  if (water) {
    water.color = Cesium.Color.fromCssColorString(color);
    // console.log("切换颜色为:",color);
  } else {
    console.warn("No water simulation to pause.");
  }
}
/**
 * 暂停水体模拟
 */
export function pauseWaterSimulation() {
  if (water) {
    water.pause();
    console.log("暂停仿真");
    // console.log("暂停仿真");
  } else {
    console.warn("No water simulation to pause.");
  }
@@ -136,7 +147,7 @@
export function resumeWaterSimulation() {
  if (water) {
    water.resume();
    console.log("继续仿真");
    // console.log("继续仿真");
  } else {
    console.warn("No water simulation to resume.");
  }
@@ -155,9 +166,9 @@
      return;
    }
    // const idx = Math.floor(Math.random() * imageList.length); //随机索引跳转,实际中用不到,只用作演示
    console.log(
      `Jumping to timestamp: count:[${imageList.length}], index:[${closestIndex}]`
    );
    // console.log(
    //   `Jumping to timestamp: count:[${imageList.length}], index:[${closestIndex}]`
    // );
    water.setTime(imageList[closestIndex]);
  } else {
    console.warn("No water simulation to set time for.");
@@ -171,7 +182,7 @@
export function toggleWaterColorRender(enabled) {
  if (water) {
    water.colorRender = enabled;
    console.log(`是否开启专题渲染 ${enabled}`);
    // console.log(`是否开启专题渲染 ${enabled}`);
  } else {
    console.warn("No water simulation to toggle color rendering.");
  }
@@ -184,8 +195,9 @@
 */
export function enableWaterArrowFlow(enabled) {
  if (water) {
    water.arrowEnabled = enabled; // 假设 SDK 支持此属性
    console.log(`箭头流向动画已${enabled ? "开启" : "关闭"}`);
    // 默认关闭状态
    water.flowEnabled = enabled; // 假设 SDK 支持此属性
    // console.log(`箭头流向动画已${enabled ? "开启" : "关闭"}`);
  } else {
    console.warn("未找到水体模拟图层,请先启动洪水模拟");
  }
@@ -207,7 +219,7 @@
      earthCtrl.shadowMap.maximumDistance = 10000.0; //最大距离
      earthCtrl.shadowMap.pointLightRadius = 50.0; //点光源半径
    }
    console.log(`阴影效果已${enabled ? "开启" : "关闭"}`);
    // console.log(`阴影效果已${enabled ? "开启" : "关闭"}`);
  } catch (error) {
    console.error("设置阴影失败:", error);
  }