computed: { handler() { return new this.Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas) } }
在事件的外面先定義一下 const _this = this (因為在setInputAction方法中,this的指向會發生變化,不再指向vue實例) 用this.Cesium是因為在mainjs里配置了Cesium的全局變量
// 1.移動事件
_this.handler.setInputAction(function (movement) { console.log(movement) // 獲取到的是鼠標經過cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.MOUSE_MOVE)
// 2.左鍵單擊事件
_this.handler.setInputAction(function (movement) { console.log(movement) // 獲取到的是鼠標點擊cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.LEFT_CLICK)
// 3.左鍵按下事件
_this.handler.setInputAction(function (movement) { console.log(movement) // 獲取到的是鼠標按下cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.LEFT_DOWN)
// 4.左鍵抬起事件
_this.handler.setInputAction(function (movement) { console.log(movement) // 獲取到的是鼠標抬起cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.LEFT_UP)
// 5.滑輪事件
_this.handler.setInputAction(function (movement) { console.log(movement) // 向上滑是100 向下滑是-100 }, _this.Cesium.ScreenSpaceEventType.WHEEL)
// 6.滑輪點擊事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是滑輪點擊cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.MIDDLE_CLICK)
// 7.滑輪按下事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是滑輪按下cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.MIDDLE_DOWN)
// 8.滑輪抬起事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是滑輪抬起cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.MIDDLE_UP)
// 9.右鍵單擊事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是右鍵點擊cesium的屏幕坐標
//一般在右鍵的時候結束 同時也清除定義的事件
_this.handler.removeInputAction(_this.Cesium.ScreenSpaceEventType.方法名)
如:
_this.handler.removeInputAction(_this.Cesium.ScreenSpaceEventType.LEFT_CLICK) //移除左鍵單擊事件
_this.handler.removeInputAction(_this.Cesium.ScreenSpaceEventType.MOUSE_MOVE) //移除鼠標移動事件
}, _this.Cesium.ScreenSpaceEventType.RIGHT_CLICK)
// 10.右鍵按下事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是右鍵按下cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.RIGHT_DOWN)
// 11.右鍵抬起事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是右鍵抬起cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.RIGHT_UP)
// 12.左鍵雙擊事件
_this.handler.setInputAction(function (movement) { console.log(movement) //獲取到的是左鍵雙擊cesium的屏幕坐標 }, _this.Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK)
