Cesium + Blender 实现简单GIS

本文介绍了如何通过Blender构建3D物体并导出为gltf2.0格式,然后在Cesium基础工程中加载和操作3D模型。通过设置模型坐标、旋转和缩放来实现模型在地图上的定位与动态调整。同时,提供了相关参考资料,包括Cesium的模型添加、修改和删除,以及Cesiumlab低代码平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.通过Blender构建3d物体

导入CAD/DAE素材,手工搭建。导出gltf2.0格式文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.在Cesium的基础工程中加入gltf模型

    let x = 117.818372;
    let y = 39.000082;
    const viewer = new Cesium.Viewer("cesiumContainer");
    var scene = viewer.scene;
    var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
      Cesium.Cartesian3.fromDegrees(x, y, -10.0));
    var model = scene.primitives.add(Cesium.Model.fromGltf({
      url: '../Specs/Data/Models/CK/cck.gltf',//模型文件相对路径  
      modelMatrix: modelMatrix,
      scale: 80 //调整模型在地图中的大小  
    }));

模型旋转
x,y 移动,rz按Z轴旋转

var params = {
      tx: x - 0.0054,   //模型中心X轴坐标(经度,单位:十进制度)
      ty: y + 0.00001,    //模型中心Y轴坐标(纬度,单位:十进制度)
      tz: 0,    //模型中心Z轴坐标(高程,单位:米)
      rx: 0,    //X轴(经度)方向旋转角度(单位:度)
      ry: 0,    //Y轴(纬度)方向旋转角度(单位:度)
      rz: 270      //Z轴(高程)方向旋转角度(单位:度)
    };

    update3dtilesMaxtrix(model, params);

在这里插入图片描述

3.参考文献

1.cesium 添加model及其增删改
2.Cesium-Github
3.Cesiumlab , 基于Cesium开发,低代码平台,适合新手练习,不适合二次开发
4.Cesium中文网,安装步骤可以参考,后面文章需要充值,不推荐
— 以上建议仅代表个人观点,水平有限,欢迎补充。

### 使用 Blender 将 OSM 文件导出为 FBX 格式 为了实现从OSM文件到FBX格式的转换,通常需要先将地理信息系统(GIS)数据转化为三维建模软件能够识别的形式。对于OpenStreetMap(OSM),这一步骤可能涉及使用专门工具或插件来解析XML或者PBF格式的数据,并将其几何特征映射成3D对象。 然而,Blender本身并不直接支持读取OSM文件。因此,一种常见做法是从第三方资源获取已经处理好的基于OSM数据创建的城市模型或其他结构化场景;另一种方法则是利用Python脚本编写自定义解决方案来进行初步转化[^1]。 一旦拥有了适合导入至Blender环境内的3D资产——无论是通过上述方式之一获得还是其他途径得到——便可以按照常规流程操作: - 打开Blender并将准备好的3D模型加载进来; - 对于多部分组成的复杂物体,建议在此之前完成必要的组合工作以简化后续步骤; - 完成任何所需的编辑之后,选择要导出的对象; - 通过菜单栏`File -> Export -> FBX(.fbx)`选项启动导出过程; - 在弹出窗口设置目标路径及其他参数(如轴向调整、单位比例等),特别注意确保勾选了“Apply Transform”以便正确保存旋转和平移信息[^2]。 ```python import bpy # 设置当前活动对象为所选对象 bpy.context.view_layer.objects.active = bpy.data.objects["YourObjectName"] # 应用变换矩阵使导出更稳定 for obj in bpy.context.selected_objects: bpy.ops.object.transform_apply(location=True, rotation=True, scale=True) # 开始执行FBX导出命令 bpy.ops.export_scene.fbx(filepath="path/to/your/file.fbx", use_selection=True) ``` ### 利用 Cesium Ion 进行 3D Tiles 转换 当拥有经过适当预处理并成功导出了FBX版本的目标建筑群组时,则可借助Cesium平台提供的在线服务进一步加工这些素材成为适用于WebGL渲染引擎消费的内容形式即3D Tiles集。 具体而言,在上传之前应该考虑优化网格细节层次(LOD),剔除不必要的材质贴图以及压缩纹理尺寸等方面的工作来减少最终产物体积大小从而提高加载效率。 访问[Cesium Ion](https://cesium.com/)网站注册账号后即可享受这项便捷的服务特性: - 登录账户进入仪表板页面; - 点击左侧导航栏中的"Assets"; - 按照指示上传先前准备完毕的FBX文件; - 系统会自动开始构建对应的Tileset索引树形结构; - 处理完成后可以在项目列表里查看新生成的作品链接用于分享展示或是集成开发当中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值