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", "radash": "^12.1.0",
"radix-vue": "^1.9.17", "radix-vue": "^1.9.17",
"reka-ui": "^2.2.0", "reka-ui": "^2.2.0",
"satellite.js": "^5.0.0", "satellite.js": "^6.0.0",
"sortablejs": "^1.15.6", "sortablejs": "^1.15.6",
"tailwind-merge": "^3.2.0", "tailwind-merge": "^3.2.0",
"tdesign-icons-vue-next": "^0.3.5", "tdesign-icons-vue-next": "^0.3.5",

10
pnpm-lock.yaml generated
View File

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

View File

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

View File

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

View File

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

View File

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