Cesiumjs 获取坐标点高度的三种方式

第一种(镜头高度太高获取的高度会为错误的负数,镜头高度要足够低)

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)
      });
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。