From 46fade7760ade1b94c8cfd653942756dabb7ccea Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sat, 19 Apr 2025 18:01:55 +0800
Subject: [PATCH] feat:当前机巢任务执行加载航线
---
src/hooks/useTaskViewInfo/useTaskViewInfo.js | 43 ++++++++++++++++++++++++++-----------------
1 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/src/hooks/useTaskViewInfo/useTaskViewInfo.js b/src/hooks/useTaskViewInfo/useTaskViewInfo.js
index 54d4e18..0b18f1f 100644
--- a/src/hooks/useTaskViewInfo/useTaskViewInfo.js
+++ b/src/hooks/useTaskViewInfo/useTaskViewInfo.js
@@ -2,8 +2,8 @@
import aircraftGltf from '@/assets/gltf/aircraft.gltf'
import CreateFrustum from '@/utils/cesium/frustum/CreateFrustum'
-export function useTaskViewInfo (viewer, wsInfo, removeEntitys) {
- const newViewer = unref(viewer)
+export function useTaskViewInfo (viewer, wsInfo) {
+ const newViewer = isRef(viewer) ? viewer : ref(viewer)
let viewInfoFrustum
// 设置视椎
@@ -14,7 +14,7 @@
const attitude_head = 180 + host.attitude_head
const gimbal_pitch = 90 - Number(host?.payloads[0]?.gimbal_pitch) || 0
- viewInfoFrustum = new CreateFrustum(newViewer, {
+ viewInfoFrustum = new CreateFrustum(newViewer.value, {
position: {
longitude: host.longitude,
latitude: host.latitude,
@@ -33,14 +33,14 @@
function setAircraftGltf () {
const host = deviceOsdInfo.value?.data?.host
- const aircraftEntity = newViewer.entities.getById('aircraftGltf')
+ const aircraftEntity = newViewer.value?.entities.getById('aircraftGltf')
const position = Cesium.Cartesian3.fromDegrees(host.longitude, host.latitude, host.height)
if (aircraftEntity) {
aircraftEntity.position = new Cesium.ConstantPositionProperty(position)
return
}
- newViewer.entities.add({
+ newViewer.value?.entities.add({
id: 'aircraftGltf',
position,
model: {
@@ -55,24 +55,33 @@
// 视椎加载处理
const deviceOsdInfo = computed(() => wsInfo.value?.device_osd)
- watch(deviceOsdInfo, () => {
- const host = deviceOsdInfo.value?.data?.host
- if ([14, 0].includes(host.mode_code)) {
- mapEntityRemove()
- return
+ watch(
+ [
+ () => deviceOsdInfo.value,
+ () => newViewer.value
+ ],
+ (
+ [curDeviceOsdInfo, curViewer],
+ ) => {
+ const host = deviceOsdInfo.value?.data?.host
+
+ if (!curViewer) return
+
+ if ([14, 0].includes(host.mode_code)) {
+ mapEntityRemove()
+ return
+ }
+
+ setCreateFrustum(host)
+ setAircraftGltf()
}
-
- setCreateFrustum(host)
- setAircraftGltf()
- })
+ )
const mapEntityRemove = () => {
viewInfoFrustum?.clear()
- newViewer.entities.removeById('aircraftGltf')
-
- removeEntitys && removeEntitys()
+ newViewer.value?.entities.removeById('aircraftGltf')
}
onUnmounted(() => {
--
Gitblit v1.9.3