feat: 添加卫星实体类及相关功能,优化 Cesium 初始化和时间线设置
All checks were successful
/ depcheck (push) Successful in 2m5s
/ lint-build-and-check (push) Successful in 2m43s
/ build-and-deploy-to-vercel (push) Successful in 3m1s
/ surge (push) Successful in 3m3s
/ playwright (push) Successful in 5m52s

This commit is contained in:
严浩
2025-03-11 16:01:55 +08:00
parent ec49e340ea
commit a2f07c7d76
7 changed files with 147 additions and 7 deletions

View File

@ -4,6 +4,8 @@ import { VIEWER_OPTIONS } from './00.cesium-init.VIEWER_OPTIONS';
import 'cesium/Build/Cesium/Widgets/widgets.css';
Cesium.Ion.defaultAccessToken = import.meta.env.VITE_CESIUM_ION_TOKEN; // 用了离线地图的情况是不需要的。
Object.assign(window, { Cesium });
_configureCesium();
@ -13,6 +15,8 @@ export function cesium_init(container: Element) {
viewer.scene.debugShowFramesPerSecond = true;
initTimeLine(viewer);
return viewer;
}
@ -60,3 +64,15 @@ function _configureCesium() {
60, // 北纬
);
}
function initTimeLine(viewer: Cesium.Viewer, totalSeconds = /* 默认场景的时间跨度 */ 24 * 60 * 60) {
const start = Cesium.JulianDate.fromIso8601(new Date().toISOString());
const stop = Cesium.JulianDate.addSeconds(start, totalSeconds, new Cesium.JulianDate());
viewer.clock.startTime = start.clone();
viewer.clock.stopTime = stop.clone();
viewer.clock.currentTime = start.clone();
viewer.timeline.zoomTo(start, stop);
viewer.clock.multiplier = 1;
viewer.clock.shouldAnimate = true;
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
}