经纬度是地理坐标系统中的基本单位,用于确定地球表面上某一点的位置。经度表示东西方向的位置,纬度表示南北方向的位置。计算两个经纬度点之间的距离通常使用球面三角法,如Haversine公式。
原因:
解决方法:
import math
def haversine(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为公里
dLat = math.radians(lat2 - lat1)
dLon = math.radians(lon2 - lon1)
a = math.sin(dLat / 2) * math.sin(dLat / 2) + math.cos(math.radians(lat1)) \
* math.cos(math.radians(lat2)) * math.sin(dLon / 2) * math.sin(dLon / 2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance
# 示例使用
lat1, lon1 = 52.2296756, 21.0122287
lat2, lon2 = 52.406374, 16.9251681
print(f"Distance: {haversine(lat1, lon1, lat2, lon2)} km")
通过以上方法和示例代码,可以有效解决经纬度计算距离错误的问题。
领取专属 10元无门槛券
手把手带您无忧上云