cesium中获取高度的误区

复制代码
this.ellipsoid = viewer.scene.globe.ellipsoid;
var cartesian = viewer.camera.pickEllipsoid(e.position, this.ellipsoid);

if(cartesian){
	// 苗卡尔椭球体的三维坐标 转 地图坐标(弧度)
	 var cartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian);
	 // 地图坐标(弧度) 转 十进制度数 toFixed保留小数点后几位
	 var log_String = Cesium.Math.toDegrees(cartographic.longitude).toFixed(8);//经度
	 var lat_String = Cesium.Math.toDegrees(cartographic.latitude).toFixed(8);//纬度
	 // 返回的高度值是相机当前位置的海拔高度,以米为单位
	 var alt_String = (viewer.camera.positionCartographic.height/1000).toFixed(2);//视角高
	 // 返回的高度值是指定地图位置的地形高度,以米为单位
	 var elec_String = viewer.scene.globe.getHeight(cartographic).toFixed(4);//海拔
	 $this.latObj = {log:log_String,lat:lat_String,alt:alt_String,elec:elec_String}
}

注意上面:

viewer.camera.positionCartographic.height 返回的高度值是相机当前位置的海拔高度,以米为单位。

viewer.scene.globe.getHeight(cartographic) 返回的高度值是指定地图位置的地形高度,以米为单位。

有时获取的是指定位置的地形高度,不是当前相机的高度

相关推荐
悠哉摸鱼大王6 小时前
cesium学习(一)-基本概念
前端·cesium
悠哉摸鱼大王6 小时前
cesium学习(二)-地图地形
前端·cesium
悠哉摸鱼大王8 小时前
cesium学习(三)-3d tiles
前端·cesium
悠哉摸鱼大王8 小时前
cesium学习(五)-Primitive
前端·cesium
悠哉摸鱼大王8 小时前
cesium学习(四)-相机
前端·cesium
BJ-Giser1 天前
Cesium 烟雾粒子特效
前端·可视化·cesium
GIS瞧葩菜1 天前
Cesium 中 WMS 图层点击查询(pickImageryLayerFeatures和GetFeatureInfo)
wms·cesium·鼠标·图层·查询wms
爱看书的小沐6 天前
【小沐学WebGIS】基于Cesium.JS与jsbsim联动三维飞行仿真(OpenGL、Cesium.js、Three.js)
c++·qt·three.js·opengl·cesium·jsbsim
白嫖叫上我13 天前
Cesium广告牌之自定义封装label
cesium
郝学胜-神的一滴1 个月前
[简化版 GAMES 101] 计算机图形学 04:二维变换上
c++·算法·unity·godot·图形渲染·unreal engine·cesium