Cesium鼠标事件
1.常用的鼠标事件
RIGHT_CLICK 右击
LEFT_CLICK 左击
MOUSE_MOVE 鼠标移动
WHEEL 滚轮
2.使用
var handler = new Cesium.ScreenSpaceEventHandler(window.viewer.scene.canvas)
handler.setInputAction(function() {
console.log("aaaa")
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)//RIGHT_CLICK ,MOUSE_MOVE ,WHEEL
3.常见拾取操作
这里着重区分pick , pickPosition,getPickRay,注意在使用pick Position时在有地形的情况下要开启深度检测,再一个就是getPickRay是获取的global球上的点,不能获取到模型上的点
//深度检测代码
window.viewer.scene.globe.depthTestAgainstTerrain = true
//获取相机高度代码
var height = viewer.camera.positionCartographic.height
//1.pick拾取球上物体
var handler = new Cesium.ScreenSpaceEventHandler(window.viewer.scene.canvas)
handler.setInputAction(function(movement) {
var pick = viewer.scene.pick(movement.position)
console.log(pick)
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)
//2.pickPosition拾取坐标点
var handler = new Cesium.ScreenSpaceEventHandler(window.viewer.scene.canvas)
handler.setInputAction(function(movement) {
var cartesian = window.viewer.scene.pickPosition(movement.position)
console.log(cartesian)
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)
//3.getPickRay拾取球面上的点
var handler = new Cesium.ScreenSpaceEventHandler(window.viewer.scene.canvas)
handler.setInputAction(function(movement) {
let ray = window.viewer.camera.getPickRay(movement.position)
let cartesian=window.viewer.scene.globe.pick(ray, viewer.scene)
console.log(cartesian)
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
//4.鼠标移动时点获取
var handler = new Cesium.ScreenSpaceEventHandler(window.viewer.scene.canvas)
handler.setInputAction(function(movement) {
let ray = window.viewer.camera.getPickRay(movement.endPosition)//这里是endPosition
let cartesian=window.viewer.scene.globe.pick(ray, viewer.scene)
console.log(cartesian)
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
//4.滚轮滚动时获取相机高度
var handler = new Cesium.ScreenSpaceEventHandler(window.viewer.scene.canvas)
handler.setInputAction(function(movement) {
var height = viewer.camera.positionCartographic.height
console.log(height)
}, Cesium.ScreenSpaceEventType.WHEEL)