58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
|
### Cesium 的事件绑定与取消
|
|||
|
|
|||
|
> 转自[https://blog.csdn.net/Tmraz/article/details/115317072](https://blog.csdn.net/Tmraz/article/details/115317072)
|
|||
|
|
|||
|
#### 方式一:创建一个事件处理对象,可设置事件类型对应的监听方法和取消事件。
|
|||
|
|
|||
|
```javascript
|
|||
|
//获取地图对象
|
|||
|
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实例且当前实例存在其它鼠标事件会一并清除(适合一键清除地图上事件)。
|
|||
|
|
|||
|
```javascript
|
|||
|
// 绑定事件
|
|||
|
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` :鼠标滚轮事件
|