我有N
个GPS坐标和N
个距离,用于确定一个未知位置。
我的第一种方法是使用三个点和三边测量法,就像这里描述的那样。这种方法已经相当准确(最佳误差约为5公里),但我想改进它并增强其稳健性。 由于给定的距离本来就不太准确,所以我考虑使用多次测量和多边测量。 然而,尽管我提供了超过3个点/距离(测试了最多6个),但结果表明,这种方法远不如三边测量法准确(最佳误差约为100公里),现在我想知道是否有人知道我可能犯了什么错误。
简而言之,我进行多边测量的方法如下:
- 将所有坐标转换为ECEF
- 按照wikipedia中的Eq.7描述构建矩阵
- 使用SVD找到最小化器
- 由于解决方案仅相对比例,因此我使用根查找方法确定归一化,以便将转换回LLA的坐标结果为高度为0(我的初始假设是所有坐标都在零高度处)
- 转换回LLA
LLA / ECEF转换已经双重检查并且正确。 我用欧几里得坐标(和精确距离)检查了步骤2和3,并且似乎是正确的。 我自己想出了第4步,我不知道这是否是一个好方法,所以欢迎提出建议。
+++更新
我用Python编写了示例代码,以说明问题 带有一些基本事实。 三角定位最接近400m,而 多边形区域范围在10-130km之间。 由于长度,我将其放在ideone处