From a8b8b40b8b849def3a02cd3d655bdfd449d1c44f Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 31 Jan 2026 17:21:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/drone-command/src/components/map-container/device-map-container.vue |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/applications/drone-command/src/components/map-container/device-map-container.vue b/applications/drone-command/src/components/map-container/device-map-container.vue
index e1f0a12..650d950 100644
--- a/applications/drone-command/src/components/map-container/device-map-container.vue
+++ b/applications/drone-command/src/components/map-container/device-map-container.vue
@@ -77,7 +77,7 @@
 const CLUSTER_HEIGHT = 100000
 const DETAIL_HEIGHT = 10000
 const POLYGON_HEIGHT_M = 0.2
-const DRONE_TRACK_DURATION_S = 10 * 60
+const DRONE_TRACK_DURATION_S = 30 * 60
 
 const props = defineProps({
 	allDevices: {
@@ -228,13 +228,20 @@
 		offset: Math.random() * PULSE_DURATION_S,
 		entity: null,
 	}
+	const getPulseHeight = () => {
+		const pos = getBillboardPosition(billboard)
+		if (!pos) return 0
+		const carto = Cesium.Cartographic.fromCartesian(pos)
+		return carto?.height ?? 0
+	}
 	pulse.entity = viewer.entities.add({
 		position: new Cesium.CallbackProperty(() => getBillboardPosition(billboard), false),
 		ellipse: {
 			semiMajorAxis: new Cesium.CallbackProperty(() => getPulseRadius(pulse), false),
 			semiMinorAxis: new Cesium.CallbackProperty(() => getPulseRadius(pulse), false),
 			material,
-			heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+			height: new Cesium.CallbackProperty(() => getPulseHeight(), false),
+			heightReference: Cesium.HeightReference.NONE,
 		},
 	})
 	favoritePulseEntities.push(pulse)

--
Gitblit v1.9.3