From 545e343b7ec25fcc95d5a43727c9ebfbd4576b5e Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期五, 18 八月 2023 10:54:20 +0800
Subject: [PATCH] 图层管理修改,空间查询修改,鼠标移动显示经纬度修改

---
 src/assets/js/Map/server.js      |    4 +
 src/views/query/SpatialQuery.vue |    6 ++-
 src/components/mouseMove.vue     |   68 ++++++++++++++++------------------
 src/views/layer/layerManage.vue  |   31 ++++++++++-----
 src/assets/js/Map/config.js      |    2 
 5 files changed, 61 insertions(+), 50 deletions(-)

diff --git a/src/assets/js/Map/config.js b/src/assets/js/Map/config.js
index 55edf79..312cdca 100644
--- a/src/assets/js/Map/config.js
+++ b/src/assets/js/Map/config.js
@@ -1,5 +1,5 @@
 //鏄惁涓虹敓浜х幆澧�
-const isWeb = true;
+const isWeb = false;
 //鏄惁涓虹敓浜х幆澧�
 const webUrl = isWeb ? "/web" : "";
 //閰嶇疆鏂囦欢鍦板潃
diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js
index e26f9a9..76e67c4 100644
--- a/src/assets/js/Map/server.js
+++ b/src/assets/js/Map/server.js
@@ -303,6 +303,7 @@
     tileset.readyPromise.then((tileset) => {
       tileset.id = res.id;
     });
+    this.layerList.push({ id: res.id, layerData: tileset, type: "tileset" });
   },
   //鍦板舰绉婚櫎浜嬩欢
   setChangeTearrinLayer() {
@@ -334,7 +335,8 @@
               {}
             );
             break;
-          case "":
+          case "tileset":
+            window.Viewer.scene.primitives.remove(e.layerData)
             break;
         }
         this.layerList.splice(i, 1);
diff --git a/src/components/mouseMove.vue b/src/components/mouseMove.vue
index e1fc7ae..dd80289 100644
--- a/src/components/mouseMove.vue
+++ b/src/components/mouseMove.vue
@@ -12,6 +12,9 @@
     <div class="earthLable">{{ longitude }}</div>
     <div class="earthLable">绾害 :</div>
     <div class="earthLable">{{ latitude }}</div>
+    <div class="earthLable">鍦板舰楂樺害 :</div>
+    <div class="earthLable">{{ altHeight }} </div>
+    <div class="earthLable">绫�</div>
     <div class="earthLable">瑙嗚楂樺害 :</div>
     <div class="earthLable">{{ alt }} </div>
     <div class="earthLable">鍗冪背</div>
@@ -34,7 +37,7 @@
 const latitude = ref("0.00");
 const rate = ref("0.00");
 const alt = ref("0.00");
-const alheight = ref("0.00");
+const altHeight = ref("0.00");
 
 let entitiesObj = reactive({
   lonLine: [],
@@ -69,31 +72,12 @@
       latitude.value = SmartEarth.Cesium.Math.toDegrees(
         cartographic.latitude
       ).toFixed(6);
-
-      let scene = window.Viewer.scene;
-      // 鑾峰彇鐢诲竷鐨勫ぇ灏�
-      var width = scene.canvas.clientWidth;
-      var height = scene.canvas.clientHeight;
-      //鑾峰彇鐢诲竷涓績涓や釜鍍忕礌鐨勫潗鏍囷紙榛樿鍦板浘娓叉煋鍦ㄧ敾甯冧腑蹇冧綅缃級
-      var left = scene.camera.getPickRay(
-        new SmartEarth.Cesium.Cartesian2((width / 2) | 0, (height - 1) / 2)
+      altHeight.value = window.Viewer.scene.globe.getHeight(
+        Cesium.Cartographic.fromDegrees(longitude.value, latitude.value, 0)
       );
-      var right = scene.camera.getPickRay(
-        new SmartEarth.Cesium.Cartesian2((1 + width / 2) | 0, (height - 1) / 2)
-      );
-      var globe = scene.globe;
-      var leftPosition = globe.pick(left, scene);
-      var rightPosition = globe.pick(right, scene);
-      if (!Cesium.defined(leftPosition) || !Cesium.defined(rightPosition)) {
-        return;
+      if (altHeight.value) {
+        altHeight.value = altHeight.value.toFixed(6);
       }
-      var leftCartographic =
-        globe.ellipsoid.cartesianToCartographic(leftPosition);
-      var rightCartographic =
-        globe.ellipsoid.cartesianToCartographic(rightPosition);
-      var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic();
-      geodesic.setEndPoints(leftCartographic, rightCartographic);
-      rate.value = geodesic.surfaceDistance.toFixed(6); //鍒嗚鲸鐜�
     }
   }, SmartEarth.Cesium.ScreenSpaceEventType.MOUSE_MOVE);
 
@@ -103,18 +87,30 @@
       2
     );
     alt.value = camera_alt;
