具体思路是,在每一帧渲染前,判断相机高度是否符合条件,若不符合条件,则调整到合适的视点位置
看代码:
// 限制相机高度
// 相机最低高度
const minimumHeight = 120;
// 在渲染阶段前添加事件监听器
viewer.scene.preRender.addEventListener(function () {
var eye = viewer.camera.positionCartographic;
// 判断相机坐标是否小于阈值,若小于阈值,则保持视点方位,修改相机高度
if (eye.height < minimumHeight) {
viewer.camera.setView({
destination: Cesium.Cartesian3.fromRadians(eye.longitude, eye.latitude, minimumHeight),
orientation: {
direction: viewer.camera.direction,
up: viewer.camera.up
}
});
}
});