查找表示 GPS 路线的两条线之间的距离(MATLAB、Java、C++ 或 Python)

Posted

技术标签:

【中文标题】查找表示 GPS 路线的两条线之间的距离(MATLAB、Java、C++ 或 Python)【英文标题】:Finding the Distance Between Two Lines that represent GPS routes (MATLAB, Java, C++, or Python) 【发布时间】:2013-10-24 04:12:51 【问题描述】:

我一直在研究并试图解决这个问题,但无济于事。我找到了很多方法不能解决这个问题...... 问题的要点:我正在寻找一种方法来计算与通过 GPS 坐标行进的原始路径的偏差。我有多个包含纬度、经度和 UTC 时间的 csv 文件。我已经根据这些信息创建了 KML 文件,以便直观地查看偏差,现在想为这个偏差设置一个值。我选择了一条路线作为参考,并希望根据参考路线测量其他路线。有多条路线,每条路线都有自己的参考路线,每条路线都有很多条路线。没有两次运行是相同的,并且一些路线的偏离比下一次更多。我不能使用时间,只能使用 lat 和 lon,因为运行是在数周的数据收集中完成的。

到目前为止我已经尝试过: Haversine 和 Equirectangular 公式(循环并测量点对点)。 结果:坐标只排了很短的时间,点数差异很大。 每条曲线下的面积:打算通过这种方法找到两条路线的差异。 结果:真的不确定如何进行,也找不到适合此计算的方程。

还有一些更微弱的尝试,但已经为此工作了几个星期,没有太多可展示的内容,并且仍然不确定如何进行。

任何帮助或想法将不胜感激。

【问题讨论】:

【参考方案1】:

可能的解决方案1:不用计算两条路线之间的“横向”偏差,只需比较各自的弧长(Matlab:arclength)。

可能的解决方案 2:比较两条路线,每条路线都从同一起点 A 到同一终点 B:在 A 和 B 之间画一条直线,沿 AB 放置多个等距点,然后平均从 AB 上的这些点到您要比较的路径的垂直距离。与直线参考的累积偏差之间的绝对差值就是您的偏差。

可能的解决方案3:计算每条路线的弧长。在每条路线上放置一些等距的点。平均这些点之间的距离。

解决方案 2 和 3 都取决于您放置的点数,但点数越多,平均偏差就会收敛。请注意,这些解决方案都与计算每条曲线下的面积有关。

【讨论】:

感谢您的建议。我的下一个尝试是使用 Haversine 公式对每条路线的每个点到点距离求和,然后根据参考路线测量偏差。这是否类似于弧长解决方案?似乎它会,但是我不确定这在数学上是否合理。

以上是关于查找表示 GPS 路线的两条线之间的距离(MATLAB、Java、C++ 或 Python)的主要内容,如果未能解决你的问题,请参考以下文章

不使用 GPS 的两部 iPhone 之间的距离

CAD多线,怎么调整两条线之间的距离呢

计算 3D 中两条线(线段)之间的最短距离

cad中怎么测量两条线间垂直距离

如何使 UIBezierPath 中的两条线以不同的速度进行动画处理

创建滑块以动态显示图像中两条线的距离