wangjuncheng
3 天以前 cf7752d995e09d48eca9a1ca5634a9e71ae46553
src/utils/tools.js
@@ -2,8 +2,8 @@
// import cameraIcon from "../assets/images/base/视频测点.png"
// import cameraIconSel from "../assets/images/base/视频测点sel.png"
import { ElLoading, ElMessage } from "element-plus";
import RainEffect from './rain'
import SnowEffect from './snow'
import RainEffect from "./rain";
import SnowEffect from "./snow";
let layerIsOpen = false;
const Cesium = SmartEarth.Cesium;
const colorAll = {
@@ -32,7 +32,7 @@
    return this;
  },
  hexToColor(hexColor) {
    const hex = hexColor.replace('#', '');
    const hex = hexColor.replace("#", "");
    const r = parseInt(hex.substring(0, 2), 16) / 255;
    const g = parseInt(hex.substring(2, 4), 16) / 255;
    const b = parseInt(hex.substring(4, 6), 16) / 255;
@@ -41,8 +41,8 @@
  // 清除天气特效
  delRain() {
    if (this.rainEffect) {
      this.rainEffect.destroy()
      this.rainEffect = null
      this.rainEffect.destroy();
      this.rainEffect = null;
    }
  },
  delSnow() {
@@ -53,22 +53,23 @@
  },
  // 雨天模拟
  toggleRain(option, show) {
    console.log(option, 'option')
    // console.log(option, "option");
    // 先销毁旧实例
    if (this.rainEffect) {
      this.rainEffect.destroy()
      this.rainEffect = null
      this.rainEffect.destroy();
      this.rainEffect = null;
    }
    this.rainEffect = new RainEffect(earthCtrl.viewer, {
      tiltAngle: -0.2, //倾斜角度
      rainSize: option.rainSize, // 雨的大小
      rainSpeed: option.rainSpeed, // 雨的速度
      color: this.hexToColor(option.rainColor)  // 雨的颜色
    })
      rainDensity: option.rainDensity, // 雨的密度
      color: this.hexToColor(option.rainColor), // 雨的颜色
    });
  },
  // 雪天模拟
  toggleSnow(option = {}, show = true) {
    console.log(option, 'option');
    console.log(option, "option");
    const defaultOption = {
      snowSize: 0.02, // 默认雪的大小
      snowSpeed: 100.0, // 默认雪的速度
@@ -100,9 +101,7 @@
      for (const i of e.result) {
        const ellipsoid = earthCtrl.coreMap.scene.globe.ellipsoid;
        const cartographic = ellipsoid.cartesianToCartographic(i);
        const lon = SmartEarth.Cesium.Math.toDegrees(
          cartographic.longitude
        ); // 经度
        const lon = SmartEarth.Cesium.Math.toDegrees(cartographic.longitude); // 经度
        const lat = SmartEarth.Cesium.Math.toDegrees(cartographic.latitude); // 纬度
        polygonI.push(lon, lat, 0);
        this.polygonPosition.push(lon, lat);
@@ -119,7 +118,7 @@
  // 坡度分析
  pdfx() {
    if (this.regionTerrain) {
      console.log('坡度分析');
      console.log("坡度分析");
      this.clearPreviousAnalysis(); // 先清除之前的分析
      this.regionTerrain.setType("slope");
      this.regionTerrain.update();
@@ -171,8 +170,7 @@
  CreateLabel(pic, show) {
    if (show) {
      earthCtrl.factory.createSimpleGraphic(pic, {}, function (entity) {
        console.log(entity, "entity");
        window.Viewer = earthCtrl.viewer
        window.Viewer = earthCtrl.viewer;
        //开启编辑并启用属性弹窗
        earthCtrl.factory.SimpleGraphic.edit(true, {
          editProp: true,
@@ -197,7 +195,7 @@
  //直线测量
  jl() {
    earthCtrl.measure.lineDistance(colorAll, (e) => {
      console.log(e)
      console.log(e);
    }).onEnd = () => {
      console.log("直线测量已完成");
    };
@@ -212,20 +210,22 @@
  },
  //面积测量
  mjcl() {
    earthCtrl.measure.surfaceArea({
      ...colorAll,
      tin: true, // 是否显示tin三角网
      onlyTerrain: false // 是否只测量精细地形
    }, (e) => {
      console.log(e)
    }).onEnd = () => {
      console.log('面积测量已完成')
    }
    earthCtrl.measure.surfaceArea(
      {
        ...colorAll,
        tin: true, // 是否显示tin三角网
        onlyTerrain: false, // 是否只测量精细地形
      },
      (e) => {
        console.log(e);
      }
    ).onEnd = () => {
      console.log("面积测量已完成");
    };
  },
  // 清除测量
  clear() {
    earthCtrl.measure.clearResult()
    earthCtrl.measure.clearResult();
  },
  syfx(option) {
    this.viewShedTool = earthCtrl.analysis.createViewShed({
@@ -299,7 +299,7 @@
        polyline: Cesium.Color.fromCssColorString("#ffff0050"),
        polygon: Cesium.Color.fromCssColorString("#ffff0050"),
      },
      (e) => { }
      (e) => {}
    );
  },
  qxcl() {
@@ -309,7 +309,7 @@
        polyline: Cesium.Color.fromCssColorString("#ffff0050"),
        polygon: Cesium.Color.fromCssColorString("#ffff0050"),
      },
      (e) => { }
      (e) => {}
    );
  },
  fwjcl() {
@@ -319,7 +319,7 @@
        polyline: Cesium.Color.fromCssColorString("#ffff0050"),
        polygon: Cesium.Color.fromCssColorString("#ffff0050"),
      },
      (e) => { }
      (e) => {}
    );
  },
  // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>场景截图<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
@@ -671,10 +671,9 @@
      this.movingCircleViewshed = null;
    }
  },
  // 阴影分析
  AnalysisSunshine() {
    if (!layerIsOpen) {
      layerIsOpen = true;
      let currentTime = viewer.clock.currentTime.clone();
      let startTime = viewer.clock.startTime.clone();
      let stopTime = viewer.clock.stopTime.clone();
@@ -683,17 +682,19 @@
        type: 2,
        title: "阴影分析",
        shade: false,
        area: ["350px", "500px"],
        offset: "l",
        skin: "yyfxForm",
        content: SmartEarthRootUrl + "Workers/analysis/AnalysisSunshine.html",
        area: ["350px", "350px"],
        offset: "r",
        skin: "other-class",
        content: SmartEarthRootUrl + "Workers/analysis/AnalysisShadow.html",
        end: () => {
          window._AnalysisSunshine && window._AnalysisSunshine.remove();
          window._AnalysisSunshine = undefined;
          layerIsOpen = false;
        },
          Viewer.clock.currentTime = currentTime;
          Viewer.clock.startTime = startTime;
          Viewer.clock.stopTime = stopTime;
          Viewer.clock.multiplier = multiplier;
          Viewer.shadows = false;
          Viewer.shadowLayer = false;
        }
      });
    }
  },
  transformCartesianToCoord(position) {
    const cartographic = SmartEarth.Cesium.Cartographic.fromCartesian(position);
@@ -929,7 +930,7 @@
    };
    this.analysisFlood = earthCtrl.analysis.createSubmergence(
      method,
      (value) => { }
      (value) => {}
    );
  },
  clearFlood() {
@@ -962,6 +963,12 @@
      this.contourLabel.showContourLabel(false);
    }
  },
  enableAtmosphere() {
    earthCtrl.atmosphere.enable();
  },
  disableAtmosphere() {
    earthCtrl.atmosphere.disable();
  },
};
export default mapUtils;