【问题标题】:Calculate approximate location between two locations计算两个位置之间的大致位置
【发布时间】:2015-10-28 09:26:22
【问题描述】:

我正在实施简单的导航,我需要计算路线上的大概位置 (GPS)。 Route 是一个点列表,所以基本上是这样的:

                    (latX, longX)
(lat1, long1) o------o---------------o (lat2, long2)
                     |
                     |
                     o
                     (lat3, long3) - GPS My location

我有两个点 (lat1, long1) 和 (lat2, long2) 以及我的位置 (lat3, long3)。如何计算(latX、longX)?

【问题讨论】:

标签: algorithm math maps latitude-longitude


【解决方案1】:

让我试着给你一个草图,说明我将如何将问题分成更小的步骤。

  1. 将地球视为半径为 r 的完美 3D 球体。

  2. (lat, long)对给定的位置转换为球体表面上的3D点(x, y, z),即x^2 + y^2 + z^2 = r^2。您还需要进行逆变换才能返回到(lat, long) 坐标。

  3. 让我们放(使用上面的 2)

    P1 := (x1, y1, z1) (lat1, long1)

    P2 := (x2, y2, z2) (lat2, long2)

    P3 := (x3, y3, z3) (lat3, long3)

    P := (x, y, z) (latX, longX)

  4. H 是包含原点(地球中心)和点P1P2 的平面。请注意,H 在连接P1P2 的路径中与球体表面相交,如图所示。

  5. (a, b, c)垂直于H。你可以通过求解矩阵方程Mv = 0找到它,其中M是行为(x1, y1, z1)(x2, y2, z2)的矩阵,v是坐标为(a, b, c)的未知列。

    李>
  6. Q = (x3, y3, z3) + u*(a, b, c),其中uQ = (q1, q2, q3)H 中的系数。您可以通过求解矩阵方程Mv = P3 来计算u,其中M 是具有(x1, y1, z1)(x2, y2, z2)(-a, -b, -c) 列的3x3 矩阵,v 是未知列(s, t, u)P3 代表列(x3, y3, z3)

  7. P = w*Q,其中wP = (x, y, z)x^2 + y^2 + z^2 = r^2的系数。

  8. 使用上面步骤 2 中提到的变换的逆来计算 (latX, longX) <-> (x, y, z)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2018-09-21
    • 2016-02-27
    相关资源
    最近更新 更多