<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<link
href="http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/Widgets/widgets.css"
rel="stylesheet"
/>
<script src="http://ua.bigemap.com:30081/bmsdk/bigemap-gl.js/v1.1.0/bigemap-gl.js"></script>
<style>
body {
margin: 0;
padding: 0;
}
#container {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
.bmgl-widget-credits {
display: none;
}
.tools {
width: 400px;
height: 40px;
display: flex;
position: absolute;
top: 20px;
right: 40px;
/* border: 1px solid saddlebrown; */
z-index: 99;
justify-content: space-between;
}
.itemOne,.itemTwo,.itemThree {
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
color: white;
background-color: #59acff;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
user-select: none;
}
</style>
<title>近地天空盒</title>
</head>
<body>
<script>
function changeSkyBox(val) {
console.log(val);
switch(val){
case 'sunny':
sunnySkybox.setSkyBox(viewer)
break;
case 'blueSky':
blueSky.setSkyBox(viewer);
break;
case 'sunset':
sunsetSkybox.setSkyBox(viewer);
break;
}
}
</script>
<div id="container">
<div class="tools">
<h3 class="itemOne">
切換為晴天
</h3>
<h3 class="itemTwo">
切換為藍天
</h3>
<h3 class="itemThree">
切換為黃昏
</h3>
</div>
</div>
<script type="module">
import SkyBoxOnGround from "/bmgl/nearskyBox/nearSkybox.js";
bmgl.Config.HTTP_URL = "http://ua.bigemap.com:30081/bmsdk/";
window.viewer = new bmgl.Viewer("container", {
mapId: "bigemap.dc-tian-w-satellite",
requestRenderMode:false,
});
// 是否支持圖像渲染像素化處理
if (bmgl.FeatureDetection.supportsImageRenderingPixelated()) {
viewer.resolutionScale = window.devicePixelRatio;
}
//開啟抗鋸齒,讓圖像更加順滑
viewer.scene.postProcessStages.fxaa.enabled = true;
// 設置鏡頭位置
viewer.camera.setView({
destination: bmgl.Cartesian3.fromDegrees(
104.21901681921379,
30.81504373849697,
58.877721653410255
),
orientation: {
heading: 1.431365105237047,
pitch: -0.14143803486961604,
roll: 6.273892153001107,
},
});
viewer.scene.globe.enableLighting = false; //隱藏太陽
viewer.shadows = false;
viewer.scene.sun.show = false; //或者viewer.scene.sun.destroy();
viewer.scene.moon.show = false; //隱藏月亮
viewer.scene.skyAtmosphere.show = false; //大氣圈
viewer.scene.fog.enable = false; //霧
// 晴朗
let sunnySkybox = new SkyBoxOnGround({
sources: {
positiveX: "/bmgl/nearskyBox/sunny/rightav9.jpg",
negativeX: "/bmgl/nearskyBox/sunny/leftav9.jpg",
positiveY: "/bmgl/nearskyBox/sunny/frontav9.jpg",
negativeY: "/bmgl/nearskyBox/sunny/backav9.jpg",
positiveZ: "/bmgl/nearskyBox/sunny/topav9.jpg",
negativeZ: "/bmgl/nearskyBox/sunny/bottomav9.jpg",
},
});
// 黃昏
let sunsetSkybox = new SkyBoxOnGround({
sources: {
positiveX: "/bmgl/nearskyBox/sunset/SunSetRight.png",
negativeX: "/bmgl/nearskyBox/sunset/SunSetLeft.png",
positiveY: "/bmgl/nearskyBox/sunset/SunSetFront.png",
negativeY: "/bmgl/nearskyBox/sunset/SunSetBack.png",
positiveZ: "/bmgl/nearskyBox/sunset/SunSetUp.png",
negativeZ: "/bmgl/nearskyBox/sunset/SunSetDown.png",
},
});
// 藍天
let blueSky = new SkyBoxOnGround({
sources: {
positiveX: "/bmgl/nearskyBox/bluesky/Right.jpg",
negativeX: "/bmgl/nearskyBox/bluesky/Left.jpg",
positiveY: "/bmgl/nearskyBox/bluesky/Front.jpg",
negativeY: "/bmgl/nearskyBox/bluesky/Back.jpg",
positiveZ: "/bmgl/nearskyBox/bluesky/Up.jpg",
negativeZ: "/bmgl/nearskyBox/bluesky/Down.jpg",
},
});
// dawmSkybox.setSkyBox(viewer);
blueSky.setSkyBox(viewer);
document.querySelector(".itemOne").addEventListener("click",function(){
sunnySkybox.setSkyBox(viewer);
})
document.querySelector(".itemTwo").addEventListener("click",function(){
blueSky.setSkyBox(viewer);
})
document.querySelector(".itemThree").addEventListener("click",function(){
sunsetSkybox.setSkyBox(viewer);
})
</script>
</body>
</html>