EARTH_REDIUS = 6378.137 def rad(d): return d * pi / 180.0 def getDistance(lat1, lng1, lat2, lng2): radLat1 = rad(lat1) radLat2 = rad(lat2) a = radLat1 - radLat2 b = rad(lng1) - rad(lng2) s = 2 * math.asin(math.sqrt(math.pow(sin(a/2), 2) + cos(radLat1) * cos(radLat2) * math.pow(sin(b/2), 2))) s = s * EARTH_REDIUS return s
將兩個點的經緯度傳入getDistance函數即可獲取兩點之間的距離,計算結果單位為千米(km)
公式是
一、公式
對上面的公式解釋如下:
1.Lat1 Lung1 表示A點經緯度,Lat2 Lung2 表示B點經緯度;
2.a=Lat1 – Lat2 為兩點緯度之差 b=Lung1 -Lung2 為兩點經度之差;
3.6378.137為地球半徑,單位為千米;
計算出來的結果單位為千米。