加载大面积实景三维模型出现偏移,如何投影变换处理?

一、实景三维加载偏移现象
图新地球软件支持加载大疆智图和Smart3D(Context Capture)生成的osgb格式倾斜摄影模型,但是有时候在加载大面积的模型时会出现模型有所偏移的现象,而且越是纬度高的地方这种现象越是明显。


光这样看可能没办法看出他具体的偏移,我们将视角锁定为垂直并放大细致看下局部的情况:


这个是模型相对中心的位置,我们可以看到根据卫星影像来看的话,道路基本上是相吻合的,并没有明显的偏差,然而我们查看模型的两端时,其效果如下:

可以清楚的看到存在着较大的偏差,这些偏差其实不仅仅在坐标上,在高度方面上也存在着一定的倾斜:

在确定地形高度差可忽略不计的情况下,我们将模型整体下移后可以看到这样的现象:模型的北部已经几乎都陷入地下。如此可见,模型在高度方面也存在着一些偏移。
以这种截图的方式只能大致看出存在偏移,那么具体的偏移量和偏移的原因具体是什么呢?
二、偏移原因分析
为了方便进一步的分析,必须先找到具体的偏移情况在哪里。这里我们根据在skyline中获取的标准的缆线数据作为基准,将模型中的塔座进行矢量化后进行一个分析对比。

这个是我们矢量化后的塔座和基准缆线的对比效果,正确情况下,塔座应在两端电缆之间,这里我们自西向东(图上自左向右)依次进行截图观察:






通过这些对比可以验证我们之前观察得出的结论:从中心到两端的偏移量越来越大。
我们这里再使用文本编辑器打开倾斜模型的位置信息文件metadata.xml:

可以看出该模型的投影坐标系以及中心点坐标,我们再使用文本编辑器打开LSV生成的lfp索引文件:

通过计算可以得出,LSV中生成的lfp里面的position字段值为metadata中的坐标根据其投影坐标信息所计算出来的wgs84经纬度坐标,该坐标为模型的中心坐标的。
这里我们可以得出结论,因为当前LSV只读取了模型的中心坐标的,并没有对模型进行相应的投影形变处理,所以会导致这样的偏移,并且会因为离模型中心距离越大偏移也越大,而且根据UTM的投影原理也可以确认模型离赤道越远偏离越大的这个现象。
三、解决方法
在当前的LSV版本中还不支持对于模型投影信息的直接识别,那我们该如何让大范围的模型加载在三维地图中又不出现偏移呢?这里可以使用我们的LSV专业版,LSV专业版可以直接读取模型的投影信息,加载后即可自动对模型进行投影形变处理:


这里我们可以将LSV免费版与LSV专业版的lfp索引文件进行对照(左侧为免费版,右侧为专业版):

这里可以看出,专业版比起免费版多加载了一个模型的投影信息,也正因为专业版可以自动识别投影信息并进行投影形变处理,所以专业版能做到相较于卫星影像无偏移、无变形的模型加载。
我们这里再通过之前将电力塔座矢量化后与缆线进行对比的方式进行一个验证:

这里可以明显看出,所有矢量化的塔座底面都在缆线中间,符合实际情况。得出结论:使用专业版可以更好地对大面积的倾斜摄影模型进行精准的加载。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性