在数据可视化大屏中,点击/双击等是页面中比较常用的一些操作.在cesium中如何实现呢?查看api文档,官方提供了以下多种操作方式.请注意:此处的操作类型均须大写!
//此处代码写在init方法中,有兴趣的可以试一下单独写是否生效.
const handler = new Cesium.ScreenSpaceEventHandler(this._viewer.scene.canvas);//此处是页面中渲染后的容器
handler.setInputAction((click) => {
// const position = click.position//此处存储的是点击的位置.是cesium将经纬度计算后的坐标.
const initPosition = this._viewer.scene.camera.pickEllipsoid(click.position, this._viewer.scene.globe.ellipsoid);
// 获取地图上的点位实体(entity)坐标
const pick = this._viewer.scene.pick(click.position);
// 如果pick不是undefined,那么就是点到点位了---由于之后实现自定义绘制多边形进行挖掘功能,此处需要对点击的位置是点位位置还是空位置进行判断.
if (pick && pick.id) {
//此处可以对点击点位后进行操作--比如:转到该点位
} else {
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK)//此处设置事件类型为单击鼠标左键.