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