2025-03-29 01:30:00 +00:00
|
|
|
<!--********************************************************************
|
|
|
|
* 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">
|
|
|
|
|
2025-05-18 11:30:00 +00:00
|
|
|
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjM2EzNGJmNy02N2RmLTQ0MDMtYjI2MS1hZTJiMTIwZGYwMTYiLCJpZCI6MzA0MzEyLCJpYXQiOjE3NDc3MjM3MTV9.ePQNhuoVuDsi_z00lTm5W26wyW1Adcr1AWetGM6WSXI'
|
2025-03-29 01:30:00 +00:00
|
|
|
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>
|