在 Python 中计算两个 GPS 点之间的距离
计算两个 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 中的 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)
输出:
如果要以英里显示结果,请将最后一位代码中的千米更改为英里并运行代码。
总结
计算地球上两个特定点之间的距离再简单不过了。 即使 haversine 公式可以偏离约 0.5%,结果仍然接近并且可用于各种项目。
相关文章
Python 中的 Verbose
发布时间:2023/06/19 浏览次数:70 分类:Python
-
在这个简短的指南中,我们将学习 verbose 以及如何在 Python 中实现它。Python 中的详细信息 详细模式是一种计算功能,也是许多计算机操作系统和编程语言中的通用概念。
Python 中的 Promise 系列
发布时间:2023/06/19 浏览次数:61 分类:Python
-
本篇文章将介绍如何用 Python 编写一系列 promise。 首先,我们将讨论 Python 中的异步编程。接下来,我们将讨论 Python 中的回调函数。
Python 中的队优先级列比较器
发布时间:2023/06/19 浏览次数:192 分类:Python
-
本文将研究使用 Python 开发自定义优先级队列。 除此之外,我们还将学习如何将自定义比较器函数与优先级队列一起使用。Python 中的优先级队列
为 Python 创建别名
发布时间:2023/06/19 浏览次数:194 分类:Python
-
在这种情况下,您决定保留两个版本的 Python。 在本文中,我们将学习如何在拥有两个 Python 版本的情况下创建别名。为 Python 创建别名
从 Python 使用 DLL 文件
发布时间:2023/06/19 浏览次数:60 分类:Python
-
本篇文章将介绍使用 Python 程序中的 DLL 文件。使用 ctypes 库从 Python 使用 DLL 文件 ctypes 是一个在 Python 中提供与 C 兼容的数据类型的外部函数库。
在 Python 中将数据类转换为 JSON
发布时间:2023/06/19 浏览次数:63 分类:Python
-
在本篇文章中,我们将了解 Python 如何支持 JSON 来为每个 JSON 根节点创建数据类。 我们还将学习 dataclass 作为 Python 字典的实现。在 Python 中将数据类转换为 JSON
Python Dict 与 Asdict
发布时间:2023/06/19 浏览次数:177 分类:Python
-
obj._dict_() 背后的概述至少比 dataclasses.asdict(obj) 快十倍。Python 3.7引入了dataclasses库,让我们可以制作专门用于数据存储的结构化类。
在 Qt Creator 中开发 Python 应用程序
发布时间:2023/06/19 浏览次数:60 分类:Python
-
Qt Creator 是一个跨平台的 IDE,可让您为桌面、嵌入式和移动设备创建软件。 它在 Linux、macOS 和 Windows 操作系统上运行。本篇文章将介绍使用 Qt Creator 应用程序开发 Python 应用程序。
Python if-else 速记
发布时间:2023/06/19 浏览次数:72 分类:Python
-
本文解释了 Python 中 if-else 语句的简写表示法,它使用条件、正值和负值作为其组成部分。