1
wangjuncheng
5 天以前 5a93ff9c70a25e09d77aff8e9175022b63b3060f
src/utils/water.js
@@ -12,7 +12,7 @@
    enableWaterArrowFlow(false);
    water.destroy();
    water = null;
    console.log("Water simulation destroyed.");
    // console.log("Water simulation destroyed.");
  }
}
@@ -47,7 +47,7 @@
  ];
  const levelCount = colorStops.length;
  const minAllowed = 0.005; // 最小允许值
  const minAllowed = 0.05; // 最小允许值
  const threshold = 1; // 小值与大值分界点
  let effectiveMin = Math.max(minFlowRate, minAllowed); // 最小不能小于 0.01
@@ -78,8 +78,7 @@
  }
  waterLegendData.value = waterHeightLevels;
  console.log(waterLegendData.value, "图例数据");
  // console.log(waterLegendData.value, "图例数据");
  water = await earthCtrl.simulate.createWaterSimulateLayer({
    baseUrl,
    interval,
@@ -91,11 +90,19 @@
    colorRender,
    sizeIndex: 0,
  });
  enableWaterArrowFlow(false);
  //防止缩放导致地形变动压盖水面,水面增加设置
  water.clampMinHeight = 0; //相机相对于水面最小高度
  water.clampMaxHeight = 1000; //相机相对于水面最大高度
  water.offsetMinHeight = 0; //水偏移最小高度
  water.offsetMaxHeight = 100; //水偏移最大高度
  // 是否开启箭头
  enableWaterArrowFlow(false);
  // 是否开启水面阴影
  toggleWaterShadow(false);
  console.log(
    `仿真模拟参数:请求路径 ${baseUrl}, 帧间间隔 ${interval}ms, 是否开启专题渲染 ${colorRender}`
  );
  // console.log(
  //   `仿真模拟参数:请求路径 ${baseUrl}, 帧间间隔 ${interval}ms, 是否开启专题渲染 ${colorRender}`
  // );
}
/**
 * 初始化水体模拟视图
@@ -117,12 +124,12 @@
  // console.log("Camera view initialized for water simulation.");
}
/**
 * 更新水颜色
 * 更换水透明度
 */
export function updateWaterColor(color) {
export function updateWaterColor(color, alpha) {
  if (water) {
    water.color = Cesium.Color.fromCssColorString(color);
    console.log("切换颜色为:",color);
    water.alphaByDepth = alpha;
  } else {
    console.warn("No water simulation to pause.");
  }
@@ -133,7 +140,7 @@
export function pauseWaterSimulation() {
  if (water) {
    water.pause();
    console.log("暂停仿真");
    // console.log("暂停仿真");
  } else {
    console.warn("No water simulation to pause.");
  }
@@ -145,7 +152,7 @@
export function resumeWaterSimulation() {
  if (water) {
    water.resume();
    console.log("继续仿真");
    // console.log("继续仿真");
  } else {
    console.warn("No water simulation to resume.");
  }
@@ -164,9 +171,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.");
@@ -180,7 +187,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.");
  }
@@ -195,7 +202,7 @@
  if (water) {
    // 默认关闭状态
    water.flowEnabled = enabled; // 假设 SDK 支持此属性
    console.log(`箭头流向动画已${enabled ? "开启" : "关闭"}`);
    // console.log(`箭头流向动画已${enabled ? "开启" : "关闭"}`);
  } else {
    console.warn("未找到水体模拟图层,请先启动洪水模拟");
  }
@@ -217,7 +224,7 @@
      earthCtrl.shadowMap.maximumDistance = 10000.0; //最大距离
      earthCtrl.shadowMap.pointLightRadius = 50.0; //点光源半径
    }
    console.log(`阴影效果已${enabled ? "开启" : "关闭"}`);
    // console.log(`阴影效果已${enabled ? "开启" : "关闭"}`);
  } catch (error) {
    console.error("设置阴影失败:", error);
  }