迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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%,结果仍然接近并且可用于各种项目。

上一篇:Python 中的 Verbose

下一篇:没有了

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

本文地址:

相关文章

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 语句的简写表示法,它使用条件、正值和负值作为其组成部分。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便