根据经纬度计算地球上两点之间的距离——Haversine公式介绍及计算步骤

目录

摘要

1.半正矢公式(Haversine Formula)介绍

2.半正矢公式应用

3.半正矢公式计算

3.1 主要思路

3.2 计算步骤

3.2.1 平面向量计算方法

3.2.2 空间向量计算方法


摘要

写本文的出发点是需要在Qlik中根据经纬度计算地球上两点间的距离。我在社区上搜到了相关公式的分享,这个公式叫做“半正矢公式”。对于“半正矢”知之甚少的我,决定从头到尾将公式计算一遍,并通过这篇文章记录所有的步骤,希望它能对需要的人有所帮助。这也算是温习高中所学的三角函数了。

本文的部分图片源自其他网站,剩下的图都是通过GeoGebra制作的。这个工具非常方便,推荐大家使用。

(GeoGebra - the world’s favorite, free math tools used by over 100 million students and teachers)

1.半正矢公式(Haversine Formula)介绍

公式: Haversin(\theta )=sin^2{\left (\theta/2 \right ) }

(i)

如图 (i), OAC是一个圆,O是其圆心,A和C是圆上的点,r 是⊙OAC的半径。

设:r = 1, 那么 OA = OC = r =1;

过点A做一条垂线,交线段OC于点B,∠OBA=90°。

设:∠AOB=θ;

因此,AB = sinθ, OB = cosθ, BC = 反正弦 = 1 – cosθ.

所谓的半正矢就是“一半的反正弦”(Haversine = “half reversed sin”),所以:

 

最后得出: Haversin(\theta )=sin^2{\left (\theta/2 \right ) }

2.半正矢公式应用

回到应用场景,已知地球上的两个点A和B,现在我们想知道这两点之间的最短距离。地球可以近似看作为一个球体,那么AB间的最短距离就是过AB两点的大圆圆弧,这个大圆是地球的内切圆,半径和圆心点都于地球相同。

(ii)

设:A点坐标 = (Ø1, λ1); B点坐标 = (Ø2, λ2);

Ø = 纬度, λ = 经度

d = A 和 B 的最短距离

R = 地球半径 = 6371 km

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值