import math def haversine(lon1, lat1, lon2, lat2): """ 计算两个经纬度点之间的距离(单位:公里) 参数: lon1, lat1 : float 第一个点的经度和纬度(度) lon2, lat2 : float 第二个点的经度和纬度(度) 返回: float 两点之间的距离(公里) """ # 将十进制度数转化为弧度 lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2]) # haversine公式 dlon = lon2 - lon1 dlat = lat2 - lat1 a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2 c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a)) # 地球平均半径,单位为公里 radius = 6371 return radius * c # 示例 lon1, lat1 = 139.76, 35.68 # 东京的经纬度 lon2, lat2 = 139.69, 35.69 # 另一个在东京附近的点的经纬度 distance = haversine(lon1, lat1, lon2, lat2) print(f"两点之间的距离是: {distance:.2f} 公里")
标签:lat1,经纬度,lat2,距离,之间,lon1,lon2,math From: https://www.cnblogs.com/air/p/18434045