chore: update satellite.js to version 6.0.0 and improve position validation in calculations
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m54s
/ lint-build-and-check (push) Successful in 4m37s
/ surge (push) Successful in 2m48s
/ playwright (push) Successful in 1m15s

This commit is contained in:
严浩
2025-04-15 17:02:52 +08:00
parent 22e5c31f58
commit 5766bb828e
6 changed files with 13 additions and 15 deletions

View File

@ -66,7 +66,7 @@ export class SatelliteCalculator {
try {
const positionAndVelocity = propagate(satrec, jsDate);
if (typeof positionAndVelocity.position === 'boolean') {
if (positionAndVelocity === null) {
console.warn(`卫星 ${satelliteId} 在时间 ${jsDate} 位置计算失败或已衰减。`);
continue; // 跳过这个时间点
}

View File

@ -35,9 +35,8 @@ export async function demo_01_OrbitGeneration(viewer: Viewer) {
// 获取卫星位置
const positionAndVelocity = propagate(satrec, time);
// 有时可能返回false
const position = positionAndVelocity.position;
if (typeof position === 'boolean') {
const position = positionAndVelocity?.position;
if (!position) {
console.error('Error calculating satellite position');
return;
}
@ -58,9 +57,9 @@ export async function demo_01_OrbitGeneration(viewer: Viewer) {
// 获取当前位置用于放置卫星模型
const time = new Date();
const positionAndVelocity = propagate(satrec, time);
const position = positionAndVelocity.position;
const position = positionAndVelocity?.position;
const gmst = gstime(time);
if (typeof position === 'boolean') {
if (!position) {
console.error('Error calculating satellite position');
return;
}

View File

@ -86,7 +86,7 @@ export async function demo_02_Track(
// 计算卫星位置
const positionAndVelocity = propagate(satrec, jsDate);
if (typeof positionAndVelocity.position === 'boolean') {
if (positionAndVelocity === null) {
console.error('Error calculating satellite position');
} else {
const gmst = gstime(jsDate);

View File

@ -97,8 +97,7 @@ class SatelliteEntity {
// 获取地心惯性坐标系坐标
getPositionEci(date: Date) {
const result = propagate(this.satrec, date);
// 检查position是否为对象且不是true
if (typeof result.position !== 'object' || result.position === null) {
if (result === null) {
return null;
}
return result.position;