计算经纬度直线距离 python版
可以使用haversine公式来计算两个经纬度之间的直线距离。以下是一个用Python编写的示例代码:
import math
def haversine(lon1, lat1, lon2, lat2):
# 将经纬度转换为弧度
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))
r = 6371 # 地球平均半径,单位为千米
distance = r * c
return distance
# 示例使用
lon1, lat1 = 116.397128, 39.916527 # 北京市中心经纬度
lon2, lat2 = 121.473701, 31.230416 # 上海市中心经纬度
distance = haversine(lon1, lat1, lon2, lat2)
print(f"两地直线距离:{distance:.2f} km")
这段代码计算了北京市中心和上海市中心之间的直线距离。结果将会输出为两地之间的距离,单位为千米。

原文地址: http://www.cveoy.top/t/topic/i196 著作权归作者所有。请勿转载和采集!