zoukankan      html  css  js  c++  java
  • 加载大面积实景三维模型出现偏移,如何投影变换处理?

     
     
     
    实景三维加载偏移现象
    图新地球软件支持加载大疆智图和Smart3D(Context Capture)生成的osgb格式倾斜摄影模型,但是有时候在加载大面积的模型时会出现模型有所偏移的现象,而且越是纬度高的地方这种现象越是明显。
    光这样看可能没办法看出他具体的偏移,我们将视角锁定为垂直并放大细致看下局部的情况
     
    这个是模型相对中心的位置,我们可以看到根据卫星影像来看的话,道路基本上是相吻合的,并没有明显的偏差,然而我们查看模型的两端时,其效果如下:
    可以清楚的看到存在着较大的偏差,这些偏差其实不仅仅在坐标上,在高度方面上也存在着一定的倾斜
     
    在确定地形高度差可忽略不计的情况下,我们将模型整体下移后可以看到这样的现象:模型的北部已经几乎都陷入地下。如此可见,模型在高度方面也存在着一些偏移。
    以这种截图的方式只能大致看出存在偏移,那么具体的偏移量和偏移的原因具体是什么呢?
     
    偏移原因分析
    为了方便进一步的分析,必须先找到具体的偏移情况在哪里。这里我们根据在skyline中获取的标准的缆线数据作为基准,将模型中的塔座进行矢量化后进行一个分析对比
     
    这个是我们矢量化后的塔座和基准缆线的对比效果,正确情况下,塔座应在两端电缆之间,这里我们自西向东(图上自左向右)依次进行截图观察:
    通过这些对比可以验证我们之前观察得出的结论:从中心到两端的偏移量越来越大。
     
    我们这里再使用文本编辑器打开倾斜模型的位置信息文件metadata.xml
    可以看出该模型的投影坐标系以及中心点坐标,我们再使用文本编辑器打开LSV生成的lfp索引文件
    通过计算可以得出,LSV中生成的lfp里面的position字段值为metadata中的坐标根据其投影坐标信息所计算出来的wgs84经纬度坐标,该坐标为模型的中心坐标的。
     
    这里我们可以得出结论,因为当前LSV只读取了模型的中心坐标的,并没有对模型进行相应的投影形变处理,所以会导致这样的偏移,并且会因为离模型中心距离越大偏移也越大,而且根据UTM的投影原理也可以确认模型离赤道越远偏离越大的这个现象。
     
    解决方法
    在当前的LSV版本中还不支持对于模型投影信息的直接识别,那我们该如何让大范围的模型加载在三维地图中又不出现偏移呢?这里可以使用我们的LSV专业版,LSV专业版可以直接读取模型的投影信息,加载后即可自动对模型进行投影形变处理
    这里我们可以将LSV免费版与LSV专业版的lfp索引文件进行对照(左侧为免费版,右侧为专业版):
    这里可以看出,专业版比起免费版多加载了一个模型的投影信息,也正因为专业版可以自动识别投影信息并进行投影形变处理,所以专业版能做到相较于卫星影像无偏移、无变形的模型加载。
     
    我们这里再通过之前将电力塔座矢量化后与缆线进行对比的方式进行一个验证:
    这里可以明显看出,所有矢量化的塔座底面都在缆线中间,符合实际情况。得出结论:使用专业版可以更好地对大面积的倾斜摄影模型进行精准的加载。
     
     
     
  • 相关阅读:
    JS LeetCode 1423. 可获得的最大点数简单题解
    SpringBoot 学集 (第六章) Docker
    Linux 学记 (第三章)
    Linux 学记 (第二章)
    Linux 学记 (第一章)
    SpringBoot 学集 (第五章) Web开发续
    SpringBoot 学集 (第四章)Web开发
    SpringBoot 学集 (第三章) 日志框架
    SpringBoot 学集 (第二章) 配置文件
    SpringBoot 学集 (第一章)
  • 原文地址:https://www.cnblogs.com/tuxingis/p/13558711.html
Copyright © 2011-2022 走看看