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

要计算两组经纬度坐标之间的距离,我们可以使用大地测量学中的公式,例如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, "米")

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

相关推荐
立志成为大牛的小牛1 小时前
数据结构——三十七、关键路径(王道408)
数据结构·笔记·程序人生·考研·算法
机器之心1 小时前
字节Seed团队发布循环语言模型Ouro,在预训练阶段直接「思考」,Bengio组参与
人工智能·openai
ytttr8732 小时前
基于MATLAB的Relief算法特征权重选择实现
算法
新智元2 小时前
AI 教父 Hinton 末日警告!你必须失业,AI 万亿泡沫豪赌才能「赢」
人工智能·openai
新智元2 小时前
CUDA 再见了!寒武纪亮出软件全家桶
人工智能·openai
oe10192 小时前
好文与笔记分享 A Survey of Context Engineering for Large Language Models(下)
人工智能·笔记·语言模型·agent
有为少年2 小时前
告别乱码:OpenCV 中文路径(Unicode)读写的解决方案
人工智能·opencv·计算机视觉
渔舟渡简2 小时前
机器学习-回归分析之一元线性回归
机器学习·线性回归
B站计算机毕业设计之家2 小时前
Python招聘数据分析可视化系统 Boss直聘数据 selenium爬虫 Flask框架 数据清洗(附源码)✅
爬虫·python·selenium·机器学习·数据分析·flask
FreeCode3 小时前
LangChain1.0智能体开发:模型使用
人工智能·langchain·agent