From e2abcc58249920af74fc5fa04e90554274c208d5 Mon Sep 17 00:00:00 2001
From: WX <1377869194@qq.com>
Date: 星期一, 24 七月 2023 17:11:20 +0800
Subject: [PATCH] 图层树默认 图层加载删除

---
 src/assets/js/Map/index.js      |   15 ----
 src/assets/js/Map/server.js     |   94 ++++++++++++++++++------------
 src/views/menus.vue             |   20 ++++--
 src/views/layer/layerManage.vue |   18 +++++-
 4 files changed, 85 insertions(+), 62 deletions(-)

diff --git a/src/assets/js/Map/index.js b/src/assets/js/Map/index.js
index 603594e..6732107 100644
--- a/src/assets/js/Map/index.js
+++ b/src/assets/js/Map/index.js
@@ -44,25 +44,12 @@
     //澶ф皵灞�
     Viewer.scene.globe.showGroundAtmosphere = false;
 
-    // server.AddTmsLayer(config.moonTms);
-    server.AddWmtesLayer(config.moonWmts);
-    // var terrain = new Cesium.CesiumTerrainProvider({
-    //   url: config.moonTerrain,
-    //   tilingScheme: new Cesium.GeographicTilingScheme({
-    //     ellipsoid: Cesium.Ellipsoid.MOON,
-    //   }),
-    // });
-    // window.Viewer.terrainProvider = terrain;
+    server.AddDemLayer("", 12316);
 
     // server.AddTmsLayer(
     //   "http://172.16.2.10:50001/sj_raster/v6/service/10003901/1"
     // );
 
-    server.AddGeoWmsLayer(
-      "http://192.168.22.198:8090/geoserver/moon/wms",
-      "111",
-      "moon:Ageo_copernican_period"
-    );
     // var param = {
     //     name: labelName,
     //     id: earthCtrl.factory.createUUID(),
diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js
index d2f9b6c..6d534d1 100644
--- a/src/assets/js/Map/server.js
+++ b/src/assets/js/Map/server.js
@@ -1,33 +1,14 @@
 import { getToken } from "@/utils/auth";
