Cesium-Examples/examples/cesiumEx/1.22、根据点获取高度.html
2025-05-29 10:59:44 +08:00

62 lines
2.4 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>
</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>
<script type="text/javascript">
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyNDMxOTA2NS1lY2Q3LTQ0YmUtOTE1Mi1iNWE2OGYwZjc0MjkiLCJpZCI6MjM1NjMwLCJpYXQiOjE3MzA3MjQzMTJ9.Xhu-9FyVEyqBKWEr0V9Sybt-elTCWHt9peL9-mNh-4E'
const viewer = new Cesium.Viewer('map', {});
// 加载地形
viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
url: 'http://data.mars3d.cn/terrain'
});
// 监听地形提供者的ready事件
viewer.terrainProvider.readyPromise.then(function (terrainProvider) {
console.log('地形已加载完成.');
getHeight()
})
function getHeight() {
var positions = [
Cesium.Cartographic.fromDegrees(120.925145, 27.988257),
Cesium.Cartographic.fromDegrees(87.0, 28.0)
];
// 粗略获取高度
var promise = Cesium.sampleTerrain(viewer.terrainProvider, 11, positions);
promise.then(function (updatedPositions) {
console.log('sampleTerrain')
console.log(updatedPositions)
});
// 精确获取高度
var promise2 = Cesium.sampleTerrainMostDetailed(viewer.terrainProvider, positions);
promise2.then(function (updatedPositions) {
console.log('sampleTerrainMostDetailed')
console.log(updatedPositions)
});
// 另外一种获取高度方式(非常不准确!!!)
var cartographic = Cesium.Cartographic.fromDegrees(120.925145, 27.988257);
var posi = new Cesium.Cartographic(cartographic.longitude, cartographic.latitude)
var height = viewer.scene.globe.getHeight(posi)
console.log(height)
}
</script>
</body>
</html>