meface/docs/article/gis/cesiumjs/cesiumEvent.md

2.3 KiB
Raw Blame History

Cesium 的事件绑定与取消

转自https://blog.csdn.net/Tmraz/article/details/115317072

方式一:创建一个事件处理对象,可设置事件类型对应的监听方法和取消事件。

//获取地图对象
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);

//设置监听方法
handler.setInputAction(function(event) { 
    //我这里举个例子点击鼠标左键获取当前高度
    var height = viewer.camera.positionCartographic.height;
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

//移除事件
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)

方式二是直接在viewer实例上添加、清除事件。

这会污染整个viewer实例且当前实例存在其它鼠标事件会一并清除适合一键清除地图上事件

// 绑定事件
viewer.screenSpaceEventHandler.setInputAction(function (wheelment) {
    //我这里举个例子点击鼠标左键获取当前高
    var height = viewer.camera.positionCartographic.height;
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

// 取消事件
viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);

事件类型

Ceisum 中的事件类型:

  • Cesium.ScreenSpaceEventType.LEFT_CLICK :鼠标左击事件
  • Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK :鼠标左键双击事件
  • Cesium.ScreenSpaceEventType.LEFT_DOWN :左键鼠标按下事件
  • Cesium.ScreenSpaceEventType.LEFT_UP :左键鼠标抬起事件
  • Cesium.ScreenSpaceEventType.MIDDLE_CLICK :中键单机
  • Cesium.ScreenSpaceEventType.MIDDLE_DOWN :中键按下
  • Cesium.ScreenSpaceEventType.MIDDLE_UP :中键抬起
  • Cesium.ScreenSpaceEventType.MOUSE_MOVE :鼠标移动
  • Cesium.ScreenSpaceEventType.PINCH_END :表示两指事件在触摸面上的结束。
  • Cesium.ScreenSpaceEventType.PINCH_MOVE :两指移动
  • Cesium.ScreenSpaceEventType.PINCH_START :表示在触摸面上发生两指事件的开始。
  • Cesium.ScreenSpaceEventType.RIGHT_CLICK :鼠标右击事件
  • Cesium.ScreenSpaceEventType.RIGHT_DOWN :鼠标右键按下
  • Cesium.ScreenSpaceEventType.RIGHT_UP :鼠标右键抬起
  • Cesium.ScreenSpaceEventType.WHEEL :鼠标滚轮事件