给定一个点的经纬度和一个范围长度,计算以这个点为中心的正方形边界,初步实现代码: https://github.com/SunnyCat2013/haversine-distance/blob/master/haversine.py
球面上任意两点的中心角求解公式:
hav(dr)=hav(ϕ2−ϕ1)+cos(ϕ1)cos(ϕ2)hav(λ2−λ1) h a v ( d r ) = h a v ( ϕ 2 − ϕ 1 ) + cos ( ϕ 1 ) cos ( ϕ 2 ) h a v ( λ 2 − λ 1 )
问题讨论
现在想象一下这种情况:
1. 给定地球表面一个点
p p
[lontitude,latitude] [ l o n t i t u d e , l a t i t u d e ]
2. 一个平面
P P
经过该点和地球球心
3. 经过点
p p
和平面
P P
与地球球面相切的直线
Lp L p
4. 经过点
p p
与 纬度
latitude l a t i t u d e
所在圆相切的直线
Llat L l a t
5.
Lp L p
与
Llat L l a t
夹角(锐角)为
theta t h e t a
6.
P P
与地球球面所切圆为
C C
7. 从
p p
点出发,沿
C C
走
D D
之后,到达点
q q
求
q q
的经纬度。
图例
问题图
- 中心角
AOB 被称作中心角