月球大数据地理空间分析展示平台-【前端】-月球2期前端
surprise
2023-11-28 64e1db9d04bd4e2dd8ee4e61f2ec1de922c2f84d
src/assets/js/Map/menuTool.js
@@ -19,8 +19,13 @@
    polygon: SmartEarth.Cesium.Color.fromCssColorString("#ffff0050"),
  },
  exportSquare: null,
  imageryProvider: null,
  topTools(res) {
    this.toolFlag = res.id;
    Viewer.scene.globe.depthTestAgainstTerrain = false
    Viewer.scene.pickTranslucentDepth = false
    switch (res.id) {
      case "a2": //点漫游
        this.pointRoam();
@@ -97,12 +102,18 @@
      Viewer.animation.container.style.visibility = "hidden";
      Viewer.timeline.container.style.visibility = "hidden";
      Viewer.clock.shouldAnimate = false;
      return (earthCtrl.shadows = false);
      Viewer.scene.globe.enableLighting = false;
      earthCtrl.shadows = false;
      return
    }
    Viewer.clock.shouldAnimate = true;
    Viewer.scene.globe.enableLighting = true;
    Viewer.animation.container.style.visibility = "visible";
    Viewer.timeline.container.style.visibility = "visible";
    earthCtrl.shadows = true;
     earthCtrl.terrainShadows = SmartEarth.Cesium.ShadowMode.ENABLED
     earthCtrl.shadowMap.size = 1024
  },
  setLocalPosition(res) {
    if (this.localPoint) {
@@ -155,16 +166,43 @@
    Viewer.scene.globe.material = window.material;
  },
  setImageLayerChange() {
    if (this.imageryProvider) {
      Viewer.imageryLayers.raiseToTop(this.imageryProvider);
    }
  },
  //等高线
  setcontour() {
    // if (this.imageryProvider) {
    //   Viewer.imageryLayers.remove(this.imageryProvider);
    //   this.imageryProvider = null;
    //   return
    // }
    // var that = this;
    // var imageryProvider = new Cesium.UrlTemplateImageryProvider({
    //   url: 'http://192.168.20.83:80/Moon/LFData/2d/tiles/contour_500/{mz}/{my}/{mx}.png',
    //   tilingScheme: new Cesium.GeographicTilingScheme(),
    //   customTags: {
    //     mz: function (imageryProvider, x, y, level) {
    //       return 'L' + that.zeroFill(level + 1, 2, 10); // 注意观测,层级加1了
    //     },
    //     mx: function (imageryProvider, x, y, level) {
    //       return 'C' + that.zeroFill(x, 8, 16);
    //     },
    //     my: function (imageryProvider, x, y, level) {
    //       return 'R' + that.zeroFill(y, 8, 16);
    //     }
    //   }
    // });
    // this.imageryProvider = Viewer.imageryLayers.addImageryProvider(imageryProvider);
    var globe = window.Viewer.scene.globe;
    if (window.material) {
      window.material = null;
      globe.material = null;
      store.state.slopeQueyFla = false
      store.state.slopeQueyFlag = false;
      store.state.showSlopeQuey = false;
      return;
    }
@@ -181,6 +219,16 @@
    contourUniforms.spacing = 100.0;
    contourUniforms.color = contourColor;
    globe.material = window.material;
  },
  zeroFill(num, len, radix) {
    var str = num.toString(radix || 10)
    while (str.length < len) {
      str = '0' + str
    }
    return str;
  },
  //线查询
  spatialLineQuery() {
@@ -231,7 +279,7 @@
          name: name,
          polyline: {
            positions: Cesium.Cartesian3.fromDegreesArray(position),
            width: 10.0,
            width: 3.0,
            material: new Cesium.PolylineOutlineMaterialProperty({
              color: new Cesium.Color.fromCssColorString('#A6D8AE').withAlpha(0.5),
              outlineWidth: 1,
@@ -386,7 +434,9 @@
        break;
      case "l3": //在线制图
        store.state.isShowMap = true;
        this.setThematicMap();
         setTimeout(() => {
          this.setThematicMap();
         }, 200);
        break;
      case "l4":
@@ -488,6 +538,7 @@
  //在线制图
  setThematicMap() {
    earthCtrl.coreMap.scene.mode = SmartEarth.Cesium.SceneMode.SCENE2D;
    // var handle = new SmartEarth.Cesium.ScreenSpaceEventHandler(
    //   earthCtrl.viewer.scene.canvas
@@ -543,6 +594,8 @@
      window.Volumetric.deleteObject();
      window.Volumetric = null;
    }
    Viewer.scene.globe.depthTestAgainstTerrain = true
    Viewer.scene.pickTranslucentDepth = true
    window.Volumetric = earthCtrl.analysis.createVolumetricMeasure({});
    window.Volumetric.startDrawing();
  },
@@ -579,10 +632,13 @@
  },
  //线漫游
  lineRoam() {
    earthCtrl.Command.execute(2, 3, "", (data) => {
    Viewer.scene.globe.depthTestAgainstTerrain = true;
     // 绘制路线并获取路径动画数据
     earthCtrl.Command.execute(2, 3, "", (data) => {
      data.showPoint = false;
      data.showLine = true;
      data.mode = 1;
      data.mode = 0;
      // 弹窗数据
      window.PathAnimationData = {
        flyData: data,
@@ -595,11 +651,12 @@
        offset: "r",
        skin: "other-class",
        content: SmartEarthRootUrl + "Workers/path/Path.html",
        end: function () {
        end: function() {
          PathAnimationData.fly && PathAnimationData.fly.exit();
        },
      });
    });
  },
  //清除按钮
  clearALL(id) {
@@ -616,7 +673,9 @@
      Viewer.animation.container.style.visibility = "hidden";
      Viewer.timeline.container.style.visibility = "hidden";
      Viewer.clock.shouldAnimate = false;
      return (earthCtrl.shadows = false);
      Viewer.scene.globe.enableLighting = false;
      earthCtrl.shadows = false;
      return
    }
    if (window.Volumetric) {
      window.Volumetric.deleteObject();
@@ -634,6 +693,10 @@
      store.state.slopeQueyFlag = false;
      store.state.showSlopeQuey = false;
    }
    if (this.imageryProvider) {
      Viewer.imageryLayers.remove(this.imageryProvider)
      this.imageryProvider = null;
    }
    if (window.DoubleScreen) {
      window.DoubleScreen && window.DoubleScreen.destroy();
      window.DoubleScreen = null;