首页 / Cesium / 使用示例
拾取调试:屏幕坐标与地表位置
拾取不准的时候,先看三行数:屏幕坐标、命中类型、地表经纬度。哪一环断了都能看出来。
源码与运行效果
这个示例在做什么
面板实时显示三项数据:光标的屏幕坐标、拾取到的对象类型、以及光标对应的地表经纬度。 在建筑上移动显示 Entity,在空处显示「空」。
排查拾取问题时,这三行信息基本够用:屏幕坐标判断事件是否触发,
对象类型判断是否命中了预期对象,地表坐标判断投影是否落在正确位置。
3D Tiles 的要素拾取会返回 Cesium3DTileFeature,
在类型判断里补一个分支就能区分。
关键接口
| 接口 | 作用 |
|---|---|
scene.pick(pos) | 硬件拾取,返回最近的命中对象 |
camera.pickEllipsoid(pos) | 几何投影,始终能拿到地表坐标 |
scene.pickPosition(pos) | 逐像素读取深度,精度更高但更耗性能 |
Cesium3DTileFeature | 瓦片要素类型,判断分支里再加上它 |
可以直接改的地方
| 位置 | 改什么 | 效果 |
|---|---|---|
pickEllipsoid | 换成 pickPosition | 坐标精度提高,靠近模型边缘时更准 |
MOUSE_MOVE | 改成 LEFT_CLICK | 只在点击时输出 |
toFixed(5) | 改成 8 | 经纬度保留更多位 |
| HUD 文本 | 增加 picked.id.id | 显示实体 GUID |
替代说明:官方示例在真实瓦片上逐像素检查拾取结果,属于开发调试用途。 这里用实体复现同一套诊断信息;真实数据下把类型判断补上瓦片分支即可。