var viewer = new Cesium.Viewer('box', { }); //定义视图盒子
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas); //实例化对象的setInputAction方法
handler.setInputAction(function(event) {
var earthPosition = viewer.camera.pickEllipsoid(event.position,viewer.scene.globe.ellipsoid); //可以拿到笛卡尔3d坐标系
console.log(event); //可以得到笛卡尔平面坐标系
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
/*
camera 相机方法 pickEllipsoid (windowPosition, ellipsoid , result )
windowPosition Cartesian2 像素的x和y坐标。
ellipsoidEllipsoid (默认格式)Ellipsoid.WGS84 【 可选 】要拾取的椭球(对象)。
result 将结果存储到的对象。 格式为Cartesian3
*/
setInputAction的第一个参数是当事件触发时的回调,第二个参数是绑定的事件类型。案例中绑定的鼠标左键点击事件,
其它还有:
鼠标左键双击事件 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
解除鼠标左键单击事件 removeInputAction 事件解除
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);