第一種(鏡頭高度太高獲取的高度會為錯誤的負數,鏡頭高度要足夠低)
let cartographic = Cesium.Cartographic.fromDegrees(lon,lat);
let height = viewer.scene.globe.getHeight(cartographic);
第二種(獲取屏幕坐標點高度)
let scene = viewer.scene; let globe = scene.globe; let ray = viewer.camera.getPickRay(position);//position屏幕坐標 let cartesian = globe.pick(ray, scene); let ellipsoid = Cesium.Ellipsoid.WGS84; let cartographic = ellipsoid.cartesianToCartographic(cartesian); let height = cartographic.height;
第三種(要11級? 不然獲取不到)
let cartographics= [Cesium.Cartographic.fromDegrees(lon,lat)]; Cesium.sampleTerrain(viewer.terrainProvider, 11, cartographics) .then((updatedPositions)=>{ updatedPositions.forEach((pos, i) => { console.log(pos) }); });