From f4a54f5d378fb194d4132de2668e5d85a255b8ff Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期四, 26 十月 2023 15:07:55 +0800
Subject: [PATCH] 版本更新

---
 src/assets/js/Map/menuTool.js |  168 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 118 insertions(+), 50 deletions(-)

diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js
index bfc8daf..ed1f6f0 100644
--- a/src/assets/js/Map/menuTool.js
+++ b/src/assets/js/Map/menuTool.js
@@ -22,6 +22,10 @@
   imageryProvider: null,
   topTools(res) {
     this.toolFlag = res.id;
+
+
+    Viewer.scene.globe.depthTestAgainstTerrain = false
+    Viewer.scene.pickTranslucentDepth = false
     switch (res.id) {
       case "a2": //鐐规极娓�
         this.pointRoam();
@@ -98,15 +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.terrainShadows = SmartEarth.Cesium.ShadowMode.ENABLED
 
-    earthCtrl.shadowMap.size = 1024
+    // earthCtrl.shadowMap.size = 1024
   },
   setLocalPosition(res) {
     if (this.localPoint) {
@@ -161,58 +168,112 @@
   },
   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;
+    // 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;
+    }
 
-    // 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;
+    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 = 50.0;
+    contourUniforms.color = contourColor;
+    globe.material = window.material;
+//  this.showContourLine();
   },
+  showContourLine () {
+  
+    window.ddd = { x: -1, y: -1, level: -1 };
+
+    const clipPlane = Viewer.scene.globe.clipPlanes;
+    for (let index = 1; index < 20; index++) {
+      clipPlane.push({
+        plane: new SmartEarth.Cesium.Plane(
+          new SmartEarth.Cesium.Cartesian3(0, 0, -1),
+          (index * 50 )- 1000
+        ),
+        font: "Arial",
+        fontSize: 20,
+        fontColor: "#5151F1",
+        minShowLevel: 2,
+      });
+    }
+
+    // setTimeout(() => {
+    //   clipPlane.length = 0;
+    // }, 10000);
+
+  // this.updateMaterial();
+  },
+  updateMaterial () {
+    const layers = [];
+        for (let index = 1; index < 20; index++) {
+          const band = {
+            entries: [
+              {
+                height: (index * 50 )- 1001,
+                color: new SmartEarth.Cesium.Color(0.0, 1.0, 0.0, 0.0),
+              },
+              {
+                height: (index * 50 )- 1000,
+                color: new SmartEarth.Cesium.Color(0.0, 1.0, 0.0, 1.0),
+              },
+            ],
+          };
+          layers.push(band);
+        }
+        const material = SmartEarth.Cesium.createElevationBandMaterial({
+          scene: Viewer.scene,
+          layers: layers,
+          type:"ElevationContour"
+        });
+        Viewer.scene.globe.material = material;
+  },
+
+
+
+
+
   zeroFill(num, len, radix) {
     var str = num.toString(radix || 10)
     while (str.length < len) {
@@ -270,7 +331,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 +486,9 @@
         break;
       case "l3": //鍦ㄧ嚎鍒跺浘
         store.state.isShowMap = true;
-        this.setThematicMap();
+         setTimeout(() => {
+          this.setThematicMap();
+         }, 200);
 
         break;
       case "l4":
@@ -527,6 +590,7 @@
 
   //鍦ㄧ嚎鍒跺浘
   setThematicMap() {
+ 
     earthCtrl.coreMap.scene.mode = SmartEarth.Cesium.SceneMode.SCENE2D;
     // var handle = new SmartEarth.Cesium.ScreenSpaceEventHandler(
     //   earthCtrl.viewer.scene.canvas
@@ -582,6 +646,8 @@
       window.Volumetric.deleteObject();
       window.Volumetric = null;
     }
+    Viewer.scene.globe.depthTestAgainstTerrain = true
+    Viewer.scene.pickTranslucentDepth = true
     window.Volumetric = earthCtrl.analysis.createVolumetricMeasure({});
     window.Volumetric.startDrawing();
   },
@@ -655,7 +721,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();

--
Gitblit v1.9.3