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