cesium 加载地形经纬度拿到海拔高度
时间: 2025-01-07 21:21:07 浏览: 130
### 获取Cesium中指定经纬度位置的地形海拔高度
为了在 Cesium 中根据给定的经纬度获取地形的高度信息,可以利用 `Cesium.sampleTerrain` 或者更现代的方法 `Cesium.sampleTerrainMostDetailed` 函数来异步请求地形样本数据。这些方法允许开发者基于特定地理位置查询其高程值。
下面展示了如何定义一个函数用于取得某一点上的精确海拔数值:
```javascript
// 定义椭球体模型
var ellipsoid = Cesium.Ellipsoid.WGS84;
async function getElevationAtPosition(longitude, latitude) {
// 创建场景实例(假设已存在 viewer)
const terrainProvider = new Cesium.CesiumTerrainProvider({
url: 'https://assets.agi.com/stk-terrain/world'
});
// 将角度转成弧度制
let lonRad = Cesium.Math.toRadians(longitude);
let latRad = Cesium.Math.toRadians(latitude);
// 构建 Cartographic 对象
var positionCarto = new Cesium.Cartographic(lonRad, latRad);
try {
// 请求该点位下的最新最详细的地形采样
await Cesium.sampleTerrainMostDetailed(viewer.terrainProvider, [positionCarto]);
// 输出最终得到的位置及其高度
console.log('Height at this location:', positionCarto.height.toFixed(2), 'meters');
return positionCarto.height;
} catch (error) {
console.error("Failed to fetch elevation data:", error);
}
}
```
此代码片段首先设置了地球的标准 WGS84 椭圆体参数[^1],接着创建了一个新的地形提供程序实例指向全球范围内的公开可用地形服务。之后通过传入具体的地理坐标计算出对应于该地点的实际地面高度,并打印出来以便查看结果。
值得注意的是,在实际应用环境中可能需要调整 `url` 参数以匹配项目所需的在线或离线地形资源提供商地址[^2]。
阅读全文
相关推荐


















