在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);