用Python计算两个GPS点之间的距离
计算两个GPS点之间的距离是一个地理和数学的练习,我们可以在Python框架内操作。现在让我们来看看我们如何用Python进行这一操作。
使用Python中的哈弗尔辛公式计算两个GPS点之间的距离
哈弗辛公式是用Python计算两个GPS点之间距离的简化方法,但是它的计算是基于地球是一个完美的球体这一假设。然而,地球并不是一个完美的球体。
这意味着我们将得到的结果不会是完全准确的;由于这个假设,有一点误差。haversine公式通过计算两对经度和纬度之间的距离来计算两个GPS点之间的距离。
创建一个Python并在里面输入这些代码。将文件命名为new.py
,如下图所示:
代码片段-new.py
:
from math import radians, cos, sin, asin, sqrt
def haversine(lat1, lon1, lat2, lon2):
R = 3959.87433
dLat = radians(lat2 - lat1)
dLon = radians(lon2 - lon1)
lat1 = radians(lat1)
lat2 = radians(lat2)
a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2
c = 2*asin(sqrt(a))
return R * c
lon1 = -103.548851
lat1 = 32.0004311
lon2 = -103.6041946
lat2 = 33.374939
print(haversine(lat1, lon1, lat2, lon2))
输出:
当我们点击运行时,我们应该在终端里面看到这个结果。
使用Python中的mpu
库计算两个GPS点之间的距离
mpu
源自Martins Python Utilities,它是一个Python库,可以用来执行各种功能而不需要任何其他的依赖。
首先,我们通过输入以下内容来安装mpu
:
pip install mpu
然后,我们创建一个新的Python文件,命名为new.py
,并键入以下代码:
代码片段-new.py
:
import mpu
lat1 = 32.0004311
lon1 = -103.548851
lat2 = 33.374939
lon2 = -103.6041946
dist = mpu.haversine_distance((lat1, lon1), (lat2, lon2))
print(dist)
等待片刻,你应该在终端内查看计算的距离。
输出:
使用Python中的geopy
库计算两个GPS点之间的距离
geopy
for Python是一个专门用于计算国家、州、城市等之间距离的库。正如我们在下面的例子中所观察到的,我们可以用公里、英里等来计算距离。
在终端内,键入以下内容来安装geopy
库:
pip install geopy
创建一个新文件,命名为new.py
,并输入这些代码。
from geopy.distance import geodesic
origin = (30.172705, 31.526725)
dist = (30.288281, 31.732326)
print(geodesic(origin, dist).kilometers)
输出:
如果你想让结果以英里为单位显示,将最后一点代码中的kilometers
改为miles
,然后运行该代码。
结论
计算地球上两个特定点之间的距离再简单不过了。尽管哈维辛公式可能会有0.5%的偏差,但其结果仍然很接近,可用于各种项目。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。