825  
查询码:00000270
Cesium 生成三维城市建筑模型
作者: 可威 于 2022年01月21日 发布在分类 / 人防组 / 人防前端 下,并于 2022年01月21日 编辑
Cesium Gis ArcGis

Cesium 生成3Dtiles文件流程

CesiumJS 是一个跨平台、跨浏览器可以展示三维世界地图与三维模型的开源js库。



1.支持的文件格式

cesium 支持加载glb 、glTF 、3dtiles(文件夹) 、geojson 格式的数据。经过个人测试后发现3dtiles 格式最优。


2.生成3dtiles 文件

2.1从2d 地图中抽取建筑矢量模型

文件转换的流程是:.osm => .shp => 3dtiles


(1).从openstreetmap 导出 osm 文件(https://www.openstreetmap.org/export#map=12/34.2711/117.1084)


选择区域导出或手动框选区域导出



导出成功后得到 map.osm 文件


(2).使用ArcGis 将 osm 文件转换为 shp 文件

ArcGis安装教程

https://www.jb51.net/softs/682047.html


将软件安装完成之后


打开ArcCatalog



在本地建立一个文件夹





连接到刚才创建的本地文件夹


再右键test 新增 文件夹和文件地理数据库



下一步点击工具箱=》系统工具箱 ,找到 OpenStreetMap Toolbox.tbx


如果没有这个工具就需要安装 ArcGIS Editor for OpenStreetMap 10.7 (64-bit) 插件



加载刚才下载的osm文件



下面选择的是文件地理数据库后面跟一个名称


等待一会儿直到右下角弹出


代表导入成功



导入成 shp 格式


右键 shp01 =》 导出 =》 导出为 Shapefile


导出成功后看到



后面只需要使用矢量面的数据


打开ArcMap


添加刚才生成的矢量面数据



打开之后是这样的,可以在ArcMap 中将不需要的部分删除







下面将添加模型的高度字段


Shp01_osm_ply 右键打开属性表,这个表里的数据在生成模型后都是可以展示的


添加高度字段



点击表选项=》 添加字段



新添加的字段数据都是0,需要给一个随机数,随机生成高度



右键字段名 = 》 字段计算器



(3).将处理好的shp 文件转化为3dtiles


使用 cesiumlab2 可以将shp、obj 文件转换成3dtiles


安装登录后是这样的



点击通用模型切片





选择刚才处理过的shp 文件



建筑高度选择刚才添加的‘height’字段



选择输入文件夹点击右侧提交处理



生成成功



这个文件夹就是3dtiles 格式

3.加载3dtiles 模型


加载后



因为中国大陆相关法规导致模型渲染后有些许偏移,此时使用QGIS 将 WGS-84 坐标系转为GCJ-02坐标系就可以解决偏移问题


加载模型




可以将 obj 模型格式转换为3dtiles 格式





 推荐知识

 历史版本

修改日期 修改人 备注
2022-01-21 17:45:17[当前版本] 可威 格式调整
2022-01-21 11:02:07 可威 创建版本

 附件

附件类型

PNGPNG

知识分享平台 -V 4.8.7 -wcp