From f79670d51e41f1e762762c73e423fb658556102b Mon Sep 17 00:00:00 2001
From: jihongshun <1151753686@qq.com>
Date: 星期五, 08 八月 2025 10:55:32 +0800
Subject: [PATCH] 模板增加计算两个点距离

---
 src/utils/components/init-map.vue |   49 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 39 insertions(+), 10 deletions(-)

diff --git a/src/utils/components/init-map.vue b/src/utils/components/init-map.vue
index 4ecd9e3..e77392c 100644
--- a/src/utils/components/init-map.vue
+++ b/src/utils/components/init-map.vue
@@ -27,11 +27,12 @@
     </div>
 
       <!-- 宸︿笅瑙掑�嶇巼淇℃伅 -->
-      <div class="zoom-info">
-        <el-tag type="success">鍊嶇巼: {{ zoomRatio.toFixed(1) }}X</el-tag>
-      </div>
+      
     </div>
-
+    <div class="zoom-info">
+      <el-tag type="success">鍊嶇巼: {{ zoomRatio.toFixed(1) }}X</el-tag>
+      <el-tag type="success">璺濈: {{ betweenDistance.toFixed(1) }}绫�</el-tag>
+    </div>
     
     
     <!-- botton -->
@@ -125,7 +126,7 @@
 // let  pois = [0, 0,0] 
 let holdingPosition;
 let rightKeyMove = false
-let  distance = 100; 
+let  distance = 25; 
 export default {
   props: {
     towerUrl: {
@@ -133,6 +134,9 @@
       default() {
         return ''
       }
+    },
+    deviceData: {
+      type: Object,
     },
   },
   data(){
@@ -169,11 +173,13 @@
           14: '14X',
           28: '28X',
           56: '56X'
-        }
+        },
+        betweenDistance:0
     }
   },
   mounted(){
      this.initCesium();
+     console.log(this.deviceData)
   },
   computed: {
     boxWidth() {
@@ -381,8 +387,18 @@
                     "latitude": Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude),
                     "longitude":  Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude),
                 }
+                const lookPoint = Cesium.Cartesian3.fromDegrees(longitude, latitude)
+                const watchPoint = Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude), Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude))
+                const betweenDistanceWatch = Cesium.Cartesian3.distance(lookPoint, watchPoint)
+                _this.betweenDistance = betweenDistanceWatch
+                console.log(lookPoint)
+                console.log(watchPoint)
+                // const guanPoint1 = Cesium.Cartesian3.fromDegrees(longitude, latitude)
+                console.log(viewerM.entities.getById('groundPoiId0'))
                 //濉旂殑璺濈鍜岃娴嬬偣鐨勮窛绂�
-                const point1 = Cesium.Cartesian3.fromDegrees(0, 0, 50);
+                console.log(_this.deviceData)
+                const point1 = Cesium.Cartesian3.fromDegrees(0, 0, _this.deviceData?.modelHeight || 45);
+                // const point1 = Cesium.Cartesian3.fromDegrees(0, 0, 45);
                 const point2 = Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude), Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude), Cesium.Cartographic.fromCartesian(tagert).height);
 
                 // 璁$畻璺濈锛堝崟浣嶏細绫筹級
@@ -527,6 +543,19 @@
         } else {
           groupEntity.position = position;
         }
+        //璁$畻涓や釜鐐硅窛绂�
+        console.log(viewerM.entities)
+           const groupEntityGround = viewerM.entities.getById("groundPoiId"+(counter-1));
+           const groupPosition  = groupEntityGround.position.getValue(Cesium.JulianDate.now());
+           if (groupPosition) {
+              const cartographic = Cesium.Cartographic.fromCartesian(groupPosition);
+              const longitude = Cesium.Math.toDegrees(cartographic.longitude);
+              const latitude = Cesium.Math.toDegrees(cartographic.latitude);
+              const point1 = Cesium.Cartesian3.fromDegrees(lon, lat);
+              const point2 = Cesium.Cartesian3.fromDegrees(longitude, latitude);
+              const gure = Cesium.Cartesian3.distance(point1, point2)
+              this.betweenDistance  = gure
+          }
       }
       const key = event.key;
       const lower = key.toLowerCase();
@@ -896,7 +925,7 @@
       const heading = Cesium.Math.toDegrees(camera.heading);
       const pitch = Cesium.Math.toDegrees(camera.pitch);
       const roll = Cesium.Math.toDegrees(camera.roll);
-      const point1 = Cesium.Cartesian3.fromDegrees(0, 0, 50);
+      const point1 = Cesium.Cartesian3.fromDegrees(0, 0, this.deviceData?.modelHeight || 45);
       const point2 = Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),position.height)
       
       var camResult =
@@ -1107,8 +1136,8 @@
 /* 宸︿笅瑙掑�嶇巼鏍囩 */
 .zoom-info {
   position: absolute;
-  bottom: 20px;
-  left: 20px;
+  bottom: 35px;
+  left: 340px;
 }
 
 </style>

--
Gitblit v1.9.3