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

@ -78,7 +78,7 @@
"radash": "^12.1.0",
"radix-vue": "^1.9.17",
"reka-ui": "^2.2.0",
"satellite.js": "^5.0.0",
"satellite.js": "^6.0.0",
"sortablejs": "^1.15.6",
"tailwind-merge": "^3.2.0",
"tdesign-icons-vue-next": "^0.3.5",

10
pnpm-lock.yaml generated
View File

@ -116,8 +116,8 @@ importers:
specifier: ^2.2.0
version: 2.2.0(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3))
satellite.js:
specifier: ^5.0.0
version: 5.0.0
specifier: ^6.0.0
version: 6.0.0
sortablejs:
specifier: ^1.15.6
version: 1.15.6
@ -4086,8 +4086,8 @@ packages:
engines: {node: '>=16.0.0'}
hasBin: true
satellite.js@5.0.0:
resolution: {integrity: sha512-ie3yiJ2LJAJIhVUKdYhgp7V0btXKAMImDjRnuaNfJGl8rjwP2HwVIh4HLFcpiXYEiYwXc5fqh5+yZqCe6KIwWw==}
satellite.js@6.0.0:
resolution: {integrity: sha512-A1OTZpIDgzCj1SYJZYs3aISsBuhE0jAZG3n6Pymxq5FFsScNSLIgabu8a1w0Wu56Mf1eoL+pcK4tXgaPNXtdSw==}
sax@1.4.1:
resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
@ -8816,7 +8816,7 @@ snapshots:
sass-embedded-win32-ia32: 1.86.3
sass-embedded-win32-x64: 1.86.3
satellite.js@5.0.0: {}
satellite.js@6.0.0: {}
sax@1.4.1:
optional: true

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;