/**
* 场景初始化选项
* @param { HTMLDivElement | string } container 为“三维场景容器”的元素或元素ID
* @returns viewer实例对象
*/
export default (container) => {
const skyBoxBaseUrl = "/resource/image/skybox/";
const viewer = new Cesium.Viewer(container, {
baseLayerPicker: false,
fullscreenButton: false,
geocoder: false,
homeButton: false,
infoBox: false,
sceneModePicker: false,
selectionIndicator: false,
navigationHelpButton: false,
animation: false,
timeline: true,
vrButton: false,
shouldAnimate: false,
camera: (Cesium.Camera.DEFAULT_VIEW_RECTANGLE =
Cesium.Rectangle.fromDegrees(100.0, -10.0, 130.0, 60.0)),
imageryProvider: new Cesium.SingleTileImageryProvider({
url: "/resource/image/layer/world5km.webp",
}),
skyBox: new Cesium.SkyBox({
sources: {
positiveX: skyBoxBaseUrl + "left.webp",
negativeX: skyBoxBaseUrl + "right.webp",
positiveY: skyBoxBaseUrl + "down.webp",
negativeY: skyBoxBaseUrl + "up.webp",
positiveZ: skyBoxBaseUrl + "front.webp",
negativeZ: skyBoxBaseUrl + "back.webp",
},
}),
});
viewer.cesiumWidget.creditContainer.style.display = "none";
const scene = viewer.scene;
scene.postProcessStages.fxaa.enabled = true;
scene.globe.showGroundAtmosphere = false;
scene.globe.enableLighting = true;
scene.sunBloom = false;
scene.fog.enabled = false;
scene.skyAtmosphere.show = false;
// 禁止时间轴缩放滚动
// viewer.timeline.zoomFrom = null;
// 根据屏幕分辨率进行抗锯齿处理
viewer.scene.fxaa = false;
viewer.scene.postProcessStages.fxaa.enabled = true;
var supportsImageRenderingPixelated =
viewer.cesiumWidget._supportsImageRenderingPixelated;
if (supportsImageRenderingPixelated) {
var vtxf_dpr = window.devicePixelRatio;
while (vtxf_dpr >= 2.0) {
vtxf_dpr /= 2.0;
}
viewer.resolutionScale = vtxf_dpr;
}
function DateTimeFormatter(datetime, viewModel, ignoredate) {
var julianDT = new Cesium.JulianDate();
Cesium.JulianDate.addHours(datetime, 8, julianDT);
var gregorianDT = Cesium.JulianDate.toGregorianDate(julianDT);
var objDT;
if (ignoredate) {
objDT = '';
} else {
objDT = new Date(gregorianDT.year, gregorianDT.month - 1, gregorianDT.day);
objDT = gregorianDT.year + '-' + objDT.toLocaleString('zh-cn', { month: 'short' }).split('月').join('-') + gregorianDT.day + ' ';
if (viewModel || gregorianDT.hour + gregorianDT.minute === 0) {
return objDT
objDT += '';
}
}
let hour, minute, second;
if (gregorianDT.hour < 10) {
hour = `0${gregorianDT.hour}`
} else {
hour = gregorianDT.hour
}
if (gregorianDT.minute < 10) {
minute = `0${gregorianDT.minute}`
} else {
minute = gregorianDT.minute
}
if (gregorianDT.second < 10) {
second = `0${gregorianDT.second}`
} else {
second = gregorianDT.second
}
// return objDT + Cesium.sprintf('%02d:%02d:%02d', gregorianDT.hour, gregorianDT.minute, gregorianDT.second);
return objDT + hour + ":" + minute + ":" + second;
}
viewer.timeline.makeLabel = DateTimeFormatter;
return viewer;
};
Cesium初始化场景类
最新推荐文章于 2024-09-11 11:48:01 发布