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

拖动实体换位置

三个方块可以被鼠标拖着走,位置实时跟随地表交点, 拖动中的方块变成半透明黄,松开后回到自己的颜色。

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

三个事件配合

LEFT_DOWN 时用 scene.pick 判断点中的是哪个方块, 记到变量里并关闭相机旋转;MOUSE_MOVE 时把地表交点换算成 经纬度,重设 position;LEFT_UP 时清空状态。

高度保持不变,示例固定写 130 米。如果直接使用交点坐标, 方块会落在地表并埋掉一半。

只拖自己的方块

拾取结果里带 id.box 才进入拖动分支,点地球或点标签都不会 触发。松开时按数组下标找回原始颜色,避免颜色记录散落在实体上。

可调参数

位置改什么效果
position 的 130改成 400方块悬空高度
拖动时的材质颜色改成青色拖动反馈色调
BLOCKS 数组加第四个可拖动的对象数量
dimensions调小到 120方块更小,便于精细摆放

拖动会持续改位置属性。每帧一次赋值对少量实体没有负担, 但如果同时拖动几十个对象,建议在移动回调里做节流, 或者改用 CallbackProperty 统一由鼠标状态驱动。