ts/src/views/MultiTrajPlayback/hooks/useMultiSatTraj.js

43 lines
1.3 KiB
JavaScript
Raw Normal View History

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(),
2025-04-28 01:41:15 +00:00
totalSeconds: timeRange[1] - timeRange[0],
2025-04-28 00:56:02 +00:00
}
)
2025-04-28 01:41:15 +00:00
console.log(timeRange[1] - timeRange[0], 'timeRange[1] - timeRange[0]')
2025-04-28 00:56:02 +00:00
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
}