From 25ad6779e118f2f01e9cda45c67f7b27d55a984a Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期二, 17 十月 2023 18:04:43 +0800 Subject: [PATCH] 图层管理临时图层,sdk包更新 --- src/assets/js/Map/server.js | 101 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 78 insertions(+), 23 deletions(-) diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js index 752200b..13a78f1 100644 --- a/src/assets/js/Map/server.js +++ b/src/assets/js/Map/server.js @@ -5,11 +5,15 @@ const server = { layerList: [], graticules: null, + alpha: null,//閫忔槑搴� + addTreeData(treeNode) { if (!treeNode.checked) { this.delLayer(treeNode.id); return; } + + this.alpha = this.getResLayersAlpha(treeNode); //鍒ゆ柇鏄惁涓轰唬鐞� if (treeNode.proxy) { this.addProxyAddress(treeNode); //鏈変唬鐞� @@ -221,11 +225,13 @@ }, //鍔犺浇WMTS鏈嶅姟 setAddWmtsLayer(res) { + this.delLayer(res.id); var url = this.getLayrUrl(res); - var urlTemplateImageryProvider = earthCtrl.factory.createImageryLayer({ + let urlTemplateImageryProvider = new Cesium.WebMapTileServiceImageryProvider({ sourceType: "wmts", url: url, layer: "", + id: res.id, format: "image/png", tileMatrixSetID: "GoogleCRS84Quad01", tileMatrixLabels: [ @@ -253,12 +259,43 @@ tilingScheme: new Cesium.GeographicTilingScheme({ ellipsoid: Cesium.Ellipsoid.MOON, }), - }); + }) + var imageLayer = window.Viewer.imageryLayers.addImageryProvider(urlTemplateImageryProvider); + imageLayer.id = res.id + + imageLayer.alpha = this.alpha; + // urlTemplateImageryProvider.id = res.id this.layerList.push({ id: res.id, - layerData: urlTemplateImageryProvider._primitive, + layerData: imageLayer, type: "wmts", + alpha: imageLayer, }); + }, + //鑾峰彇鍥惧眰涔嬪墠鐨勯�忔槑搴� + getResLayersAlpha(result) { + var std = this.layerList.filter(res => { + if (res.id == result.id) { + return res; + } + }); + + if (std.length <= 0) { + return 1; + } else { + var id = std[0].id; + var val= null; + var layers = window.Viewer.imageryLayers._layers; + for (var i in layers) { + if (layers[i].id == id) { + val = id; + return layers[i].alpha; + } + } + if(!null){ + return 1 + } + } }, //鍔犺浇鍦板舰鏈嶅姟 setAddTearrinLayer(res) { @@ -276,6 +313,7 @@ }, //鍔犺浇WMS鏈嶅姟 setAddWmsLayer(res) { + var url = this.getLayrUrl(res); var img_layer = sgworld.Creator.createImageryProvider( "giserver", @@ -346,10 +384,14 @@ //娓呴櫎鍥惧眰 delLayer(code) { + this.layerList.forEach((e, i) => { if (e.id === code) { switch (e.type) { case "wmts": + window.Viewer.imageryLayers.remove(e.layerData); + break; + case "wms": window.Viewer.imageryLayers.remove(e.layerData); break; case "tms": @@ -371,28 +413,33 @@ delLayerAll() { this.layerList.forEach((e, i) => { - switch (e.type) { - case "wmts": - window.Viewer.imageryLayers.remove(e.layerData); - break; - case "tms": - window.Viewer.imageryLayers.remove(e.layerData); - break; - case "dem": - window.Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( - {} - ); - break; - case "tileset": - window.Viewer.scene.primitives.remove(e.layerData); - break; - } + this.setRemoveLayer(e); this.layerList.splice(i, 1); }); }, + setRemoveLayer(e) { + switch (e.type) { + case "wmts": + window.Viewer.imageryLayers.remove(e.layerData); + break; + case "tms": + window.Viewer.imageryLayers.remove(e.layerData); + break; + case "dem": + window.Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( + {} + ); + break; + case "tileset": + window.Viewer.scene.primitives.remove(e.layerData); + break; + + } + }, //鍔犺浇GeoServer-WMS鏈嶅姟 setAddGeoWmsLayer(res) { - var url = this.getLayrUrl(res); + this.delLayer(res.id) + var url = res.url; var that = this; var getFeatureInfoFormat = new SmartEarth.Cesium.GetFeatureInfoFormat( "html", @@ -401,10 +448,17 @@ that.getFeatureInfo(html); } ); - + if (url.indexOf('{token}') > -1) { + const token = getToken(); + url = config.proxy + url.replaceAll("{token}", token); + } else { + url = url; + } + let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ url: url, layers: res.tab, + id:res.id, getFeatureInfoParameters: { info_format: "text/html" }, enablePickFeatures: true, getFeatureInfoFormats: [getFeatureInfoFormat], @@ -419,7 +473,8 @@ }); layer.name = `Wms_Layer${res.id}`; let img_layer = window.Viewer.imageryLayers.addImageryProvider(layer); - + img_layer.id = res.id + img_layer.alpha = this.alpha; this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" }); }, addGeoServerMmsLayers(layer, url) { @@ -454,7 +509,7 @@ }); wmslayer.name = `Wms_Layer_geo`; let img_layer = window.Viewer.imageryLayers.addImageryProvider(wmslayer); - this.layerList.push({ id: 1001011, layerData: img_layer, type: "wmts" }); + this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" }); }, getFeatureInfo(html) { -- Gitblit v1.9.3