news 2026/4/25 4:28:44

Cesium 处理屏幕空间事件(鼠标点击、移动、滚轮)的示例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cesium 处理屏幕空间事件(鼠标点击、移动、滚轮)的示例
  • 鼠标点击事件通过LEFT_CLICK类型监听,使用drillPick方法获取点击的对象并打印其名称。
  • 鼠标移动事件通过MOUSE_MOVE类型监听,使用pickEllipsoid方法获取鼠标位置对应的经纬度并打印。
  • 鼠标滚轮事件通过WHEEL类型监听,通过调整相机的高度来实现缩放效果。
const viewerDivRef = ref<HTMLDivElement>() // 初始化Cesium Viewer viewer = new Cesium.Viewer(cesiumContainer.value, { timeline: true, animation: true, shouldAnimate: true, homeButton: false, // 是否显示Home按钮 fullscreenButton: false, // 是否显示全屏按钮 baseLayerPicker: true, // 是否显示图层选择控件 geocoder: false, // 是否显示地名查找控件 sceneModePicker: false, // 是否显示投影方式控件 navigationHelpButton: false, // 是否显示帮助信息控件 infoBox: false, // 是否显示点击要素之后显示的信息 requestRenderMode: true, // 启用请求渲染模式 scene3DOnly: false, // 每个几何实例将只能以3D渲染以节省GPU内存 sceneMode: 3, // 初始场景模式 1 2D模式 2 2D循环模式 3 3D模式 Cesium.SceneMode }); // 鼠标点击事件 viewer.screenSpaceEventHandler.setInputAction((movement) => { const pickedObjects = viewer.scene.drillPick(movement.position); if (pickedObjects.length > 0) { const pickedObject = pickedObjects[0]; console.log('点击了:', pickedObject.name); } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); // 鼠标移动事件 viewer.screenSpaceEventHandler.setInputAction((movement) => { const cartesian = viewer.camera.pickEllipsoid(movement.endPosition, viewer.scene.globe.ellipsoid); if (cartesian) { const cartographic = Cesium.Cartographic.fromCartesian(cartesian); const longitude = Cesium.Math.toDegrees(cartographic.longitude); const latitude = Cesium.Math.toDegrees(cartographic.latitude); console.log('鼠标移动到经纬度:', longitude, latitude); } }, Cesium.ScreenSpaceEventType.MOUSE_MOVE); // 鼠标滚轮事件 viewer.screenSpaceEventHandler.setInputAction((wheel) => { const camera = viewer.camera; const distance = camera.positionCartographic.height; const newDistance = distance * (1 - wheel.delta * 0.1); camera.setView({ destination: Cesium.Cartesian3.fromRadians(camera.positionCartographic.longitude, camera.positionCartographic.latitude, newDistance) }); }, Cesium.ScreenSpaceEventType.WHEEL); // 强制刷新场景 try { if (viewer && viewer.scene) { viewer.scene.requestRender() setTimeout(() => { if (viewer && viewer.scene) { viewer.scene.requestRender() } }, 0) } } catch (e) { console.warn('刷新场景时出错:', e) } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 22:39:10

省级荣誉加持!众智鸿图AI产品再获行业权威认可

近日&#xff0c;湖北省软件行业协会正式揭晓了第二批湖北省人工智能产品名单。继智巡终端&#xff08;IV200&#xff09;获授首批省级人工智能产品称号后&#xff0c;众智鸿图公司自主研发的另一款人工智能产品HopeMap AI平台&#xff08;简称&#xff1a;HopeAI&#xff09;&…

作者头像 李华
网站建设 2026/4/23 16:29:04

2小时,我搭了一套生产质检闭环系统,返工、漏检一次性解决

你有没有遇到过这种情况——机器轰隆隆转了一整天&#xff0c;产量报表看着漂亮&#xff0c;结果一到出货之后&#xff0c;客户一个电话打过来&#xff1a;“你们这质量怎么回事&#xff1f;” 然后整个车间开始翻箱倒柜找问题批次……最离谱的是&#xff0c;这种事不是第一次&…

作者头像 李华
网站建设 2026/4/23 8:31:06

大模型知识库(1)什么是Claude Skills?

Claude Skills 是 Anthropic 为其大语言模型 Claude 推出的扩展功能模块&#xff0c;可以理解为 Claude 的 “插件” 或 “技能包”&#xff0c;能够让 Claude 在基础对话能力之上&#xff0c;具备特定场景下的专业能力&#xff0c;从而更好地解决复杂任务。一、 Claude Skills…

作者头像 李华
网站建设 2026/4/22 10:55:48

学霸同款10个AI论文网站,继续教育学生轻松搞定毕业论文!

学霸同款10个AI论文网站&#xff0c;继续教育学生轻松搞定毕业论文&#xff01; AI 工具助力论文写作&#xff0c;轻松应对学术挑战 在当今快节奏的学习生活中&#xff0c;继续教育学生面临着诸多挑战&#xff0c;尤其是在撰写毕业论文时。面对繁重的学业压力和复杂的学术要求&…

作者头像 李华
网站建设 2026/4/20 19:12:21

别再手动写代码了!Claude Skills 实战,让 AI 帮你干 80% 的活!

&#x1f4cb; 目录 什么是 Claude Skills快速安装 Skills已安装的 Skills 清单Skills 使用方式详解实战案例&#xff1a;使用 Frontend Design Skill 创建网站Skill 管理最佳实践高级技巧常见问题排查 什么是 Claude Skills Claude Skills 是模块化的能力包&#xff0c;包含…

作者头像 李华
网站建设 2026/4/16 7:48:36

别再神话 Claude Skills 了:这 12 个“致命”局限性你必须知道

网上有很多介绍 Claude Skills 的文章&#xff0c;但是很少有人提 Skills 的局限性。甚至看到有人稍微把 Skills 吹过头了&#xff01;说实话&#xff0c;Skills 是解决大模型缺乏专业知识、解决上下文窗口等问题的一个先进解法&#xff0c;但目前还不完美。我认为当你无法说出…

作者头像 李华