python:已知两个点的经纬度求两点距离

from math import radians, cos, sin, asin, sqrt


# 已知两点经纬度计算其之间的距离并返回(单位m)
# lon1:第一个点的经度
# lat1:第一个点的纬度
# lon2:第二个点的经度
# lat2:第二个点的纬度
def cal_two_points_distance_by_lon_lat(lon1, lat1, lon2, lat2):
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
    d_lon = lon2 - lon1  # 计算经度差
    d_lat = lat2 - lat1  # 计算纬度差
    a = sin(d_lat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(d_lon / 2) ** 2
    c = 2 * asin(sqrt(a))
    r = 6371  # 地球平均半径,单位为公里
    d = c * r * 1000  # 乘以1000,km到m的转换
    return d

你可能感兴趣的:(python:遥感工具,python)