作者:姜尔
一、技术思路
本文用于将基于倾斜摄影三维模型、人工建模数据、BIM、点云等数据生成的3D Tiles 1.0数据转换为S3M数据。
参数说明
- 接口详情可见SuperMap iObject Java帮助文档:
https://support.supermap.com/DataWarehouse/WebDocHelp/iObjectsJava/index.html
二、主要代码
Boolean flag = obliquePhotogrammetry3DModelTool.threeDTilesToS3M(srcJsonFile, outputScpPath, threeDTilesToS3MParameters);//3DTiles转S3M(带3DTiles转S3M参数类)三、完整示例代码
package gettingstarted; import com.supermap.data.AttributeExtentType; import com.supermap.data.S3MVersion; import com.supermap.data.processing.*; public class ThreeDTilesToS3M { public static void main(String[] args) { ObliquePhotogrammetry3DModelTool obliquePhotogrammetry3DModelTool = new ObliquePhotogrammetry3DModelTool();//倾斜摄影3D模型工具 ThreeDTilesToS3MParameters threeDTilesToS3MParameters=new ThreeDTilesToS3MParameters(); threeDTilesToS3MParameters.setAttributeType(AttributeExtentType.ATTRIBUTE);//设置属性类型。attribute属性存储类型 threeDTilesToS3MParameters.setCacheName("tilesetS3MB");//设置瓦片名称 threeDTilesToS3MParameters.setENU(false);//设置是否为ENU坐标。 threeDTilesToS3MParameters.setCacheDataType(CacheDataType.NORMALCACHEFILE);//设置瓦片数据类型。NORMALCACHEFILE 三维瓦片 threeDTilesToS3MParameters.setMeshCompressType(MeshCompressType.NONE);//设置几何压缩方式。 threeDTilesToS3MParameters.setS3MVersion(S3MVersion.VERSION_301);//设置S3M版本。 threeDTilesToS3MParameters.setTextureCompressType(TextureCompressType.TEXTURECOMPRESS_DXT);//设置纹理压缩格式。 threeDTilesToS3MParameters.setThreadCount(10);//设置线程数 String srcJsonFile = "E:/lxy-work/2026channels/20260130SuperMap iObjects Java 如何将3DTiles数据转换为S3M三维瓦片/lsbzztModel3/tileset.json"; String outputScpPath = "E:\\lxy-work\\2026channels\\20260130SuperMap iObjects Java 如何将3DTiles数据转换为S3M三维瓦片\\tilesetS3MB"; Boolean flag = obliquePhotogrammetry3DModelTool.threeDTilesToS3M(srcJsonFile, outputScpPath, threeDTilesToS3MParameters);//3DTiles转S3M(带3DTiles转S3M参数类) System.out.println("3DTiles转S3M是否成功" + flag); } }四、运行结果展示
3DTILES效果:
3DTILES 转S3M:
S3M加载效果: