• 学习【Cesium】第九篇,鼠标交互和数据查询(学不会揍我)


    这篇主要是学习鼠标交互和数据查询,那么这里有必要搞清楚Cesium空间事件类型有哪些才能进行下一步查询操作,话不多说,上图:

    文档中查找 ScreenSpaceEventType 对象

    文档对于事件类型已经做了列表,我这边画蛇添足😀补充一个中文对照表:

    事件名称类型描述
    LEFT_DOWN数字表示鼠标左键按下事件。
    LEFT_UP数字表示鼠标左键向上事件。
    LEFT_CLICK数字表示鼠标左键单击事件。
    LEFT_DOUBLE_CLICK数字表示鼠标左键双击事件。
    RIGHT_DOWN数字表示鼠标左键按下事件。
    RIGHT_UP数字表示鼠标右键向上事件。
    RIGHT_CLICK数字表示鼠标右键单击事件。
    MIDDLE_DOWN数字表示鼠标中键按下事件。
    MIDDLE_UP数字表示鼠标中键向上事件。
    MIDDLE_CLICK数字表示鼠标中键单击事​​件。
    MOUSE_MOVE数字表示鼠标移动事件。
    WHEEL数字表示鼠标滚轮事件。
    PINCH_START数字表示触摸表面上的两指事件的开始。
    PINCH_END数字表示触摸表面上的两指事件的结束。
    PINCH_MOVE数字表示触摸表面上两指事件的变化。

     代码示例:

    1. // 添加鼠标左键点击事件
    2. const handler = new Cesium.ScreenSpaceEventHandler(this.viewer.cavans)
    3. handler.setInputAction(e => {
    4. console.info('e:', e)
    5. }, Cesium.ScreenSpaceEventType.LEFT_CLICK)

     执行效果,如下:

    其他事件都是照葫芦画瓢,把事件类型对就行。
     

    以上点击,只是实现了屏幕坐标的信息打印,我们在项目处理过程中,经常会在屏幕坐标和空间坐标进行互转,业务场景大概是:我加载了模型,点击模型想要获取模型的属性信息,如何操作呢?接下来,还是上代码说明:

     添加多边形并添加描述:

    1. const position2 = new Cesium.Cartesian3.fromDegrees(114.21, 30.55, 0)
    2. // 面
    3. const entityC = this.viewer.entities.add({
    4. id: 'entityC',
    5. position: position2,
    6. plane: {
    7. plane: new Cesium.Plane(Cesium.Cartesian3.UNIT_Z, 5.0),
    8. dimensions: new Cesium.Cartesian2(400, 400),
    9. material: Cesium.Color.BURLYWOOD,
    10. outline: true,
    11. outlineWidth: 10,
    12. outlineColor: Cesium.Color.BROWN,
    13. show: true
    14. },
    15. description: `
    16. 这是一个简单的信息

    17. `
  • })
  •  添加点击事件

    1. // 添加鼠标左键点击事件
    2. const handler = new Cesium.ScreenSpaceEventHandler(this.viewer.cavans)
    3. handler.setInputAction(e => {
    4. console.info('e:', e)
    5. const pick = this.viewer.scene.pick(e.position)
    6. if (Cesium.defined(pick)) {
    7. console.info('pick:', pick.id.id)
    8. }
    9. }, Cesium.ScreenSpaceEventType.LEFT_CLICK)

    执行效果:

     

    如果以上弹窗没有出现,请检查信息盒子是否打开,看下图:

     

     

  • 相关阅读:
    如何将两个pdf合并成一个?pdf合并技巧分享
    Java内存区域
    Java学习 (九)基础篇 包机制&JavaDoc
    MFC Windows 程序设计[337]之历史下拉列表框(附源码)
    wrk HTTP打流测试工具
    R中绘制以特定数值为对称的colorbar
    【微服务架构组件之注册中心】注册中心选型-我只选nacos
    信息学奥赛一本通:1173:阶乘和
    如何将docker 镜像上传到docker hub仓库
    MYSQL 不同的表格式,导致不同的存储空间消耗和性能差异 横向评测
  • 原文地址:https://blog.csdn.net/New_Wang/article/details/126877602