首页 / 浏览问题 / 组件GIS / 问题详情
使用组件实现osgb倾斜入库后无法显示
2EXP 2023年07月05日

使用产品:iobjects java 10i,idesktop 10i,操作系统:win10 x64

数据类型:osgb,已使用idesktop生成配置文件
问题描述:
1、设置EPSGCode为4490,中心点坐标单位是度,纹理压缩方式是CRN_DXT5,但生成的 Combine.scp 中EPSGCode是4549,坐标单位是米,纹理压缩方式是NONE

2、没有找到根节点着色类型和融合边界相关的接口,这在idesktop中是有的

3、进度监听器没有起作用

4、组件生成的s3m缓存无法在idesktop中显示,同样配置使用idesktop的倾斜入库之后是可以显示的

PrjCoordSys coordSys = new PrjCoordSys();
coordSys.fromEPSGCode(4490);

ObliquePhotogrammetryBuilder photogrammetryBuilder = new ObliquePhotogrammetryBuilder(new ObliqueProcessType[]{ObliqueProcessType.COMBINE_NODE});
photogrammetryBuilder.setS3MVersion(S3MVersion.VERSION_20); // S3M 2.0
photogrammetryBuilder.setStorageType(StorageType.Original); // 存储类型
photogrammetryBuilder.setVertexOptimazationType(VertexOptimizationType.VO_DRACO); // 几何压缩方式
photogrammetryBuilder.setTexCompressType(TextureCompressType.TEXTURECOMPRESS_CRNDXT5); // 纹理压缩方式
photogrammetryBuilder.setCenterPositionUnit(DataUnit.Degree); // 中心点坐标单位

photogrammetryBuilder.setCombineLevel(1); // 金字塔层级
// 根节点着色类型
// 融合边界

photogrammetryBuilder.setTargetPrjCoordSys(coordSys); // 目标坐标系
photogrammetryBuilder.setTargetCoordSysCoordSysTransMethod(CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION); // 参照系统 转换方法

photogrammetryBuilder.addSteppedListener(l -> {
	System.out.println("进度:" + l.getPercent() + ", 剩余时间:" + l.getRemainTime());
});
boolean result = photogrammetryBuilder.build(sourcePath + "Config.scp", targetPath, 8);

1个回答

您好,

考虑参数设置有误。注意中心点坐标单位为原始倾斜数据单位,通常是米。建议参考此官方博客https://blog.csdn.net/supermapsupport/article/details/121283786

希望能够帮助到您!

2,199EXP 2023年07月05日
参考博客改了,还是有问题
1、设置EPSGCode为4490,但生成的 Combine.scp 中EPSGCode是4549,坐标单位是米;idesktop倾斜入库的话坐标单位设置是米,但Combine.scp里是度
2、进度监听器没有起作用
3、组件生成的s3m缓存无法在idesktop中显示
如生成配置文件坐标系为4549.则使用组件入库需设置目标坐标系为4490且中心点坐标单位应为米。设置线程数等参数。

建议检查组件生成对的配置文件是否场景中能正常加载。

具体使用得是什么版本得组件呢? 这边使用新版本组件入库是正常的,您试一下新版本呢。
组件版本10.2.1,Config.scp 场景中可以加载
已经通过其他途径解决了,谢谢~
...