From b4b062b12fb7f4ae1801dd8a1c34d4deea84e6cb Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 20 Jan 2026 17:13:58 +0800
Subject: [PATCH] feat:无人机轨迹增加无人机icon

---
 applications/drone-command/src/assets/images/dataCockpit/map/drone.png               |    0 
 applications/drone-command/src/assets/images/dataCockpit/legend/drone.png            |    0 
 applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue |   17 +++++++++++++++--
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/applications/drone-command/src/assets/images/dataCockpit/legend/drone.png b/applications/drone-command/src/assets/images/dataCockpit/legend/drone.png
index 130cf04..745f8bb 100644
--- a/applications/drone-command/src/assets/images/dataCockpit/legend/drone.png
+++ b/applications/drone-command/src/assets/images/dataCockpit/legend/drone.png
Binary files differ
diff --git a/applications/drone-command/src/assets/images/dataCockpit/map/drone.png b/applications/drone-command/src/assets/images/dataCockpit/map/drone.png
new file mode 100644
index 0000000..bbc513c
--- /dev/null
+++ b/applications/drone-command/src/assets/images/dataCockpit/map/drone.png
Binary files differ
diff --git a/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue b/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
index 57be9e6..1840cd8 100644
--- a/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
+++ b/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
@@ -73,6 +73,7 @@
 import * as Cesium from 'cesium'
 import { flyVisual } from '@/utils/cesium/mapUtil'
 import { ArrowLineMaterialProperty } from '@/utils/cesium/Material'
+import droneIcon from '@/assets/images/dataCockpit/map/drone.png'
 
 const initForm = () => ({
 	droneName: '',
@@ -127,6 +128,7 @@
 // 渲染航线
 function drawFlightPath() {
 	const positions = list.value.map(p => degreesToC3(p))
+	if (!positions.length) return
 	droneLineEntity && geometricSource.entities.remove(droneLineEntity)
 	droneLineEntity = geometricSource.entities.add({
 		polyline: {
@@ -134,6 +136,16 @@
 			positions: positions,
 			material: arrowLineMaterialProperty,
 			clampToGround: false,
+		},
+	})
+	startDroneEntity && geometricSource.entities.remove(startDroneEntity)
+	startDroneEntity = geometricSource.entities.add({
+		position: positions[0],
+		billboard: {
+			image: droneIcon,
+			width: 40,
+			height: 40,
+			verticalOrigin: Cesium.VerticalOrigin.CENTER,
 		},
 	})
 	viewer.flyTo(droneLineEntity, { duration: 0 })
@@ -146,6 +158,7 @@
 	viewer = null
 	geometricSource = null
 	droneLineEntity = null
+	startDroneEntity = null
 }
 
 function getRowClassName({ row }) {
@@ -154,7 +167,7 @@
 	return row?.isAlarm === 1 ? 'alarm-row' : ''
 }
 
-let viewer, geometricSource, droneLineEntity
+let viewer, geometricSource, droneLineEntity, startDroneEntity
 function initMap() {
 	if (viewer) return
 	const publicCesiumInstance = new PublicCesium({
@@ -189,7 +202,7 @@
 <style scoped lang="scss">
 :deep(.alarm-row) {
 	background: #2B2B4C !important;
-	
+
 	td {
 		background-color: transparent !important;
 	}

--
Gitblit v1.9.3