实例化、注册事件、注销事件
// 实例化ScreenSpaceEventHandler
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
let eventType = Cesium.ScreenSpaceEventType.LEFT_CLICK;
//注册事件
handler.setInputAction((event) => {
console.log(event);
}, eventType);
//注销事件
handler.removeInputAction(eventType);
常用事件
事件类型 | 含义 |
---|---|
LEFT_CLICK | 鼠标左键单击 |
LEFT_UP | 鼠标左键弹起 |
LEFT_DOWN | 鼠标左键按下 |
LEFT_DOUBLE_CLICK | 鼠标左键双击 |
RIGHT_CLICK | 鼠标左键点击 |
RIGHT_UP | 鼠标右键弹起 |
RIGHT_DOWN | 鼠标右键按下 |
MOUSE_MOVE | 鼠标移动 |
要素拾取
假如应用场景是点击要素获取其属性信息,这个时候就需要在鼠标左键的注册事件中获取 event 结果,核心代码如下
var picked = viewer.scene.pick(event.position);
# 这个时候就可以根据获取到的对象类型进行操作了。
if (Cesium.defined(picked)) {
if (picked.id && picked.id instanceof Cesium.Entity) {
console.log("选中了Entity");
}
if (picked.primitive instanceof Cesium.Primitive) {
console.log("选中了Primitive");
}
if (picked.primitive instanceof Cesium.Model) {
console.log("选中了模型");
}
if (picked instanceof Cesium.Cesium3DTileFeature) {
console.log("选中了3DTile");
}
}