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