1、計算A,B兩個經緯度之間的距離
公式:
其中:
lon1:為A點的經度
lat1 :為A點的緯度
lon2 :為B點的經度
lat2 :為B點的緯度
dlat=lat1-lat2
dlon=lon1-lon2
2、計算A,B兩個經緯度之間的距離的python代碼
import math
def getDistance(lon1, lat1, lon2, lat2):
'''
:param lon1:A點的經度
:param lat1: A點的緯度
:param lon2: B點經度
:param lat2: B點的維度
:return: 返回A,B兩點之間的距離
'''
lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = math.sin(dlat / 2) ** 2
+ math.cos(lat1) * math.cos(lat2) * math.sin(dlon / 2) ** 2
c = 2 *math.asin(math.sqrt(a))
r = 6378.137 # 地球平均半徑,單位為公裡
return r*c*1000
if __name__=='__main__':
print(getDistance(118.1870877743,24.4879491941,118.1859666109,24.4854740564))
298.0238333322203
經過本人估計,這兩個地點的直線距離確實大概只有300米。
Long-press QR code to transfer me a reward
As required by Apple's new policy, the Reward feature has been disabled on Weixin for iOS. You can still reward an Official Account by transferring money via QR code.