首页 / 浏览问题 / 桌面GIS / 问题详情
S3M倾斜模型转换为3dtiles出现坐标偏移问题
4EXP 2023年04月19日

使用产品:idesktopX11    操作系统:win10
数据类型: 倾斜摄影模型OSGB数据
问题详细描述:使用OSGB模型在idesktopX11中进行入库转为S3M格式(目标坐标系为84坐标),此时检查S3M模型的坐标位置与OSGB的位置完全重合。然后在idesktopX11里面把S3M模型转为3dtiles模型,发现3dtiles模型发生了坐标偏移问题且是非线性偏移。
问题重现步骤: 使用idesktopX11或iearth工具把S3M模型转换为3dtiles格式君出现偏移现象

1个回答

您好,

由于原生cesium为椭球体, 前端加载时建议球体转换方法去修改球体。:

 var obj = [6378137.0, 6378137.0, 6356752.3142451793];
        Cesium.Ellipsoid.WGS84 = Object.freeze(new Cesium.Ellipsoid(obj[0], obj[1], obj[2]));

请问如何加载的3dtiles数据? 建议用iclient3d产品加载3dtiles数据检查下是否偏移。例如:

var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
            url: './Data/tileset0.json'        
        }));
        //本地加载

在生成模型缓存的时候不要勾选 ‘重复贴图打组’。需要s3m的版本为1.0。

此外,需要在原生Cesium加载我们的S3MB数据的话,可以用开源Cesium工具,地址  https://github.com/SuperMap/iClient3D-for-WebGL,iearth插件能实现3DTiles与S3MB数据互转。 SuperMap3D.js 工具,可以实现在原生cesium直接加载超图发布的服务。 开源工具问题可在github中提issue反馈。

希望能够帮助到您!

2,169EXP 2023年04月20日

谢谢姜老师,我们试一下。

另外请问您说的3Dtiles与S3MB数据互转的iearth插件是指这个吗:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?tt=ProductAAS&id=137

还有生成模型缓存的时候不要勾选“重复贴图打组”,这个选项在哪里,好像没看到:

倾斜入库得话没有重复贴图打组参数,可以忽略。模型缓存才有这个参数。

是这个插件,也可以使用github上 得https://github.com/SuperMap/s3m-spec

好的,谢谢!

姜老师,你上面说的这个转换球体的代码:

var obj = [6378137.0, 6378137.0, 6356752.3142451793];

Cesium.Ellipsoid.WGS84 = Object.freeze(new Cesium.Ellipsoid(obj[0], obj[1], obj[2]));

我们发现cesium的源码也是这样设置的:

这样修改没有改变球体的参数,请问是否参数哪里有误呀?

这个参数是圆球转椭球的参数哈, iclient3d使用的是圆球,如果使用iclient3d加载3dtiles数据需要转换球体,原生cesium 使用的椭球,3dtiles需要在椭球场景加载。

 iclient3d是基于原生cesium1.67做的二次开发产品,部分接口为原生接口。不支持解决原生cesium的问题。

另外如倾斜入库时对数据做了优化,建议使用插件库直接在原生cesium中加载S3MB格式数据或服务。
...