2025-04-23 06:17:15 +00:00
|
|
|
import { ref } from 'vue'
|
|
|
|
import { useSatellite } from '../../Satellite/hooks/satellite'
|
|
|
|
export function useMultiSatTraj() {
|
2025-04-28 00:56:02 +00:00
|
|
|
const multiSatTrajMap = new Map()
|
|
|
|
const satellitePayloadStatusMap = ref(new Map())
|
|
|
|
const { addSatellite } = useSatellite()
|
|
|
|
|
|
|
|
function addSatelliteTraj(satelliteList = [], timeRange) {
|
|
|
|
satelliteList.forEach(({ id, tle }) => {
|
|
|
|
if (!multiSatTrajMap.has(id)) {
|
|
|
|
const satellite = addSatellite(
|
|
|
|
{ id, tle },
|
|
|
|
{
|
|
|
|
startTime: new Date(timeRange[0]).toISOString() || new Date(),
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
satellite.sensor = true
|
|
|
|
multiSatTrajMap.set(id, satellite)
|
|
|
|
satellitePayloadStatusMap.value.set(id, satellite.sensor)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
function changeSatellitePayloadStatus(id, status) {
|
|
|
|
multiSatTrajMap.has(id) && (multiSatTrajMap.get(id).sensor = status)
|
|
|
|
}
|
|
|
|
|
|
|
|
function removeAllMultiSatelliteTraj() {
|
|
|
|
for (let [key, satellite] of multiSatTrajMap.entries()) {
|
|
|
|
satellite.destroy()
|
|
|
|
multiSatTrajMap.delete(key)
|
|
|
|
}
|
|
|
|
}
|
2025-04-27 09:11:06 +00:00
|
|
|
return {
|
|
|
|
addSatelliteTraj,
|
|
|
|
removeAllMultiSatelliteTraj,
|
|
|
|
satellitePayloadStatusMap,
|
|
|
|
changeSatellitePayloadStatus,
|
|
|
|
}
|
2025-04-23 06:17:15 +00:00
|
|
|
}
|