Python求经纬度直线距离
- 方法:两个经纬度点之间的直线距离
def get_distance(longitude_1, latitude_1, longitude_2, latitude_2): """" 计算两个经纬度点之间的直线距离 :param longitude_1: 第1个点经度 :param latitude_1: 第1个点维度 :param longitude_2: 第2个点经度 :param latitude_2: 第2个点维度 :return: 距离 km """ # 经纬度转换成弧度 # lng1,lat1,lng2,lat2 = (120.12802999999997,30.28708,115.86572000000001,28.7427) lng1, lat1, lng2, lat2 = map(radians, [float(longitude_1) / 1000000, float(latitude_1) / 1000000, float(longitude_2) / 1000000, float(latitude_2) / 1000000]) d_lon = lng2 - lng1 d_lat = lat2 - lat1 a = sin(d_lat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(d_lon / 2) ** 2 distance = 2 * asin(sqrt(a)) * 6371 * 1000 # 地球平均半径,6371km distance = round(distance / 1000, 3) return distance