鼠标事件
鼠标事件的处理主要通过 ScreenSpaceEventHandler
类来实现:
js
// 创建一个 ScreenSpaceEventHandler 对象,并将其绑定到 Cesium 视图的画布(canvas)上。这个对象用于处理与屏幕空间相关的用户输入事件,如鼠标点击、移动、滚轮滚动等等
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
handler.setInputAction((event) => { // 注册事件监听
...
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
常见的鼠标事件有:
LEFT_CLICK
:左键点击RIGHT_CLICK
:右键点击MOUSE_MOVE
:鼠标移动WHEEL
:鼠标滚轮滚动LEFT_DOUBLE_CLICK
:鼠标左键双击LEFT_DOWN、RIGHT_DOWN
:鼠标左/右键按下LEFT_UP、RIGHT_UP
:鼠标左/右键释放
关闭或销毁事件监听
js
handler.destroy(); //永久性销毁事件处理器,之后它不能再被使用。
handler.removeInputAction(eventType); //仅移除特定事件类型的监听(如:handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);)
关闭图元的点击事件
对于cesium
中的图元信息,在默认的情况下,它是有鼠标左键的单击事件和双击事件的,单击图元就会展示该图元的基本信息,双击图元就会将视角放大到该图元上,有时候我们不想让这些点击事件触发,我们可以通过代码控制来进行禁用这些点击事件:
js
// 去掉entity的点击事件
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(
Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK
);
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(
Cesium.ScreenSpaceEventType.LEFT_CLICK
);