其他方式获取的高程不一定准确,需要等地形文件加载完之后才能获取到
第一种方式:
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)
})