Cesium-Examples/examples/cesiumEx/4.1.4、淹没分析.html
2025-05-29 10:59:44 +08:00

84 lines
3.2 KiB
HTML

<!--********************************************************************
* by jiawanlong
*********************************************************************-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="./../../libs/cesium/Cesium1.98/Widgets/widgets.css">
<script type="text/javascript" src="./../../libs/cesium/Cesium1.98/Cesium.js"></script>
<script src="./util.js"></script>
<script src="./SubmergenceAnalysis.js"></script>
</head>
<body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
<div id="map" style="margin: 0 auto; width: 100%; height: 100%"></div>
<div style=" position: absolute;
left: 0;
top: 0;
color: #fff;">
<p>
<span>起始高度</span>
<input id="ks" value="1000" type="text">
<span>目标高度</span>
<input id="mb" value="2500" type="text">
<span>速度(米/秒)</span>
<input id="speed" value="200" type="text">
<span>当前高度</span>
<input id="dq" value="0" type="text">
</p>
<p>
<button onclick="fly()">飞行到淹没区域</button>
<button onclick="star()">开始淹没</button>
<button onclick="clea()">清除</button>
</p>
</div>
<script type="text/javascript">
let aaa
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyNDMxOTA2NS1lY2Q3LTQ0YmUtOTE1Mi1iNWE2OGYwZjc0MjkiLCJpZCI6MjM1NjMwLCJpYXQiOjE3MzA3MjQzMTJ9.Xhu-9FyVEyqBKWEr0V9Sybt-elTCWHt9peL9-mNh-4E'
const viewer = new Cesium.Viewer('map', {
});
// 开启帧率
viewer.scene.debugShowFramesPerSecond = true;
// 加载默认地形
viewer.terrainProvider = Cesium.createWorldTerrain({
requestWaterMask: true, // 请求水掩膜以实现水体效果
requestVertexNormals: true // 请求法线以实现光照效果
});
// 深度监测
viewer.scene.globe.depthTestAgainstTerrain = true;
function fly() {
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(98.71707797694049, 27.677299704639537, 50000.0)
});
}
function star() {
aaa = new SubmergenceAnalysis({
viewer: viewer,
targetHeight: parseFloat(document.getElementById("mb").value),
startHeight: parseFloat(document.getElementById("ks").value),
adapCoordi: [
98.676842346815, 27.571578111198868,
98.86252156624968, 27.77444519911974,
98.76756234288729, 27.800244194152533,
98.57088699052892, 27.72492584876768,
98.676842346815, 27.571578111198868,
],
speed: Number(document.getElementById("speed").value),
changetype: "up",
speedCallback: function (h) {
document.getElementById("dq").value = h;
}
});
aaa.start()
}
function clea() {
aaa.clear()
}
</script>
</body>
</html>