经纬志
首页 / Cesium / 使用示例

键盘推动相机

W、A、S、D 前后左右,Q、E 升降,按住 Shift 提速到 900 米每秒。 地面上排了网格方块,飞行时有参照。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

按键状态与帧间隔

keydown 与 keyup 只负责记录布尔值, 真正推动相机的是 scene.preRender 里的逻辑。 用两帧之间的毫秒差算位移,速度就与帧率无关。

位移再小也要乘以时间,示例把帧间隔上限压在 0.08 秒, 防止切换标签页回来时瞬间跳出去很远。

用相机自己的坐标系

camera.moveForward、moveRight、moveUp 都沿相机当前朝向移动,不是沿世界轴。因此低头时按 W 会向下前移, 这正好符合飞行视角的直觉。

可调参数

位置改什么效果
speed 的 120改成 30慢速巡检,便于定位
keys.shift 的 900改成 3000长距离快速移动
KEYMAP换成别的键位自定义操作方式
网格方块的间距0.010 改成 0.005地面参照更密

焦点丢失要清空按键。在页面上按着 W 切换到别的窗口, 松开时页面收不到 keyup,相机会一直往前飞。 示例监听 window.blur 把按键表整体清空,避免这种漂移。