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]
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