使用3dtiles.exe (https://github.com/fanvanzh/3dtiles) 从OSGB转换为3dtiles时,发现x,y反了。不确定原因?
应该是这样的:
使用three-loader-3dtiles.js加载后,变成这样:
有没有什么解决办法?或者有其它工具能更好的转换?
补充:
1.OSGB使用CC Master生成的,metadata.xml 不含坐标系和坐标原点,我手动添加了
<!--Spatial Reference System-->
<SRS>EPSG:4326</SRS>
<!--Origin in Spatial Reference System-->
<SRSOrigin>0,0</SRSOrigin>
方便数据发我看一下吗?我帮你看一下。
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据您提供的信息,问题可能出在坐标系的定义上。在转换过程中,如果没有正确指定源数据的坐标系或者目标数据的坐标系,可能会导致坐标轴的翻转或者坐标范围的不正确。
建议您仔细检查原始数据的坐标系和范围,并确保在转换过程中正确指定这些信息。如果您使用了其他工具进行转换,可以尝试使用不同的工具或者调整其参数以解决问题。
另外,您提到转换后的3dtiles模型的最大、最小值不正常,可能也与坐标系的定义有关。您可以检查模型的元数据文件,确保其中的坐标系信息和数据范围正确。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
可能是由于使用的投影坐标系与3dtiles.exe期望的坐标系不一致所导致的。
解决思路是使用3dtiles.exe中提供的--flip-axis选项。该选项可以翻转3dtiles.exe生成的3D瓦片的x和y坐标,参考:
3dtiles.exe convert --flip-axis osgb-file.osgb tiles-file.3dtiles
引用部分chatgpt
可能是由于在OSGB和3dtiles中坐标系的定义不同导致的。OSGB使用的是东北天坐标系(ENU),而3dtiles使用的是右手笛卡尔坐标系(XYZ),其中X轴指向东方,Y轴指向北方,Z轴指向天空。
在进行OSGB到3dtiles的转换时,需要将OSGB中的坐标系转换为3dtiles中的坐标系。这个转换过程需要考虑到坐标系之间的旋转和平移。在旋转方面,需要将ENU坐标系旋转90度,使其X轴指向东方,Y轴指向北方;在平移方面,需要将ENU坐标系的原点设置为3dtiles坐标系的原点。
如果在转换过程中出现了X和Y反转的情况,可能是由于旋转和平移的顺序不正确或者旋转的角度不正确导致的。可以尝试调整旋转和平移的顺序,或者调整旋转的角度,以解决这个问题。
可能是因为3dtiles.exe默认使用的是左手坐标系,而OSGB使用的是右手坐标系。你可以尝试使用以下命令行选项来解决这个问题:
3dtiles.exe input.osgb output.3dtiles --flipXY
这个命令会将OSGB数据中的x和y坐标进行反转,从而得到正确的3dtiles数据。如果还有其他的坐标系问题,可以尝试使用其他的命令行选项来解决。具体的选项可以参考3dtiles.exe的帮助文档。