计算经纬度坐标之间的真实距离

要计算两组经纬度坐标之间的距离,我们可以使用大地测量学中的公式,例如Haversine公式或者更精确的Vincenty公式。这里我将使用Haversine公式,因为它适用于小范围内的距离计算,且计算相对简单。

Haversine公式的基本形式如下:

d = 2 * R * arcsin(sqrt(haversin(Δlat) + cos(lat1) * cos(lat2) * haversin(Δlon)))

其中,d是两点之间的距离,R是地球的半径(约6371千米或6371000米),Δlat和Δlon分别是纬度和经度的差值,lat1和lat2是两点的纬度。

首先,我们需要将经纬度转换为弧度单位:

lat1_rad = lat1 * π / 180

lon1_rad = lon1 * π / 180

lat2_rad = lat2 * π / 180

lon2_rad = lon2 * π / 180

然后,我们计算纬度和经度的差值:

Δlat_rad = lat2_rad - lat1_rad

Δlon_rad = lon2_rad - lon1_rad

接着,我们计算Haversine公式中的各项:

haversin_Δlat = sin(Δlat_rad / 2)^2

haversin_Δlon = sin(Δlon_rad / 2)^2

然后代入公式计算距离:

d = 2 * R * arcsin(sqrt(haversin_Δlat + cos(lat1_rad) * cos(lat2_rad) * haversin_Δlon))

最后,我们将距离从千米转换为米:

d_m = d * 1000

现在,我们使用Python代码来计算这两点之间的距离:

python 复制代码
import math

# 定义常数
R = 6371000  # 地球半径,单位:米
π = math.pi

# 输入经纬度坐标
lat1, lon1 = 36.25377625, 120.84230280
lat2, lon2 = 36.25380667, 120.84196020

# 将经纬度转换为弧度
lat1_rad = lat1 * π / 180
lon1_rad = lon1 * π / 180
lat2_rad = lat2 * π / 180
lon2_rad = lon2 * π / 180

# 计算纬度和经度的差值
Δlat_rad = lat2_rad - lat1_rad
Δlon_rad = lon2_rad - lon1_rad

# 计算Haversine公式中的各项
haversin_Δlat = math.sin(Δlat_rad / 2)**2
haversin_Δlon = math.sin(Δlon_rad / 2)**2

# 计算距离
d = 2 * R * math.asin(math.sqrt(haversin_Δlat + math.cos(lat1_rad) * math.cos(lat2_rad) * haversin_Δlon))

# 将距离从千米转换为米
d_m = d

print("两点之间的距离为:", d_m, "米")

运行上述代码,我们可以得到两组经纬度坐标之间的距离。请注意,由于我是一个文本模型,我无法实际运行代码,但你可以复制上述代码到你的环境中运行以获得结果。

相关推荐
XWalnut13 分钟前
LeetCode刷题 day4
算法·leetcode·职场和发展
eastyuxiao18 分钟前
如何在不同的机器上运行多个OpenClaw实例?
人工智能·git·架构·github·php
蒸汽求职26 分钟前
机器人软件工程(Robotics SDE):特斯拉Optimus落地引发的嵌入式C++与感知算法人才抢夺战
大数据·c++·算法·职场和发展·机器人·求职招聘·ai-native
诸葛务农27 分钟前
AGI 主要技术路径及核心技术:归一融合及未来之路5
大数据·人工智能
光影少年27 分钟前
AI Agent智能体开发
人工智能·aigc·ai编程
ai生成式引擎优化技术41 分钟前
TSPR-WEB-LLM-HIC (TWLH四元结构)AI生成式引擎(GEO)技术白皮书
人工智能
帐篷Li42 分钟前
9Router:开源AI路由网关的架构设计与技术实现深度解析
人工智能
AI成长日志1 小时前
【笔面试算法学习专栏】双指针专题·简单难度两题精讲:167.两数之和II、283.移动零
学习·算法·面试
新缸中之脑1 小时前
在GCP上运行autoresearch
人工智能
Fleshy数模1 小时前
OpenCV 实时人脸检测实战:从视频文件到人脸框标注
人工智能·opencv·计算机视觉