From 7c515e10fcdffcff295a04533b5789a373aee59d Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期三, 02 八月 2023 17:50:26 +0800
Subject: [PATCH] 1

---
 src/views/Tools/LayerTree.vue |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue
index bfac89b..94a139b 100644
--- a/src/views/Tools/LayerTree.vue
+++ b/src/views/Tools/LayerTree.vue
@@ -48,8 +48,8 @@
       >
         <span v-show="!data.isEdit">
           <span :class="[data.id >= 99 ? 'slot-t-node--label' : '']">{{
-              node.label
-            }}</span>
+                              node.label
+                            }}</span>
         </span>
         <span v-show="data.isEdit">
           <el-input
@@ -295,6 +295,7 @@
     // 瀹氫綅
     async positioning() {
       this.rmListener();
+
       if (["Tileset", "3DML"].indexOf(this.currentData.serveType) > -1) {
         for (let i in Viewer.scene.primitives._primitives) {
           if (Viewer.scene.primitives._primitives[i].id == this.currentData.cnName) {
@@ -318,7 +319,18 @@
       }
 
       if ("Mpt" == this.currentData.serveType) {
-        viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(101.8, 37.9, 10000000.0) }); // 涓浗
+        if (this.currentData.json) {
+          var json = JSON.parse(this.currentData.json);
+          if (json.west) {
+            Viewer.camera.flyTo({
+              destination: Cesium.Rectangle.fromDegrees(json.west, json.south, json.east, json.north)
+            })
+          }
+        } else {
+
+          Viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(101.8, 37.9, 10000000.0) }); // 涓浗
+        }
+
       }
     },
     // 閽诲瓟鏌辩姸鍥�
@@ -403,7 +415,7 @@
         }
       }
 
-      if (obj.TMS.length) this.setChangeDEM(obj.DEM, checked);
+      if (obj.DEM.length) this.setChangeDEM(obj.DEM, checked);
       if (obj.TMS.length) this.setChangeTMS(obj.TMS, checked);
       if (obj.Mpt.length) this.setChangeMpt(obj.Mpt, checked);
       if (obj.Tileset.length) this.setChangeTileset(obj.Tileset, checked);
@@ -585,12 +597,18 @@
       for (let i in layers) {
         let res = layers[i];
         if (res.url.indexOf("{host}") > -1) res.url = res.url.replace("{host}", iisHost);
-        let urls = res.url.split(';')
 
-        let layer = sgworld.Creator.createImageryProvider(res.cnName, "wms", {
+        let urls = res.url.split(';');
+        var ops = {
           url: urls[0],
           layers: urls[1]
-        }, "0", undefined, true, "");
+        };
+        if (res && res.json) {
+          var rs = JSON.parse(res.json);
+          ops.rectangle = Cesium.Rectangle.fromDegrees(rs.west, rs.south, rs.east, rs.north);
+        }
+
+        let layer = sgworld.Creator.createImageryProvider(res.cnName, "wms", ops, "0", undefined, true, "");
         this.mptLayer.push(layer);
       }
     },

--
Gitblit v1.9.3