Cesium 3DTiles转OSGB

经常有用户给我们发消息说,手头只有3dtiles数据了,没有osgb原始数据了,能否实现一个3dtiles转osgb的功能。经过我们的攻城“狮”不懈的努力,这个功能终于实现并上线啦。

    首先,先下载最新版本的软件,可以从http://www.osgblab.com下载最新版本的软件,软件版本必须大于等于3.2.43。

    然后打开软件后,在首页点击”Cesium 3dTiles转osgb“按钮

    设置输入目录和输出目录之后点确定即可实现从3dtiles到osgb的转换,转换速度还是非常快的。

    界面中,输入目录同时支持本地磁盘中存的3dtiles文件,也支持web路径的数据转成OSGB。当输入为本地磁盘中的文件时,点浏览按钮选择3dtiles的根json文件,比如tileset.json。当输入为web路径时,直接把URL复制到输入目录对应的文本输入框中即可。比如http://192.168.1.19/Data/tileset.json。

需要注意的是:

目前仅支持网格类型的3dtiles转OSGB,点云类型的3dtiles转OSGB还未支持。

OSGBLab支持市面上绝大部分的mesh类别的3dtiles格式转OSGB,包括3dtiles 1.0,以及最新的3dtiles1.1;纹理压缩格式为KTX2,JPG,PNG和WEBP;几何压缩为draco和meshopt的,都统统支持转成OSGB。

OSGB格式转换为B3DM格式,可以通过调用外部工具(如3dtile.exe)来实现,以下是一个基于Java的实现示例,使用`ProcessBuilder`执行命令行操作,并传递参数以完成转换任务。 ### 实现代码 ```java import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class OsgbToB3dmConverter { public static boolean convertOsgbToB3dm(String sourceDataPath, String outputDir) { // 工具解压后的根目录路径 String toolRootPath = "D:\\wisdom\\plugins\\3dtile"; // 根据实际情况修改 // 构建命令和参数 String command = toolRootPath + File.separator + "3dtile.exe"; String[] arguments = {"-f", "osgb", "-i", sourceDataPath, "-o", outputDir}; // 设置环境变量 Map<String, String> envs = new HashMap<>(); envs.put("GDAL_DATA", toolRootPath + File.separator + "gdal_data"); int exitValue = -1; try { // 构建并启动进程 ProcessBuilder processBuilder = new ProcessBuilder(); processBuilder.command(command, arguments); processBuilder.environment().putAll(envs); Process process = processBuilder.start(); // 等待进程执行完成 exitValue = process.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } // 返回转换结果 return exitValue == 0; } public static void main(String[] args) { // 示例输入路径和输出路径 String sourceDataPath = "D:\\data\\osgb"; // OSGB文件所在目录 String outputDir = "D:\\data\\b3dm"; // 转换后B3DM文件输出目录 boolean success = convertOsgbToB3dm(sourceDataPath, outputDir); if (success) { System.out.println("转换成功!"); } else { System.out.println("转换失败,请检查输入路径或工具配置。"); } } } ``` ### 说明 1. **工具路径**:`toolRootPath`指向解压后的3dtile工具目录,确保其中包含`3dtile.exe`可执行文件和`gdal_data`环境数据[^2]。 2. **参数传递**:通过`arguments`数组传递格式(`-f osgb`)、输入路径(`-i`)和输出路径(`-o`)。 3. **环境变量**:设置`GDAL_DATA`以确保工具正常运行。 4. **进程执行**:使用`ProcessBuilder`启动外部进程并等待其完成。 5. **返回值**:如果返回值为`0`,表示转换成功;否则表示失败。 ### 注意事项 - 确保目标系统已安装必要的依赖库,如GDAL等。 - 输入的OSGB文件路径和输出目录必须有效且可访问。 - 如果工具支持其他参数(如压缩选项),可进一步扩展命令行参数以满足需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值