Cesium获取点位在地形上的高度
var position = Cesium.Cartographic.fromCartesian(Viewer.scene.camera.position);
var height = Viewer.scene.globe.getHeight(position);
if (Viewer.terrainProvider) {
let cartographic = Cesium.Cartographic.fromCartesian(Viewer.scene.camera.position);
let longitude = Cesium.Math.toDegrees(cartographic.longitude);
let latitude = Cesium.Math.toDegrees(cartographic.latitude);
let positions = [
Cesium.Cartographic.fromDegrees(longitude, latitude),
];
let promise = Cesium.sampleTerrainMostDetailed(Viewer.terrainProvider, positions);
Cesium.when(promise, function (updatedPositions) {
let terrainHeight = updatedPositions[0].height
console.log(terrainHeight,Viewer.scene.camera.heading,Viewer.scene.camera.pitch);
height = terrainHeight + 20;
Viewer.scene.camera.flyTo({
destination: new Cesium.Cartesian3.fromDegrees(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),height),
orientation: {
heading : Viewer.scene.camera.heading,
pitch : 0.01,
roll : 0.0
}
});
});
}