《cesium基础》根据经纬度获取高程

65 阅读1分钟

其他方式获取的高程不一定准确,需要等地形文件加载完之后才能获取到

第一种方式:

function getAltByLngLat(lnglatArray) {
  return new Promise((resolve, reject) => {
    var positions = [];
    let temp = [];
    lnglatArray.forEach((item) => {
      if (typeof item[0] != "undefined" && typeof item[1] != "undefined") {
        temp.push([item[0], item[1]]);
        positions.push(Cesium.Cartographic.fromDegrees(item[0], item[1]));
      }
    });

    let promise = Cesium.sampleTerrainMostDetailed(
      viewer.terrainProvider,
      positions
    );
    promise.then((res) => {
      temp.forEach((item, index) => {
        if (res && res.length > 0) {
          if (typeof res[index].height != "undefined") {
            item.push(+res[index].height.toFixed(2));
          } else {
            item.push(null);
          }
        } else {
          item.push(null);
        }
      });
      resolve(temp);
    });
  });
}

调用方式:


getAltByLngLat([[113.9532575062666, 22.581012430130812],[113.96535963238829, 22.58545039748334]]).then((res)=>{
    console.log("res", res)
})