最近遇到问题需要计算两点之间的直线距离,于是写了下面一个方法,有需要的可以直接拿来用。
1 2 3 4 5 6 7 8 9
| def getdistance(lng1,lat1,lng2,lat2): lng1, lat1, lng2, lat2 = map(radians, [lng1, lat1, lng2, lat2]) dlon=lng2-lng1 dlat=lat2-lat1 a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 dis=2*asin(sqrt(a))*6371*1000 remain_amount = '%.2f' % (dis) remain_amount_format =re.sub(r"(\d)(?=(\d\d\d)+(?!\d))", r"\1,", remain_amount) return remain_amount_format
|
参数介绍:
入参:
lng1:坐标1的经度
lat1:坐标1的纬度
lng2:坐标2的经度
lat2:坐标2的纬度
出参:
remain_amount_format:函数返回的两个坐标之间的直线距离,单位为米