From 36fbd1e5a40e319e6ac5f43d11c99ba4b66e93a3 Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期三, 29 十一月 2023 16:50:16 +0800
Subject: [PATCH] 坡度分析下载修改

---
 src/assets/js/Map/menuTool.js |  197 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 148 insertions(+), 49 deletions(-)

diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js
index bfc8daf..e8c1774 100644
--- a/src/assets/js/Map/menuTool.js
+++ b/src/assets/js/Map/menuTool.js
@@ -20,8 +20,13 @@
   },
   exportSquare: null,
   imageryProvider: null,
+  legendBox: null,
   topTools(res) {
     this.toolFlag = res.id;
+
+
+    Viewer.scene.globe.depthTestAgainstTerrain = false
+    Viewer.scene.pickTranslucentDepth = false
     switch (res.id) {
       case "a2": //鐐规极娓�
         this.pointRoam();
@@ -98,9 +103,12 @@
       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;
@@ -135,6 +143,71 @@
   },
   //鍧″害鍒嗘瀽
   setSlopeMap() {
+
+
+    if (window.esriLayer) {
+      this.setCloseEsriLayer();
+      return
+    }
+    sgworld.Creator.createSimpleGraphic('rectangle', {}, (entity) => {
+      if (entity) {
+        var west = Cesium.Math.toDegrees(
+          entity.rectangle._coordinates.getValue().west
+        ); // 鏍规嵁寮у害鑾峰彇鍒扮粡搴�
+        var east = Cesium.Math.toDegrees(
+          entity.rectangle._coordinates.getValue().east
+        ); // 鏍规嵁寮у害鑾峰彇鍒扮含搴�
+        var north = Cesium.Math.toDegrees(
+          entity.rectangle._coordinates.getValue().north
+        ); // 鏍规嵁寮у害鑾峰彇鍒扮粡搴�
+        var south = Cesium.Math.toDegrees(
+          entity.rectangle._coordinates.getValue().south
+        ); // 鏍规嵁寮у害鑾峰彇鍒扮含搴�
+        sgworld.Creator.SimpleGraphic.clear();
+        this.legendBox = [
+          west, south, east, north
+        ]
+        this.addTMSLayer(this.legendBox)
+      }
+    });
+
+  },
+
+
+  addTMSLayer(obj) {
+
+    var esri = new Cesium.WebMapServiceImageryProvider({
+      url: config.esri,
+      name: 'esriLayer',
+      rectangle: Cesium.Rectangle.fromDegrees(obj[0], obj[1], obj[2], obj[3]),
+      crs: 'EPSG:4326',
+      //transparent: true
+      parameters: {
+        format: "image/png",
+        layers: [0]
+      }
+    });
+    window.esriLayer = Viewer.imageryLayers.addImageryProvider(esri);
+    store.state.showlegendLayer = true;
+  },
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  setSlopeMap1() {
     const globe = Viewer.scene.globe;
     if (window.material) {
       window.material = null;
@@ -160,59 +233,65 @@
     Viewer.scene.globe.material = window.material;
   },
   setImageLayerChange() {
-    if (this.imageryProvider) {
+    if (window.esriLayer) {
+      Viewer.imageryLayers.raiseToTop(window.esriLayer);
 
+    }
+    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;
+    // 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;
 
-    // var contourColor = new SmartEarth.Cesium.Color(
-    //   117 / 255,
-    //   71 / 255,
-    //   18 / 255,
-    //   255 / 255
-    // );
-    // var contourUniforms = {};
-    // window.material = Cesium.Material.fromType("ElevationContour");
-    // contourUniforms = material.uniforms;
-    // contourUniforms.width = 1.0;
-    // contourUniforms.spacing = 100.0;
-    // contourUniforms.color = contourColor;
-    // globe.material = window.material;
+      store.state.slopeQueyFlag = false;
+      store.state.showSlopeQuey = false;
+
+      return;
+    }
+
+    var contourColor = new SmartEarth.Cesium.Color(
+      117 / 255,
+      71 / 255,
+      18 / 255,
+      255 / 255
+    );
+    var contourUniforms = {};
+    window.material = Cesium.Material.fromType("ElevationContour");
+    contourUniforms = material.uniforms;
+    contourUniforms.width = 1.0;
+    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) {
@@ -270,7 +349,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,
@@ -425,7 +504,9 @@
         break;
       case "l3": //鍦ㄧ嚎鍒跺浘
         store.state.isShowMap = true;
-        this.setThematicMap();
+        setTimeout(() => {
+          this.setThematicMap();
+        }, 200);
 
         break;
       case "l4":
@@ -527,6 +608,7 @@
 
   //鍦ㄧ嚎鍒跺浘
   setThematicMap() {
+
     earthCtrl.coreMap.scene.mode = SmartEarth.Cesium.SceneMode.SCENE2D;
     // var handle = new SmartEarth.Cesium.ScreenSpaceEventHandler(
     //   earthCtrl.viewer.scene.canvas
@@ -582,6 +664,8 @@
       window.Volumetric.deleteObject();
       window.Volumetric = null;
     }
+    Viewer.scene.globe.depthTestAgainstTerrain = true
+    Viewer.scene.pickTranslucentDepth = true
     window.Volumetric = earthCtrl.analysis.createVolumetricMeasure({});
     window.Volumetric.startDrawing();
   },
@@ -618,10 +702,13 @@
   },
   //绾挎极娓�
   lineRoam() {
+    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,
@@ -639,6 +726,7 @@
         },
       });
     });
+
   },
   //娓呴櫎鎸夐挳
   clearALL(id) {
@@ -647,15 +735,26 @@
 
     // });
   },
+  setCloseEsriLayer() {
+    if (window.esriLayer) {
+      Viewer.imageryLayers.remove(window.esriLayer);
+      window.esriLayer = null
+      this.legendBox = null;
+      store.state.showlegendLayer = false;
+    }
+  },
   //娓呴櫎鏂规硶
   clearTopTools(id) {
     store.state.doubleMap = false;
     store.state.doubleMenu = false;
+    this.setCloseEsriLayer();
     if (earthCtrl.shadows) {
       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();

--
Gitblit v1.9.3