+//閰嶇疆鏂囦欢鍦板潃
+import config from "./config";
 const server = {
+  layerList: [],
   addTreeData(treeNode) {
-    console.log(treeNode);
-    let _data = earthCtrl.ProjectTree.getObject(treeNode.id);
-    let pID = 0;
-    console.log(_data);
-    if (_data) {
-      earthCtrl.ProjectTree.setVisibility(treeNode.id, treeNode.checked);
+    if (!treeNode.checked) {
+      this.delLayer(treeNode.id);
       return;
-    } else {
-      // _data = _getTreeData(treeNode.id);
-      // if (_data) {
-      //   _data.item &&
-      //     _data.item.setVisibility &&
-      //     _data.item.setVisibility(treeNode.checked);
-      //   _data.item &&
-      //     _data.item.setVisible &&
-      //     _data.item.setVisible(treeNode.checked);
-      //   _data.item &&
-      //     _data.item.show !== undefined &&
-      //     (_data.item.show = treeNode.checked);
-      //   if (_data.datatype === "particle") {
-      //     _data.item.forEach((item) => {
-      //       item.show = treeNode.checked;
-      //     });
-      //   }
-      //   return;
-      // }
     }
+
     //       comment on table lf.sys_res is '璧勬簮琛�';
     // comment on column lf.sys_res.id is '涓婚敭ID';
     // comment on column lf.sys_res.pid is '鐖禝D锛�0-鏍硅妭鐐�';
@@ -75,15 +56,35 @@
       this.addGisServer(treeNode);
     }
   },
+  //娓呴櫎鍥惧眰
+  delLayer(code) {
+    this.layerList.forEach((e, i) => {
+      if (e.id === code) {
+        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;
+        }
+        this.layerList.splice(i, 1);
+      }
+    });
+  },
   addGisServer(treeNode) {
-    console.log(1111111111111111111, treeNode);
     // 0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset';
     switch (treeNode.type) {
       case 1:
-        this.AddTmsLayer(treeNode.useUrl);
+        this.AddTmsLayer(treeNode.useUrl, treeNode.id);
         break;
       case 2:
-        this.AddWmtesLayer(treeNode.useUrl);
+        this.AddWmtesLayer(treeNode.useUrl, treeNode.id);
         break;
       case 3:
         break;
@@ -92,7 +93,6 @@
     }
   },
   addGeoServer(treeNode) {
-    console.log(222222222222222222222222222, treeNode);
     // 0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset';
     switch (treeNode.type) {
       case 1:
@@ -108,11 +108,8 @@
   },
   //娣诲姞geoserver鏈嶅姟wms鏈嶅姟
   AddGeoWmsLayer(url, id, tab) {
-    console.log(url);
-
-    window.layerWMS = new SmartEarth.Cesium.WebMapServiceImageryProvider({
+    let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({
       // url: "http://192.168.22.198:8090/geoserver/moon/wms",
-      // id: id,
       url: url,
       layers: tab,
       parameters: {
@@ -124,17 +121,18 @@
       tileWidth: 512,
       tileHeight: 512,
     });
-    layerWMS.name = "Wms_Layer";
+    layer.name = `Wms_Layer${id}`;
 
-    Viewer.imageryLayers.addImageryProvider(window.layerWMS);
+    let img_layer = Viewer.imageryLayers.addImageryProvider(layer);
+    this.layerList.push({ id: id, layerData: img_layer, type: "wmts" });
   },
   //娣诲姞GisServer鏈嶅姟TMS鍒囩墖鏈嶅姟
-  AddTmsLayer(url) {
+  AddTmsLayer(url, id) {
     // var urlTemplateImageryProvider = new SmartEarth.Cesium.UrlTemplateImageryProvider({
     //   url: url + "/{z}/{x}/{y}.png"
     // });
     // Viewer.imageryLayers.addImageryProvider(urlTemplateImageryProvider);
-    earthCtrl.Creator.createUrlTemplateImageryProvider(
+    let img_layer = earthCtrl.Creator.createUrlTemplateImageryProvider(
       "tms鏈嶅姟",
       {
         url: Cesium.buildModuleUrl(url + "/{z}/{x}/{reverseY}.png"),
@@ -144,8 +142,9 @@
       true,
       ""
     );
+    this.layerList.push({ id: id, layerData: img_layer, type: "tms" });
   },
-  AddWmtesLayer(url) {
+  AddWmtesLayer(url, id) {
     var urlTemplateImageryProvider = earthCtrl.factory.createImageryLayer({
       sourceType: "wmts",
       url: url,
@@ -178,6 +177,25 @@
         ellipsoid: Cesium.Ellipsoid.MOON,
       }),
     });
+    console.log(urlTemplateImageryProvider);
+    this.layerList.push({
+      id: id,
+      layerData: urlTemplateImageryProvider._primitive,
+      type: "wmts",
+    });
+  },
+  AddDemLayer(url, id) {
+    var terrain = new Cesium.CesiumTerrainProvider({
+      url: config.moonTerrain,
+      // url: url,
+      tilingScheme: new Cesium.GeographicTilingScheme({
+        ellipsoid: Cesium.Ellipsoid.MOON,
+      }),
+    });
+    window.Viewer.terrainProvider = terrain;
+
+    // let img_layer = Viewer.imageryLayers.addImageryProvider(layer);
+    this.layerList.push({ id: id, type: "dem" });
   },
 };
 export default server;
diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index a3a7be0..c9ff752 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -23,6 +23,7 @@
         @check="handleCheckChange"
         ref="estreeRef"
         v-if="treeData.length"
+        :default-checked-keys="DefaultId"
       >
         <template #default="{ node, data }">
           <span class="custom-tree-node">
@@ -176,7 +177,8 @@
 // 褰撳墠閫変腑鐨勮妭鐐� id
 const selectedNodeId = ref(null as any); //鍋氱被鍨嬫柇瑷�澶勭悊
 const emits = defineEmits(["setCloseLayer"]);
-
+//榛樿閫変腑id
+const DefaultId = ref([15]);
 //鍥惧眰璁剧疆寮规
 const layerSetBox = () => {
   layerSetIsshow.value = !layerSetIsshow.value;
@@ -307,7 +309,6 @@
 };
 //缂栬緫鍥惧眰鏍�
 const addlayer = (res) => {
-  console.log(res);
   let node;
   layerListData.value.forEach((e) => {
     if (e.id == res.id) {
@@ -358,6 +359,15 @@
       return a.sort - b.sort;
     });
     layerListData.value = dt.result;
+
+    //娣诲姞榛樿閫変腑鍥惧眰
+    dt.result.forEach((e) => {
+      DefaultId.value.forEach((v) => {
+        if (e.id == v) {
+          setVisiable(e, true);
+        }
+      });
+    });
   }
 
   // treeData.value = JSON.parse(JSON.stringify(treeData.value));
@@ -383,8 +393,10 @@
     return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
   });
 }
+getLayer();
 onMounted(() => {
-  getLayer();
+  console.log(treeData.value);
+  console.log(estreeRef.value);
 });
 </script>
 
diff --git a/src/views/menus.vue b/src/views/menus.vue
index b9c8cf9..2f5ad51 100644
--- a/src/views/menus.vue
+++ b/src/views/menus.vue
@@ -30,14 +30,21 @@
     </div>
   </div>
   <div class="content_box" v-show="fullScreen">
-    <layer-manage @setCloseLayer="setCloseLayer" v-if="checkMenuFlag == 'l1'">
-    </layer-manage>
+    <div v-show="checkMenuFlag == 'l1'">
+      <layer-manage @setCloseLayer="setCloseLayer"> </layer-manage>
+    </div>
+    <div v-show="checkMenuFlag == 'l2'">
+      <plotting> </plotting>
+    </div>
+    <div v-show="checkMenuFlag == 'l5'">
+      <baseMapSwitching> </baseMapSwitching>
+    </div>
 
-    <plotting v-show="checkMenuFlag == 'l2'"> </plotting>
-    <baseMapSwitching v-show="checkMenuFlag == 'l5'"> </baseMapSwitching>
     <search v-if="thematicMapBtnState"> </search>
   </div>
+
   <top-btn v-show="fullScreen" v-if="thematicMapBtnState"></top-btn>
+
   <thematic-map v-show="!thematicMapBtnState"></thematic-map>
   <div class="fullScreen_btn" v-show="!fullScreen" @click="screen"></div>
 </template>
@@ -136,9 +143,8 @@
     document.webkitIsFullScreen
   );
 }
-onMounted(() => {
-  menuOptions.value = menuData.leftMenu;
-});
+menuOptions.value = menuData.leftMenu;
+onMounted(() => {});
 </script>
 <style lang="less" scoped>
 .menus {

--
Gitblit v1.9.3