1.48使用下面很好用:
//禁止进入地下
viewer.scene.preRender.addEventListener(function () {
viewer.scene.camera._suspendTerrainAdjustment = false;
})
var minPitch = -Cesium.Math.PI_OVER_TWO;
var maxPitch = 0;
var minHeight = 200;
viewer.camera.changed.addEventListener(
function() {
if (viewer.camera._suspendTerrainAdjustment && viewer.scene.mode === Cesium.SceneMode.SCENE3D) {
viewer.camera._suspendTerrainAdjustment = false;
viewer.camera._adjustHeightForTerrain();
}
// Keep camera in a reasonable pitch range
var pitch = viewer.camera.pitch;
if (pitch > maxPitch || pitch < minPitch) {
viewer.scene.screenSpaceCameraController.enableTilt = false;
// clamp the pitch
if (pitch > maxPitch) {
pitch = maxPitch;
} else if (pitch < minPitch) {
pitch = minPitch;
}
var destination = Cesium.Cartesian3.fromRadians(
viewer.camera.positionCartographic.longitude,
viewer.camera.positionCartographic.latitude,
Math.max(viewer.camera.positionCartographic.height, minHeight));
viewer.camera.setView({
destination: destination,
orientation: {
pitch: pitch
}
});
viewer.scene.screenSpaceCameraController.enableTilt = true;
}
}
);