//定义canvas屏幕点击事件,scene.canvas指的是HTMLCanvasElement元素,也就是屏幕画的东西
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (event) {
//event {position: position:{x:123,y:123}}
// 转换为不包含地形的笛卡尔坐标
let clickPosition = viewer.scene.camera.pickEllipsoid(event.position);
// clickPosition{x: 101877.1201414885, y: 4637106.646197382, z: 4363390.89501216}
// 转经纬度(弧度)坐标
let radiansPos = Cesium.Cartographic.fromCartesian(clickPosition);
// radiansPos{longitude: 1.6396749591249946, latitude: 0.7371487514224602, height:636749216566357e-9}
// 转角度
console.log(
'经度:' +
Cesium.Math.toDegrees(radiansPos.longitude) +
', 纬度:' +
Cesium.Math.toDegrees(radiansPos.latitude)
);
// // 添加圆点
viewer.entities.add({
position: clickPosition, //圆点位置
point: {
color: Cesium.Color.RED, //圆点颜色
pixelSize: 20 //圆点大小
}
});
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
handler.setInputAction(function () {
console.log('点击了中键');
}, Cesium.ScreenSpaceEventType.MIDDLE_CLICK);
handler.setInputAction(function () {
console.log('双击了左键');
}, Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
handler.setInputAction(function () {
//取消鼠标点击事件
// handler.destroy()
handler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK);
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
handler.setInputAction(function () {
//取消鼠标点击事件
handler.destroy();
console.log('双击了右键,取消全部事件');
}, Cesium.ScreenSpaceEventType.RIGHT_DOUBLE_CLICK);
});