gpt4 book ai didi

algorithm - 计算两个位置之间的大概位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:37 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

  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是包含原点(在地球中心)和点 P1 的平面和 P2 .注意 H在连接 P1 的路径中与球体表面相交与 P2如您的插图所示。

  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 中的行.你可以计算出u通过求解矩阵方程 Mv = P3 , 其中M3x3带列的矩阵 (x1, y1, z1) , (x2, y2, z2)(-a, -b, -c) , 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) .

关于algorithm - 计算两个位置之间的大概位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33387255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com