-    // // 鏂逛綅瑙�
-    // let heading = Cesium.Math.toDegrees(viewer.camera.heading).toFixed(2);
-    // // 淇话瑙�
-    // let pitch = Cesium.Math.toDegrees(viewer.camera.pitch).toFixed(2);
-    // // 缈绘粴瑙�
-    // let roll = Cesium.Math.toDegrees(viewer.camera.roll).toFixed(2);
-    // // 绾у埆
-    // let level = 0;
-    // let tileRender = viewer.scene._globe._surface._tilesToRender;
-    // if (tileRender && tileRender.length > 0) {
-    //   level = viewer.scene._globe._surface._tilesToRender[0]._level;
-    // }
+    let scene = window.Viewer.scene;
+    // 鑾峰彇鐢诲竷鐨勫ぇ灏�
+    var width = scene.canvas.clientWidth;
+    var height = scene.canvas.clientHeight;
+    //鑾峰彇鐢诲竷涓績涓や釜鍍忕礌鐨勫潗鏍囷紙榛樿鍦板浘娓叉煋鍦ㄧ敾甯冧腑蹇冧綅缃級
+    var left = scene.camera.getPickRay(
+      new SmartEarth.Cesium.Cartesian2((width / 2) | 0, (height - 1) / 2)
+    );
+    var right = scene.camera.getPickRay(
+      new SmartEarth.Cesium.Cartesian2((1 + width / 2) | 0, (height - 1) / 2)
+    );
+    var globe = scene.globe;
+    var leftPosition = globe.pick(left, scene);
+    var rightPosition = globe.pick(right, scene);
+    if (!Cesium.defined(leftPosition) || !Cesium.defined(rightPosition)) {
+      return;
+    }
+    var leftCartographic =
+      globe.ellipsoid.cartesianToCartographic(leftPosition);
+    var rightCartographic =
+      globe.ellipsoid.cartesianToCartographic(rightPosition);
+    var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic();
+    geodesic.setEndPoints(leftCartographic, rightCartographic);
+    rate.value = geodesic.surfaceDistance.toFixed(6); //鍒嗚鲸鐜�
   });
 };
 const gridSwitch = () => {
diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index fda3210..84a35a3 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -1,13 +1,22 @@
 <template>
-  <div v-drag class="layerBox">
+  <div
+    v-drag
+    class="layerBox"
+  >
     <div class="layerTitle">
       <div class="tileLeft">
-        <div @click="setCloseLayer" class="titleImg">
+        <div
+          @click="setCloseLayer"
+          class="titleImg"
+        >
           <ArrowLeft />
         </div>
         <div class="titleLable">鍥惧眰绠$悊</div>
       </div>
-      <div class="titleImg set" @click="layerSetBox">
+      <div
+        class="titleImg set"
+        @click="layerSetBox"
+      >
         <Setting />
       </div>
     </div>
@@ -34,7 +43,10 @@
                 Delete
               </a>
             </span> -->
-            <span class="button" v-if="data.isLayer == 1">
+            <span
+              class="button"
+              v-if="data.isLayer == 1"
+            >
               <el-dropdown trigger="click">
                 <span class="el-dropdown-link">
                   <el-icon class="el-icon--right">
@@ -43,12 +55,11 @@
                 </span>
                 <template #dropdown>
                   <el-dropdown-menu>
-                    <el-dropdown-item @click.native="clickdropdown(1, data)"
-                      >璇︾粏</el-dropdown-item
-                    >
-                    <el-dropdown-item @click.native="clickdropdown(2, data)"
-                      >灞炴��</el-dropdown-item
-                    >
+                    <el-dropdown-item @click.native="clickdropdown(1, data)">璇︾粏</el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="data.type == 3"
+                      @click.native="clickdropdown(2, data)"
+                    >灞炴��</el-dropdown-item>
                   </el-dropdown-menu>
                 </template>
               </el-dropdown>
diff --git a/src/views/query/SpatialQuery.vue b/src/views/query/SpatialQuery.vue
index f79d427..91ee2cd 100644
--- a/src/views/query/SpatialQuery.vue
+++ b/src/views/query/SpatialQuery.vue
@@ -317,14 +317,16 @@
     return;
   }
   var str = std.filter((res) => {
-    if (res.type == 2) {
+    if (res.isLayer == 1 && res.tab) {
       return res;
     }
   });
 
   menuList.value = str;
   listData.value.wkt = store.state.spatialQueryData.wkt;
-  listData.value.name = menuList.value[0].name;
+  var val_name = menuList.value[0].tab.replaceAll("moon:", "");
+  val_name = val_name.replaceAll("_", "");
+  listData.value.name = val_name;
   isActive.value = menuList.value[0].id;
 
   listData.value.hasGeom = 1;

--
Gitblit v1.9.3