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} 公里")
09-22
219