Cesium.js 根据经纬度 获取高程信息

由api可知,通过sampleTerrain,可实现获取高程信息,如图
Cesium.js 根据经纬度 获取高程信息_第1张图片
同时,通过异步加载形式,获取return的数据

function getHeigthByLngLat11(lng, lat ){
    	let positions = Cesium.Cartographic.fromDegrees(lng,lat);//经纬度转为世界坐标
      //异步函数
      return new Promise((resolve, reject)=>{
        new Cesium.sampleTerrain(viewer.terrainProvider, 13, [positions]).then(function(updatedPositions){
          if(updatedPositions){
            resolve(updatedPositions);
          }
        })
      })
    }

控制台结果:
在这里插入图片描述

经纬度也可通过世界坐标进行转换,考虑到获取世界坐标时,地图可能为地形形式,因此使用getPickRay

let ray = viewer.camera.getPickRay(movement.position);
let worldPos = viewer.scene.globe.pick(ray, viewer.scene);

将世界坐标转为经纬度(WGS84)的方法如下

function Cartesian3ToWGS84(worldPos){
  let  cartographic = Cesium.Cartographic.fromCartesian(worldPos);
  let lng=Cesium.Math.toDegrees(cartographic.longitude);
  let lat=Cesium.Math.toDegrees(cartographic.latitude);
  let height=cartographic.height;
  return {lng: lng, lat: lat, height: height};
}

你可能感兴趣的:(Cesium)