如何找到从一个 gps 坐标向量到另一个的相对角度?
How to find relative angle from one gps coordinate vector to other?
我已经提取了一组三个坐标,我想找到它们两个向量之间的相对角度。
- P1:
57.3112, 25.24871
- C1:
57.31105, 25.24875
- T1:
57.31086, 25.24803
喜欢:V1 = C1 - P1
、V2 = T1 - C1
然后得到从 V1
到 V2
的角度。
但是笛卡尔函数恐怕不能在这里切,因为在实际应用中,坐标可能跨越不同的经纬度。
我搜索过google但是我看到的功能不能说服我。我也在我的应用程序中尝试了一些,但是 returned 角度没有 return 预期的结果。
这三点,目测,我估计角度在120-140度左右。
我在地理计算方面的知识有限,我在这里没有线索。
如何计算角度?
使用 this page 中的公式,计算从中点到第一个和第三个的方位角(方位角)。
θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )
where φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude)
我强调,对于 "angle to turn" 方位角应该从转折点开始计算 - 因为对于圆弧 A-B 方位角的起点和终点会有所不同(子午线或平行弧等特定情况除外)。下图方向v不同于方向u(球面最短路径即所谓"big circle arc")
有两个轴承,你可以得到它们的差异来知道需要的角度(不要忘记处理超过 360 度的过渡)
还有球面三角学的方法——球面余弦定理(重排部分here),但需要求所有三角形边的弧长(可能用第一个link-但更多的计算)
我已经提取了一组三个坐标,我想找到它们两个向量之间的相对角度。
- P1:
57.3112, 25.24871
- C1:
57.31105, 25.24875
- T1:
57.31086, 25.24803
喜欢:V1 = C1 - P1
、V2 = T1 - C1
然后得到从 V1
到 V2
的角度。
但是笛卡尔函数恐怕不能在这里切,因为在实际应用中,坐标可能跨越不同的经纬度。
我搜索过google但是我看到的功能不能说服我。我也在我的应用程序中尝试了一些,但是 returned 角度没有 return 预期的结果。
这三点,目测,我估计角度在120-140度左右。
我在地理计算方面的知识有限,我在这里没有线索。
如何计算角度?
使用 this page 中的公式,计算从中点到第一个和第三个的方位角(方位角)。
θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )
where φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude)
我强调,对于 "angle to turn" 方位角应该从转折点开始计算 - 因为对于圆弧 A-B 方位角的起点和终点会有所不同(子午线或平行弧等特定情况除外)。下图方向v不同于方向u(球面最短路径即所谓"big circle arc")
有两个轴承,你可以得到它们的差异来知道需要的角度(不要忘记处理超过 360 度的过渡)
还有球面三角学的方法——球面余弦定理(重排部分here),但需要求所有三角形边的弧长(可能用第一个link-但更多的计算)