给定经纬度计算距离
大圓距離:給定球面上兩個點A,B,求A、B之間的最短球面距離。
這個距離等于A、B、O三點確定的大圓的AB弧的長度,這段弧就是最短距離。
Haversine是一個函數:haversin(x)=sin(x)/2=1-cos(x)
半余弦公式是計算大圓距離的一種方法。
問題變形:
- 給定兩點經緯度,計算兩點方位角(360度方位角,北面為0度,東面為90度)
- 給定一點經緯度和另一點相對于該點的方位角,求另一點的經緯度
其它問題:
- 為什么大圓距離是最短距離?
- 給定一個橢圓,它的平均半徑如何計算(橢圓上全部點到橢圓中心的平均距離)
- 給定一個橢球,它的平均半徑如何計算
- 極坐標系下的面積公式和曲線長度公式
在球面上,如果想要從一點經過大圓距離到達另一點,整個航行過程中的行駛方向是會發生變化的。比如:北京和天津位于同一緯度,但是北京到天津的最短距離不是一直向東走最近,而是大圓距離最近,而大圓軌跡上每個點的行駛方向是大圓切線的方向。也就是說,從北京到天津的最短距離行駛過程中行駛方向是不斷變化的。
參考資料
維基百科:大圓距離
維基百科:半余弦公式
http://blog.sina.com.cn/s/blog_658a93570101hynw.html
https://www.cnblogs.com/softfair/p/distance_of_two_latitude_and_longitude_points.html
總結
- 上一篇: html5知识点:CSS3新增选择器
- 下一篇: 解读阿里云oss-android/ios