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

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

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

相关推荐
昨日之日20062 小时前
Moonshine - 新型开源ASR(语音识别)模型,体积小,速度快,比OpenAI Whisper快五倍 本地一键整合包下载
人工智能·whisper·语音识别
浮生如梦_2 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
深度学习lover2 小时前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
热爱跑步的恒川3 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
励志成为嵌入式工程师4 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉4 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer4 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
wheeldown5 小时前
【数据结构】选择排序
数据结构·算法·排序算法
阡之尘埃5 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
观音山保我别报错6 小时前
C语言扫雷小游戏
c语言·开发语言·算法