From 35f53b54046e95a39ee6ca77f513fe5ce2feb6d7 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 04 Feb 2026 16:55:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/drone-command/src/components/map-container/device-map-container.vue | 65 +++++++++++++++++++-------------
1 files changed, 38 insertions(+), 27 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 9e0b392..dafcb0b 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
@@ -49,11 +49,10 @@
import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import { buildEllipsePositions } from '@/utils/cesium/shapeTools'
import { AREA_TYPE_STYLE_MAP, BUFFER_LEVEL_STYLES, DEFAULT_AREA_STYLE } from '@ztzf/constants'
-import { fwAreaDivideListApi } from '@/views/areaManage/partition/partitionApi'
-import { fwDefenseSceneManageListApi } from '@/views/areaManage/sceneManage/sceneManageApi'
+import { newAreaDivideList, newDefenseSceneManageList } from '@/api/dataCockpit/index'
-import { cockpitAggregationApi } from '@/api/dataCockpit'
+import { newCockpitAggregationApi } from '@/api/dataCockpit'
import layerControlIcon from '@/assets/images/dataCockpit/layerControl.png'
import equipmentIcon from '@/assets/images/dataCockpit/map/equipment.png'
import offlineEquipmentIcon from '@/assets/images/dataCockpit/map/offline-equipment.png'
@@ -893,32 +892,26 @@
const entityId = `online-device-${item.id ?? index}-${index}`
const rangeMeters = getDeviceRange(item)
devicePositions.push({ lng: position.longitude, lat: position.latitude })
- const billboard = deviceBillboardCollection.add({
- position: Cesium.Cartesian3.fromDegrees(position.longitude, position.latitude, 0),
- image: isOnline ? equipmentIcon : offlineEquipmentIcon,
- width: 40,
- height: 56,
- verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
- })
- billboard.id = entityId
- devicePickMap.set(entityId, { data: item, billboard })
- deviceEntries.push({ position, rangeMeters, billboard, isOnline })
+ deviceEntries.push({ position, rangeMeters, isOnline, entityId, data: item })
})
- if (selectedTargetType.value === 'device' && selectedDeviceBillboard && !devicePickMap.has(selectedDeviceBillboard.id)) {
- closePopup()
- }
if (deviceEntries.length) {
const heights = await getPointPositionsHeight(devicePositions, viewer)
deviceEntries.forEach((entry, index) => {
const height = Number(heights?.[index]?.ASL)
const centerHeight = Number.isFinite(height) ? height : 0
- if (entry.billboard) {
- entry.billboard.position = Cesium.Cartesian3.fromDegrees(
+ const billboard = deviceBillboardCollection.add({
+ position: Cesium.Cartesian3.fromDegrees(
entry.position.longitude,
entry.position.latitude,
centerHeight
- )
- }
+ ),
+ image: entry.isOnline ? equipmentIcon : offlineEquipmentIcon,
+ width: 40,
+ height: 56,
+ verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+ })
+ billboard.id = entry.entityId
+ devicePickMap.set(entry.entityId, { data: entry.data, billboard })
if (!entry.isOnline) return
if (!Number.isFinite(entry.rangeMeters) || entry.rangeMeters <= 0) return
const primitive = createDeviceRangePrimitiveWithHeight(entry.position, entry.rangeMeters, centerHeight)
@@ -927,6 +920,9 @@
addCockpitPrimitive(primitive)
deviceRingFillPrimitives.push(primitive)
})
+ }
+ if (selectedTargetType.value === 'device' && selectedDeviceBillboard && !devicePickMap.has(selectedDeviceBillboard.id)) {
+ closePopup()
}
reorderCockpitPrimitives()
}
@@ -1142,7 +1138,7 @@
const loadPartitions = async () => {
if (!viewer) return
try {
- const res = await fwAreaDivideListApi({
+ const res = await newAreaDivideList({
isSetSceneManage: 1,
flyTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
})
@@ -1274,28 +1270,43 @@
const handleDroneSignal = () => emit('droneSignal', selectedDevice.value)
const handleDroneCounter = () => emit('droneCounter', selectedDevice.value)
-const renderCommandPosts = list => {
+const renderCommandPosts = async list => {
if (!viewer) return
ensureCommandPostCollection()
commandPostBillboardCollection.removeAll()
commandPostBillboardCollection.show = detailVisible.value
+ const entries = []
+ const positions = []
; (list || []).forEach((item, index) => {
const position = getDevicePosition(item)
if (!position) return
+ entries.push({ position, index })
+ positions.push({ lng: position.longitude, lat: position.latitude })
+ })
+ if (positions.length) {
+ const heights = await getPointPositionsHeight(positions, viewer)
+ entries.forEach((entry, idx) => {
+ const height = Number(heights?.[idx]?.ASL)
+ const centerHeight = Number.isFinite(height) ? height : 0
commandPostBillboardCollection.add({
- position: Cesium.Cartesian3.fromDegrees(position.longitude, position.latitude, 0),
+ position: Cesium.Cartesian3.fromDegrees(
+ entry.position.longitude,
+ entry.position.latitude,
+ centerHeight
+ ),
image: commandPostIcon,
width: 40,
height: 56,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
})
})
+ }
reorderCockpitPrimitives()
}
const loadAggregation = async () => {
try {
- const res = await cockpitAggregationApi({
+ const res = await newCockpitAggregationApi({
effectiveRangeKmIsNotNull: 1
})
renderAggregation(res?.data?.data ?? [])
@@ -1306,12 +1317,12 @@
const loadCommandPosts = async () => {
try {
- const res = await fwDefenseSceneManageListApi({
+ const res = await newDefenseSceneManageList({
time: dayjs().format('YYYY-MM-DD HH:mm:ss')
})
- renderCommandPosts(res?.data?.data ?? [])
+ await renderCommandPosts(res?.data?.data ?? [])
} catch (error) {
- renderCommandPosts([])
+ await renderCommandPosts([])
}
}
--
Gitblit v1.9.3