Python:计算经纬度距离
python根据两点的经纬度计算其距离
·
Python计算经纬度的方法:
这里介绍两种方式,其最终结果都是以【米】作为单位,虽然结果值稍微有误差,但误差不大。
1. List item
方式1:
维基百科公式(要求的是公式中的d):
Python代码如下(返回结果是单位是:米):
from math import radians,sin,cos,asin,sqrt
def haversine_dis(lon1, lat1, lon2, lat2):
#将十进制转为弧度
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
#haversine公式
d_lon = lon2 - lon1
d_lat = lat2 - lat1
aa = sin(d_lat/2)**2 + cos(lat1)*cos(lat2)*sin(d_lon/2)**2
c = 2 * asin(sqrt(aa))
r = 6371 # 地球半径,千米
return c*r*1000
方式2:
from scipy.spatial.distance import cdist
lonlat1=[[102.8083989,24.8962294]] # 经度、维度
lonlat2=[[102.471938,24.912491]] # 经度、维度
distance=cdist(lonlat1,lonlat2,metric='euclidean')
distance=list(list(list(distance))[0]*100000)[0]
更多推荐
已为社区贡献2条内容
所有评论(0)