From 61e6956be147e1e84e7104f16dd47e9f87f20dfd Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 18 Apr 2025 10:57:32 +0800
Subject: [PATCH] feat: 控制台显示一些信息

---
 src/components/CurrentTaskDetails/RealTimeMap.vue |   45 +++++++++++++++++++++++----------------------
 1 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/src/components/CurrentTaskDetails/RealTimeMap.vue b/src/components/CurrentTaskDetails/RealTimeMap.vue
index 4a63684..c5c01bc 100644
--- a/src/components/CurrentTaskDetails/RealTimeMap.vue
+++ b/src/components/CurrentTaskDetails/RealTimeMap.vue
@@ -26,12 +26,14 @@
 	tilingScheme: new AmapMercatorTilingScheme(),
 	credit: 'amap_SL',
 })
-let viewer = null
+
+const taskDetailsViewer = inject('taskDetailsViewer')
+
 const taskDetails = inject('taskDetails')
 const deviceOsdInfo = inject('deviceOsdInfo')
 
 const initMap = () => {
-	viewer = new Viewer('currentTaskMap', {
+	taskDetailsViewer.value = new Viewer('currentTaskMap', {
 		terrain: Terrain.fromWorldTerrain(),
 		infoBox: false, // 禁用沙箱,解决控制台报错
 		animation: false, // 左下角的动画仪表盘
@@ -45,17 +47,17 @@
 		baseLayer: false,
 		fullscreenButton: false,
 	})
-	const gdLayer = viewer.imageryLayers.addImageryProvider(imageryProvider_ammapSL)
+	const gdLayer = taskDetailsViewer?.value.imageryLayers.addImageryProvider(imageryProvider_ammapSL)
 	const options = {
 		bInvertColor: true,
 		bFilterColor: true,
 		filterColor: '#4e70a6',
 	}
 	// 添加蓝色滤镜
-	addBlueFilter(options, viewer, gdLayer)
-	viewer.scene.morphTo2D(0)
+	addBlueFilter(options, taskDetailsViewer?.value, gdLayer)
+	taskDetailsViewer?.value.scene.morphTo2D(0)
 	//设置默认点
-	viewer.camera.setView({
+	taskDetailsViewer?.value.camera.setView({
 		destination: Cartesian3.fromDegrees(115.763819, 28.787374, 5000),
 	})
 }
@@ -66,7 +68,7 @@
 		return Cartesian3.fromDegrees(Number(lon), Number(lat))
 	})
 	// 起点
-	viewer.entities.add({
+	taskDetailsViewer?.value.entities.add({
 		position: positions[0],
 		billboard: {
 			image: new Cesium.ConstantProperty(rwqfdImg),
@@ -75,7 +77,7 @@
 		},
 	})
 	// 终点
-	viewer.entities.add({
+	taskDetailsViewer?.value.entities.add({
 		position: positions[positions.length - 1],
 		billboard: {
 			image: new Cesium.ConstantProperty(endPointImg),
@@ -85,7 +87,7 @@
 		},
 	})
 	// 路径线
-	viewer.entities.add({
+	taskDetailsViewer?.value.entities.add({
 		polyline: {
 			width: 4,
 			positions: positions,
@@ -108,29 +110,28 @@
 	const waylinesXMLObj = removeTextKey(waylinesXMLJSON.Folder)
 	if (!waylinesXMLObj.Placemark.length) return
 	const allPoint = waylinesXMLObj.Placemark.map(item => item.Point.coordinates.split(','))
-	flyVisual(allPoint, viewer)
+	flyVisual(allPoint, taskDetailsViewer?.value)
 	drawWayline(waylinesXMLObj)
 }
 
 const removeMap = () => {
-	viewer.entities.removeAll()
-	viewer.destroy()
+	taskDetailsViewer?.value.entities.removeAll()
+	taskDetailsViewer?.value.destroy()
 }
-
 let viewInfoFrustum
 // 设置视椎
 const setCreateFrustum = () => {
-	const deviceInfo = deviceOsdInfo.value?.data?.host
-	if (!deviceInfo) return
+	const host = deviceOsdInfo.value?.data?.host
+	if (!host) return
 	viewInfoFrustum?.clear()
-	if ([14, 0].includes(deviceInfo.mode_code)) return
-	const attitude_head = 180 + deviceInfo.attitude_head
-	const gimbal_pitch = 90 - Number(deviceInfo?.payloads[0]?.gimbal_pitch) || 0
-	viewInfoFrustum = new CreateFrustum(viewer, {
+	if ([14, 0].includes(host.mode_code)) return
+	const attitude_head = 180 + host.attitude_head
+	const gimbal_pitch = 90 - Number(host?.payloads[0]?.gimbal_pitch) || 0
+	viewInfoFrustum = new CreateFrustum(taskDetailsViewer?.value, {
 		position: {
-			longitude: deviceInfo.longitude,
-			latitude: deviceInfo.latitude,
-			altitude: deviceInfo.height,
+			longitude: host.longitude,
+			latitude: host.latitude,
+			altitude: host.height,
 		},
 		width: 30,
 		height: 30,

--
Gitblit v1.9.3