3dfier输出格式对比清单:OBJ、CityJSON、CityGML、PostGIS等8种格式怎么选
【免费下载链接】3dfierThe open-source tool for creating 3D models项目地址: https://gitcode.com/gh_mirrors/3d/3dfier
3dfier 是一个开源工具,用于把 2D GIS 数据(如地形图、建筑物轮廓)自动抬升、缝合成无孔洞的 3D 城市模型。它一次运行可同时输出OBJ、CityJSON、CityGML、IMGeo、CSV、Shapefile、STL、PostGIS 等 8 种格式。这篇清单帮你在 3 分钟内选对格式,避免"导出后软件打不开"的尴尬。
📌 先看懂 3dfier 能做什么
3dfier 读取多边形面数据 + LAS/LAZ 点云,把每个多边形按语义抬升到 3D:水体拉平成水平面、建筑生成 LOD1 立体块、道路生成平滑曲面,最终拼成一个水密(无孔洞、无自交)的数字地表模型。整个过程由一行命令完成:
输入数据示例(荷兰 BGT 基础地理数据 + AHN3 激光雷达点云):
最终生成的城市级 3D 模型效果:
所有格式的详细规格可查阅 docs/pages/getting-started/file_formats.md,命令参数解析实现在 src/main.cpp,各格式的写入逻辑集中在 src/Map3d.cpp。
🧭 8 种输出格式一览表
| # | 格式 | 命令行参数 | 一句话定位 |
|---|---|---|---|
| 1 | OBJ | --OBJ | 可视化首选,几乎所有 3D 软件都能打开 |
| 2 | CityJSON | --CityJSON | 基于 JSON 的轻量 3D 城市模型,Web 端友好 |
| 3 | CityGML | --CityGML | XML 标准的语义化 3D 城市模型,学术/行业通用 |
| 4 | IMGeo | --CityGML-IMGeo | 荷兰国家 BGT 数据的 CityGML 扩展标准 |
| 5 | CSV | --CSV-BUILDINGS等 | 建筑高度统计表,快速算指标 |
| 6 | Shapefile | --Shapefile | 带垂直面的 3D 多边形,GIS 软件可用 |
| 7 | STL | --STL | 三角形网格,3D 打印与仿真导入 |
| 8 | PostGIS | --PostGIS | 直接写入地理数据库,一图层一表 |
💡 除以上 8 种外,3dfier 还支持一个通用 GDAL 驱动(--GDAL),只要格式支持 MultiPolygonZ 几何就能尝试输出,配置方法见 docs/pages/getting-started/file_formats.md。
🎯 逐个格式细看:适用场景与注意事项
1️⃣ OBJ:想快速看 3D 效果,选它
OBJ 是最通用的纯几何格式,适合在 MeshLab、Blender、CloudCompare 中检查模型质量。3dfier 有个小技巧:把材质文件3dfier.mtl与 .obj 放同一目录,各对象就会按类别着色显示(建筑、地形、水体各一个颜色)。
注意:OBJ 只支持 MultiSurface 表达,建筑可为 LoD0(仅屋顶面)或 LoD1(立体块)。对象 ID 通过o行保留,语义靠材质标签实现。
2️⃣ CityJSON:Web 展示的轻量之选
CityJSON 用 JSON 编码、采用 CityGML 的信息模型,是数字孪生、Web 地图平台最爱交换的 3D 格式。3dfier 导出的 CityJSON 中,建筑是带楼层的LoD1 Solid,并写入min height surface(地板高度)和measuredHeight(屋顶绝对高度)两个属性,比 OBJ 携带更多语义信息。
3️⃣ CityGML:语义化标准模型的行业通用语
CityGML 是 XML 标准的 3D 城市信息模型,可经官方模式验证器校验,适合作为交付和科研成果格式。配置triangulation: true可输出三角化 MultiSurface 建筑(替代 LoD1 实体),floor: true则包含楼板面。支持CityGML-Multifile按类别拆分成多个文件(如testdata-Buildings.gml)。
4️⃣ IMGeo:荷兰国家数据标准
IMGeo 是 CityGML 的应用域扩展(ADE),是荷兰政府 BGT 基础注册数据的官方格式,可通过 Geonovum 的 IMGeo 2.1.1 模式验证器校验。与 CityGML 略有不同:它不存 LoD0 地板/屋顶面,且会把输入中的部分属性复制到 IMGeo 专属字段。同样提供CityGML-IMGeo-Multifile多文件输出。
5️⃣ CSV:3 行命令拿到建筑高度统计
如果你的目标只是统计(平均高度、楼层估算、容积率分析),不必导出整个 3D 模型。CSV 输出提供 3 个变体:
CSV-BUILDINGS:每个建筑的地面/屋顶高度单一百分位数(单位 cm)CSV-BUILDINGS-MULTIPLE:地面 7 档 + 屋顶 8 档百分位数(单位 m)CSV-BUILDINGS-ALL-Z:建筑内所有点的高程值(单位 cm)
6️⃣ Shapefile:回流 GIS 生态
写入带垂直面的 MultiPolygonZ,QGIS 中可正常打开,适合把 3D 结果带回 ArcGIS/QGIS 工作流。⚠️ 部分软件对垂直面支持不佳,可能出现报错。
7️⃣ STL:3D 打印与仿真导入
当前导出文本版 STL(二进制支持开发中),把整个数字地表模型交给 3D 打印或仿真软件。
8️⃣ PostGIS:城市级 3D 数据入库
不写文件、直接写库。参数传 GDAL 风格的 PostGIS 连接串(记得整体加引号)。提供 3 种变体:
PostGIS:每层一张表,几何列为 MultiPolygonZPostGIS-PDOK:额外加 XML 列,存 IMGeo 字符串PostGIS-PDOK-CityGML:XML 列存 CityGML 字符串
✅ 场景速查表:3 秒定格式
| 你的场景 | 选它 |
|---|---|
| 打开 3D 软件检查模型质量 | OBJ |
| Web 端展示 / 数字孪生交换 | CityJSON |
| 学术发表 / 标准语义化交付 | CityGML |
| 荷兰 BGT 标准数据交换 | CityGML-IMGeo |
| 只要建筑高度统计表 | CSV |
| 结果导入 QGIS / ArcGIS | Shapefile |
| 3D 打印 / 仿真软件 | STL |
| 城市级 3D 数据长期管理 | PostGIS |
🚀 一次运行,多格式同时输出
命令行里每个格式参数可叠加,3dfier 会依次写出所有指定格式,输入与输出保持 1:1 的 ID 映射(每个多边形的唯一 ID 全程保留)。例如同时生成 OBJ 可视化模型和建筑高度统计:
3dfier testarea_config.yml --OBJ output/model.obj --CSV-BUILDINGS output/buildings.csv完整参数说明见 docs/pages/getting-started/first_run.md,各格式写入细节与流程图见 docs/pages/architecture/output_flow.md,示例配置可参考 example_data/testarea_config.yml。
🏁 总结
记住这条决策链:看效果用 OBJ,上 Web 用 CityJSON,要语义用 CityGML,入库用 PostGIS,统计用 CSV。8 种格式一次运行全部可得,按需勾选即可——这正是 3dfier 作为开源 3D 城市模型工具的实用之处。
【免费下载链接】3dfierThe open-source tool for creating 3D models项目地址: https://gitcode.com/gh_mirrors/3d/3dfier
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考