Python 计算经纬度直线距离:Haversine 公式实现
可以使用 Haversine 公式来计算经纬度之间的直线距离。下面是一个使用 Python 实现的示例代码:
import math
def haversine(lon1, lat1, lon2, lat2):
R = 6371 # 地球平均半径,单位为千米
lon1_rad = math.radians(lon1)
lat1_rad = math.radians(lat1)
lon2_rad = math.radians(lon2)
lat2_rad = math.radians(lat2)
delta_lon = lon2_rad - lon1_rad
delta_lat = lat2_rad - lat1_rad
a = math.sin(delta_lat / 2) ** 2 + math.cos(lat1_rad) * math.cos(lat2_rad) * math.sin(delta_lon / 2) ** 2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance
#示例使用:
lon1, lat1 = 116.405285, 39.904989 # 北京的经纬度
lon2, lat2 = 121.473701, 31.230416 # 上海的经纬度
distance = haversine(lon1, lat1, lon2, lat2)
print(f'直线距离:{distance}千米')
上述代码中,'lon1'和'lat1'分别代表第一个点的经度和纬度,'lon2'和'lat2'分别代表第二个点的经度和纬度。函数'haversine'根据 Haversine 公式计算出两个点之间的直线距离,并将其返回。最后,我们使用示例经纬度计算出了北京和上海之间的直线距离,并将其打印输出。
原文地址: https://www.cveoy.top/t/topic/ogHY 著作权归作者所有。请勿转载和采集!