From c53726ee8042bada3677e81f0024c58bfa91b5d7 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 23 五月 2023 16:11:39 +0800
Subject: [PATCH] 1

---
 src/views/Tools/LayerTree.vue |  109 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 74 insertions(+), 35 deletions(-)

diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index d5352c9..69a3552 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -94,6 +94,7 @@
   components: { queryinfo },
   data () {
     return {
+      isBusy: false, // 姝e繖
       showProp: false, // 灞炴��
       shwoHistogram: false, // 閽诲瓟鏌辩姸鍥�
       showLocal: false, // 瀹氫綅
@@ -307,10 +308,12 @@
     },
     // 鍥惧眰閫変腑浜嬩欢
     handleCheckChange (data, checked) {
+      if (this.isBusy) return;
+
       let nodes = [];
       this.getNodes(data, nodes);
-
       let obj = { WMS: [], Tileset: [], TMS: [], Mpt: [], DEM: [] };
+
       for (let i = 0, c = nodes.length; i < c; i++) {
         let node = nodes[i];
         switch (node.serveType) {
@@ -354,6 +357,17 @@
         arr.push(data);
       }
     },
+    // 鑾峰彇鑺傜偣ID
+    getCheckNodesIds () {
+      var nodes = this.$refs.tree.getCheckedNodes();
+
+      var ids = [];
+      for (var i in nodes) {
+        ids.push(nodes[i].id);
+      }
+
+      return ids;
+    },
     // 鍒囨崲WMS鏈嶅姟
     setChangeWMS (layers, checked) {
       var value = this.$refs.tree.getCheckedNodes();
@@ -361,11 +375,11 @@
     },
     // 鍒囨崲Tileset
     setChangeTileset (layers, checked) {
-      let ids = this.getCheckNodesIds();
+      let ids = this.getCheckNodesIds(), arr = [];
       for (var i in layers) {
         var layer = layers[i];
-        if (ids.indexOf(layer.id) != -1) {
-          this.setAddLayers(layer);
+        if (ids.indexOf(layer.id) > -1) {
+          arr.push(layer);
           continue;
         }
 
@@ -383,25 +397,20 @@
           }
         }
       }
+
+      if (arr.length) this.addTilesetLayers(arr);
     },
-    // 鑾峰彇鑺傜偣ID
-    getCheckNodesIds () {
-      var nodes = this.$refs.tree.getCheckedNodes();
-
-      var ids = [];
-      for (var i in nodes) {
-        ids.push(nodes[i].id);
-      }
-
-      return ids;
+    // 娣诲姞Tileset鍥惧眰
+    addTilesetLayers (layers) {
+      //
     },
     // 鍒囨崲TMS
     setChangeTMS (layers, checked) {
-      let ids = this.getCheckNodesIds();
+      let ids = this.getCheckNodesIds(), arr = [];
       for (var i in layers) {
         var layer = layers[i];
-        if (ids.indexOf(layer.id) != -1) {
-          this.setAddLayers(layer);
+        if (ids.indexOf(layer.id) > -1) {
+          arr.push(layer);
           continue;
         }
 
@@ -412,32 +421,62 @@
           }
         }
       }
+
+      if (arr.length) this.addTMSLayers(arr);
+    },
+    // 娣诲姞Tile鍥惧眰
+    addTMSLayers (layers) {
+      //
     },
     // 鍒囨崲Mpt
-    setChangeMpt (result, checked) {
-      var value = this.$refs.tree.getCheckedNodes();
-      var std = [];
-      for (var i in value) {
-        std.push(value[i].id)
-      }
-      for (var i in result) {
-        var tile = result[i]
-        if (std.indexOf(tile.id) != -1) {
-          this.setAddLayers(tile)
+    setChangeMpt (layers, checked) {
+      let ids = this.getCheckNodesIds(), arr = [];
+      for (var i in layers) {
+        var layer = layers[i];
+        if (ids.indexOf(layer.id) != -1) {
+          arr.push(layer);
+          continue;
+        }
 
-        } else {
-          for (var i in this.mptLayer) {
-            if (this.mptLayer[i].treeobj.name == tile.cnName) {
-              this.mptLayer[i].deleteObject();
-              this.mptLayer.splice(i, 1)
-            }
+        for (var i in this.mptLayer) {
+          if (this.mptLayer[i].treeobj.name == layer.cnName) {
+            this.mptLayer[i].deleteObject();
+            this.mptLayer.splice(i, 1);
           }
         }
       }
+
+      if (arr.length) this.addMptLayers(arr);
+    },
+    // 娣诲姞Mpt鍥惧眰
+    addMptLayers (layers) {
+      //
     },
     // 鍒囨崲DEM
-    setChangeDEM () {
-      //
+    setChangeDEM (layers, checked) {
+      let ids = this.getCheckNodesIds(), arr = [], isDel = false;
+      for (var i in layers) {
+        var layer = layers[i];
+        if (ids.indexOf(layer.id) != -1) {
+          arr.push(layer.url);
+          continue;
+        }
+
+        // 鍒犻櫎DEM
+        if (window.Viewer.terrainProvider._layers[0].resource._url == layer.url) {
+          isDel = true;
+        }
+      }
+
+      if (!arr.length && isDel) arr.push(demLayer);
+      if (arr.length) this.addDEMLayers(arr[0]);
+    },
+    // 娣诲姞DEM鍥惧眰
+    addDEMLayer (url) {
+      Viewer.terrainLayer = new Cesium.CesiumTerrainProvider({
+        url: url,
+        requestVertexNormals: true
+      });
     },
     async setAddLayers (res) {
       if (res.serveType == "WMS") {

--
Gitblit v1.9.3