-5

我正在尝试使用毕达哥拉斯来计算两个 GPS 点与海拔之间的距离。

IE:

第 1 点:51.244452 -0.577235 10,000(英国吉尔福德上方 10,000 英尺)

第 2 点:51.500439 -0.131811 30,000(英国威斯密斯特上方 30,000 英尺)

在 Python 2.7 中,如何使用毕达哥拉斯定理找到这两点之间的“直线”距离?

4

1 回答 1

2

首先我们需要将坐标转换为ℝ<sup>3。mjqxxxx在 Math.SE 上的一个类似问题中提供了这样做的公式:

x = R cos θ cos φ
y = R cos θ sin φ
z = R sin θ

我们将定义以下函数来处理这个问题:

def sph2cart(r, theta, phi):
   return(r*math.cos(theta)*math.cos(phi), r*math.cos(theta)*math.sin(phi),
          r*math.sin(theta))

假设一个半径为 20,926,000 英尺的球形地球:

>>> sph2cart(20926000+10000, 51.244452*math.pi/180, -0.577235*math.pi/180)
(13105249.663461415, -132035.2878228453, 16326392.55748538)
>>> sph2cart(20926000+30000, 51.500439*math.pi/180, -0.131811*math.pi/180)
(13045256.544829715, -30011.1344767356, 16400436.488440938)

现在我们可以将它们推过去并拉开距离。

于 2015-04-23T15:51:57.137 回答