当前位置: 首页 > news >正文

3d模型的添加与设置

在cesium中我们可以手动在地图中添加3d模型,通过准备好的资源进行添加,我们这里以飞机为例

// 定义一个名为 createModel 的函数,用于在 Cesium 场景中创建和显示一个 3D 模型
// 参数 url 是模型文件的路径,height 是模型的初始高度
function createModel(url, height) {// 清除场景中已有的所有实体,避免模型过多导致混乱viewer.entities.removeAll();// 根据给定的经纬度和高度,计算模型在地球上的初始位置// 这里使用了 Cesium 提供的 Cartesian3.fromDegrees 方法,将经纬度和高度转换为笛卡尔坐标const position = Cesium.Cartesian3.fromDegrees(-123.0744619, // 经度44.0503706,   // 纬度height,       // 高度);// 定义模型的初始朝向,这里使用了四元数来表示方向// heading 是绕 z 轴的旋转角度,单位是弧度,这里设置为 135 度const heading = Cesium.Math.toRadians(135);const pitch = 0;  // pitch 是绕 y 轴的旋转角度,这里设置为 0const roll = 0;   // roll 是绕 x 轴的旋转角度,这里设置为 0const hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);// 根据位置和朝向计算模型的四元数方向const orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);// 在场景中添加一个新的实体,用于表示模型const entity = viewer.entities.add({name: url, // 将模型文件的路径作为实体的名称,方便识别position: position, // 设置实体的位置orientation: orientation, // 设置实体的方向model: { // 配置模型的相关属性uri: url, // 模型文件的路径minimumPixelSize: 128, // 模型在屏幕上的最小像素大小,保证模型在远处也能清晰显示maximumScale: 20000, // 模型的最大缩放比例,防止模型过大},});// 将新添加的模型实体设置为当前跟踪的实体,使场景的视角聚焦在该模型上viewer.trackedEntity = entity;
}

保存运行后如下

相关文章:

  • 西电 | 2025年拟录取研究生个人档案录取通知书邮寄通知
  • 猫咪如厕检测与分类识别系统系列~进阶【三】网页端算法启动架构及数据库实现
  • 大语言模型训练的两个阶段
  • 阿里云人工智能大模型通义千问Qwen3开发部署
  • 在IDEA中导入gitee项目
  • Vue学习百日计划-Gemini版
  • C++匿名函数
  • 【爬虫】12306查票
  • 笔记本电脑升级实战手册[3]:扩展内存与硬盘
  • 案例数据清洗
  • 智能网联汽车“内外协同、虚实共生”的通信生态
  • logicflow 操作xml文件 为bpmn:serviceTask标签里存在title匹配的内容后添加指定标签内容。
  • 智能手表测试用例文档
  • MySQL 事务(一)
  • bootstrap自助(抽样)法
  • 第三章 仿真器介绍
  • python opencv 将不同shape尺寸的图片制作video视频
  • 掌握MySQL数据库操作:从创建到管理全攻略
  • 《Spring Boot 4.0新特性深度解析》
  • 基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器(项目推介)
  • 某博主遭勒索后自杀系自导自演,成都警方立案调查
  • 再获殊荣!IP SH跻身上海文化品牌全球传播力TOP 6
  • 巴基斯坦总理:希望通过和平对话方式解决与印方问题
  • 王毅同印度国家安全顾问多瓦尔通电话
  • 深圳市政协原副主席王幼鹏被“双开”
  • 白宫启动“返乡计划” ,鼓励非法移民自愿离开美国