You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Cesium 3D地球最小缩放尺寸 限制鼠标缩小下限

Cesium 3D地球最小缩放限制实现方案

方案1:使用Cesium内置API(推荐)

直接修改屏幕空间相机控制器的maximumZoomDistance参数即可实现限制,不需要额外监听事件,性能最优,无卡顿跳动问题:

var viewer = new Cesium.Viewer("cesiumContainer", {
  animation: false,
  timeline: false
});

// 配置最小缩放限制:设置相机最大拉远距离(单位:米),数值可按需调整
// 地球赤道半径约为6378137米,此处示例值10000000代表相机最远只能距离地表10000公里
viewer.scene.screenSpaceCameraController.maximumZoomDistance = 10000000;

// 可选:额外配置最大缩放限制(避免相机太近穿入地表)
// viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1000;

方案2:自定义监听事件实现(适合需要自定义控制逻辑的场景)

如果需要更灵活的控制逻辑(比如不同视角下阈值不同),可以监听场景的preRender事件实时检测相机高度,超过阈值强制重置:

var viewer = new Cesium.Viewer("cesiumContainer", {
  animation: false,
  timeline: false
});

// 自定义最小缩放对应的最大相机高度阈值(单位:米)
const MAX_ALLOWED_HEIGHT = 10000000;

viewer.scene.preRender.addEventListener(() => {
  const cameraHeight = viewer.camera.positionCartographic.height;
  if (cameraHeight > MAX_ALLOWED_HEIGHT) {
    const cartographic = Cesium.Cartographic.fromCartesian(viewer.camera.position);
    cartographic.height = MAX_ALLOWED_HEIGHT;
    viewer.camera.position = Cesium.Cartographic.toCartesian(cartographic);
  }
});

数值调整说明

  • 阈值越大,允许的最小地球尺寸越小
  • 阈值越小,允许的最小地球尺寸越大
  • 可以直接调试不同数值找到符合产品需求的效果

内容的提问来源于stack exchange,提问作者user3653474

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:54:02