用途:面向 CesiumJS v1.144(ES 模块导入,需 Ion token)的交互与拾取开发,覆盖鼠标、触摸、指针事件绑定及场景对象拾取。
主要能力:ScreenSpaceEventHandler 绑定 viewer.scene.canvas,支持 LEFT_CLICK、MOUSE_MOVE、WHEEL、PINCH 等事件类型,并可用 KeyboardEventModifier(SHIFT/CTRL/ALT)注册单键或数组修饰符(1.142+,数组顺序无关但需精确匹配)。拾取方法包括同步 pick、非阻塞 pickAsync(WebGL2,v1.136+)、返回全部对象的 drillPick、基于深度缓冲的 pickPosition,以及实验性的 pickVoxel 和 snap(1.144+,优先吸附模型边缘,需 WebGL2 浮点颜色附件)。
使用方式:用 new ScreenSpaceEventHandler(viewer.scene.canvas) 创建独立处理器,setInputAction 注册,getInputAction/removeInputAction 查询移除,用完 destroy 防内存泄漏。拾取结果按类型区分:Entity 返回 {primitive,id},Cesium3DTileFeature 可 getProperty,Globe 表面返回 undefined 需用 camera.pickEllipsoid 或 pickPosition。显示经纬度必须用 CesiumMath.toDegrees 转换。
适用场景:实体点击选择、3D Tiles 要素属性检查、地形坐标拾取、drillPick 多选、悬停高亮、拖拽测距、鼠标移动坐标读数、按拾取类型分支处理、pickAsync 非阻塞悬停、轮廓高亮等。
限制:PolygonHierarchy 无静态 fromDegrees 等辅助方法,须用 new PolygonHierarchy(Cartesian3.fromDegreesArray([...]));相机需显式设置俯视 pitch 为 -90° 并按区域选择高度;pickPosition 需 pickPositionSupported,含半透明图元需设 pickTranslucentDepth;snap 仅支持 Model 管线图元。其余细节资料未提供。