【cesium-5】鼠标交互与数据查询

scene.pick返回的是包含给定窗口位置基元的对象

scene.drillpack返回的是给定窗口位置所有对象的列表

Globe.pick返回的是给光线和地形的交点

Cesium.ScreenSpaceEventType.MIDDLE_CLICK 鼠标中间点击事件

Cesium.ScreenSpaceEventType.MOUSE_MOVE 鼠标移入事件

Cesium.ScreenSpaceEventType.RIGHT_CLICK 鼠标右击事件

复制代码
Cesium.Ion.defaultAccessToken = '';

var viewer = new Cesium.Viewer('cesiumContainer', {
        animation: false,
        timeline: false
});

var position = new Cesium.Cartesian3.fromDegrees(116.39, 38.9, 0.0);
const entity = viewer.entities.add({
    id:'BlueModel',
    position: position,
    plane: {
        plane: new Cesium.Plane(Cesium.Cartesian3.UNIT_X, 0.0),
        dimensions: new Cesium.Cartesian2(400, 300),
        material: "../testdata/test.png",
        outline: true,
        outlineColor: Cesium.Color.BLACK  
    },
    description:`<div>
                <img width="100%" height="300px" src="../testdata/data.png">
                <h3>你好呀</h3>
                <h3>欢迎学习cesium</h3>
                </div>` 
}) 

viewer.trackedEntity = entity;  //将摄像机视口快速绑定到模型位置 

var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (movement){
    var pick = viewer.scene.pick(movement.position);
    if(Cesium.defined(pick) && (pick.id.id ==='BlueModel')){
        alert("欢迎加入")
    }
},Cesium.ScreenSpaceEventType.LEFT_CLICK);  //监听鼠标左键点击事件 

参考链接 9、cesium使用entity进行页面交互效果 - 哔哩哔哩

相关推荐
程序猿的程16 分钟前
开源一个 React 股票 K 线图组件,传个股票代码就能画图
前端·javascript
不爱说话郭德纲43 分钟前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
唐叔在学习1 小时前
[前端特效] 左滑显示按钮的实现介绍
前端·javascript
用户5282290301801 小时前
【学习笔记】ECMAScript 词法环境全解析
前端
青青家的小灰灰2 小时前
React 架构进阶:自定义 Hooks 的高级设计模式与最佳实践
前端·react.js·前端框架
Angelial2 小时前
Vite 性能瓶颈排查标准流程
前端
不要秃头啊2 小时前
别再谈提效了:AI 时代的开发范式本质变了
前端·后端·程序员
青青家的小灰灰2 小时前
深入理解事件循环:异步编程的基石
前端·javascript·面试
用泥种荷花2 小时前
【LangChain.js学习】 向量数据库(内存/持久化)
前端
simon_luv_pho2 小时前
一行代码把网页变成 AI Agent?
前端