chore: update satellite.js to version 6.0.0 and improve position validation in calculations
This commit is contained in:
@ -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
10
pnpm-lock.yaml
generated
@ -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
|
||||||
|
@ -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; // 跳过这个时间点
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
Reference in New Issue
Block a user