迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中计算两个 GPS 点之间的距离

作者:迹忆客 最近更新:2023/06/19 浏览次数:

计算两个 GPS 点之间的距离是我们可以在 Python 框架内操作的地理和数学练习。 现在让我们看看如何使用 Python 执行此操作。


在 Python 中使用 Haversine 公式计算两个 GPS 点之间的距离

haversine 公式是用 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 使用 Haversine 计算距离

当我们点击运行时,我们应该在终端中看到这个结果。


使用 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 使用 MPU 计算距离


使用 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)

输出:

Python 使用 Geopy 计算距离

如果要以英里显示结果,请将最后一位代码中的千米更改为英里并运行代码。


总结

计算地球上两个特定点之间的距离再简单不过了。 即使 haversine 公式可以偏离约 0.5%,结果仍然接近并且可用于各种项目。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便