12
2019
04

Cesium 鼠标事件监听

在Cesium里面,我们可以通过Cesium.ScreenSpaceEventHandler的实例化对象的setInputAction方法绑定鼠标事件:

var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
//todo:在椭球下点击创建点
handler.setInputAction(function(event) {
    var earthPosition  = viewer.camera.pickEllipsoid(event.position,viewer.scene.globe.ellipsoid);
    if (Cesium.defined(earthPosition)) {
        createPoint(earthPosition); //在点击位置添加一个点
    }
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

setInputAction的第一个参数是当事件触发时的回调,第二个参数是绑定的事件类型。案例中绑定的鼠标左键点击事件,其它还有:
鼠标左键单击事件
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.WHEEL 

如果想要接触某一个交互事件可以通过handler对象里面removeInputAction 事件解除,下面是解除鼠标左键单击事件:
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);


« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。