import * as Cesium from 'cesium'; import { VIEWER_OPTIONS } from './00.cesium-init.VIEWER_OPTIONS'; import 'cesium/Build/Cesium/Widgets/widgets.css'; Object.assign(window, { Cesium }); _configureCesium(); export function cesium_init(container: Element) { const viewer = new Cesium.Viewer(container, VIEWER_OPTIONS); viewer.scene.debugShowFramesPerSecond = true; return viewer; } function _configureCesium() { if (document.querySelector('#hide-cesium-viewer-bottom') === null) { document.head.append( Object.assign(document.createElement('style'), { id: 'hide-cesium-viewer-bottom', innerHTML: ` .cesium-viewer-bottom { display: none !important; } `.trim(), type: 'text/css', }), ); } /* 时间日期格式化 */ { const minutes = 0 - new Date().getTimezoneOffset(); // 0 - (-480); // Animation 的时间日期格式化 Cesium.AnimationViewModel.defaultDateFormatter = function (date) { const dataZone8 = Cesium.JulianDate.addMinutes(date, minutes, new Cesium.JulianDate()); return Cesium.JulianDate.toIso8601(dataZone8).slice(0, 10); }; Cesium.AnimationViewModel.defaultTimeFormatter = function (time) { const dataZone8 = Cesium.JulianDate.addMinutes(time, minutes, new Cesium.JulianDate()); return Cesium.JulianDate.toIso8601(dataZone8).slice(11, 19); }; // Timeline 的时间日期格式化 // @ts-expect-error node_modules/@cesium/widgets/Source/Timeline/Timeline.js Cesium.Timeline.prototype.makeLabel = function (time) { const dataZone8 = Cesium.JulianDate.addMinutes(time, minutes, new Cesium.JulianDate()); return Cesium.JulianDate.toIso8601(dataZone8).slice(0, 19); }; } // 默认视图区域 Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees( 75, // 西经 10, // 南纬 140, // 东经 60, // 北纬 ); }