From c93d095895a7aa6b2781ae30f1a485d4b451b077 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 18 Feb 2025 10:15:18 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/pilot-h5

---
 src/views/hooks/droneFly.ts |   90 ++++++++++++++++++---------------------------
 1 files changed, 36 insertions(+), 54 deletions(-)

diff --git a/src/views/hooks/droneFly.ts b/src/views/hooks/droneFly.ts
index c49b3da..a2bf155 100644
--- a/src/views/hooks/droneFly.ts
+++ b/src/views/hooks/droneFly.ts
@@ -40,9 +40,9 @@
   let me_longitude = 0;
   let me_altitude = 0;
   // 扫射定位
-  let measure_target_longitude = 0;
-  let measure_target_latitude = 0;
-  let measure_target_altitude = 0;
+  let measure_target_longitude = 115.85635872364763;
+  let measure_target_latitude = 28.624648387113627;
+  let measure_target_altitude = 63.5;
 
 
   async function initDock(data:any, sn:any, dockSn:any, workspaceId:any, ssLinePath:any, viewDroneInfo:any) {
@@ -567,10 +567,10 @@
   // 获取手机定位和激光发射定位的高度和距离
   function getTwoHeightWidth(workspaceId:String) {
     // 国内地图不会为0或者小于0
-    console.log('自身定位经纬度1', me_latitude)
-    console.log('自身定位经纬度2', me_longitude)
-    console.log('激光扫过定位1', measure_target_latitude)
-    console.log('激光扫过定位2', measure_target_longitude)
+    // console.log('自身定位经纬度1', me_latitude)
+    // console.log('自身定位经纬度2', me_longitude)
+    // console.log('激光扫过定位1', measure_target_latitude)
+    // console.log('激光扫过定位2', measure_target_longitude)
     if (me_latitude <= 0 || me_longitude <= 0 || measure_target_latitude <= 0 || measure_target_longitude <= 0) return
     getTwoPointInfo(workspaceId,me_latitude,me_longitude,measure_target_latitude,measure_target_longitude).then((res:any) => {
       const heightDifference = res.data.heightDifference
@@ -593,59 +593,26 @@
 
   const meMapSrc = new URL('@/assets/images/me.png', import.meta.url).href
   // 获取手机设备定位
-  function getPhoneLocation(value:Boolean, workspaceId:String) {
+  function getPhoneLocation(workspaceId:String) {
     if (window.cesiumViewer == null) return
-    // 创建一个箭头实体
-    removeById('me_dw')
-    myAppEntity = window.cesiumViewer.entities.add({
-      id: 'me_dw',
-      position: globalCesium.Cartesian3.fromDegrees(0, 0, 0), // 初始位置
-      billboard: {
-        image: meMapSrc, // 箭头图片路径
-        width: 30,
-        height: 30,
-        alignedAxis: globalCesium.Cartesian3.UNIT_Z, // 对齐轴
-      },
-      // orientation: new globalCesium.CallbackProperty(() => {
-      //   return globalCesium.Transforms.headingPitchRollQuaternion(
-      //     myAppEntity.position.getValue(window.cesiumViewer.clock.currentTime),
-      //     new globalCesium.HeadingPitchRoll(heading, 0, 0) // 设置朝向
-      //   );
-      // }, false),
-    });
-
-    let heading = 0; // 初始朝向
-    // 获取设备朝向
-    // if (window.DeviceOrientationEvent) {
-    //   window.addEventListener('deviceorientation', (event) => {
-    //     if (event.alpha !== null) {
-    //       heading = globalCesium.Math.toRadians(event.alpha); // 将 alpha 转换为弧度
-    //     }
-    //   });
-    // } else {
-    //   console.log('手机不支持.');
-    // }
-
-    // 获取设备位置
     if (navigator.geolocation) {
       navigator.geolocation.watchPosition((position) => {
+        if (me_longitude > 0 && me_longitude == position.coords.longitude && me_latitude > 0 && me_latitude == position.coords.latitude) return 
         me_longitude = position.coords.longitude;
         me_latitude = position.coords.latitude;
         me_altitude = position.coords.altitude || 0;
-
-        // 更新箭头实体的位置
-        myAppEntity.position = globalCesium.Cartesian3.fromDegrees(me_longitude, me_latitude, me_altitude);
-        if (value) {
-          // 将相机定位到设备位置 只有点击图标才可以执行这里
-          window.cesiumViewer.camera.setView({
-            destination: globalCesium.Cartesian3.fromDegrees(me_longitude, me_latitude, me_altitude + 1000), // 相机高度
-            // orientation: {
-            //   heading: heading, // 相机朝向
-            //   pitch: globalCesium.Math.toRadians(-90), // 俯视角度
-            //   roll: 0,
-            // },
-          });
-        }
+        // 创建一个箭头实体
+        removeById('me_dw')
+        myAppEntity = window.cesiumViewer.entities.add({
+          id: 'me_dw',
+          position: globalCesium.Cartesian3.fromDegrees(me_longitude, me_latitude, me_altitude),
+          billboard: {
+            image: meMapSrc, // 箭头图片路径
+            width: 30,
+            height: 30,
+            scale: 1.0,
+          }
+        });
         // 查看两条线直接距离和高度
         getTwoHeightWidth(workspaceId)
       }, (error) => {
@@ -656,9 +623,24 @@
     }
   }
 
+  // 点击右边定自身定位
+  function clickPhoneLocation() {
+    if (myAppEntity && myAppEntity != null) {
+      // 将相机定位到设备位置 只有点击图标才可以执行这里
+      window.cesiumViewer.camera.setView({
+        destination: globalCesium.Cartesian3.fromDegrees(
+          Number(me_longitude),
+          Number(me_latitude),
+          10000.0,
+        ), // 相机高度
+      });
+    }
+  }
+
 
   return {
     initDock,
     getPhoneLocation,
+    clickPhoneLocation
   }
 }
\ No newline at end of file

--
Gitblit v1.9.3