Skip to content

鼠标事件

鼠标事件的处理主要通过 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
);

Released under the MIT License.