用 python 编写一个经纬度距离计算器
时间: 2024-09-30 12:04:18 浏览: 47
在 Python 中计算两点之间的经纬度距离,通常可以使用 Haversine 公式,它考虑了地球是个球体的事实。以下是一个简单的示例,展示了如何编写这样的函数:
```python
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 = (39.9042, 116.4074) # 北京坐标
lat2, lon2 = (31.2304, 121.4737) # 上海坐标
distance = haversine(lat1, lon1, lat2, lon2)
print(f"北京到上海的距离大约为: {distance:.2f}公里")
```
在这个函数中,输入的是两个点的纬度和经度,返回值是它们之间的直线距离。注意实际应用中可能需要考虑地球曲率的影响以及大圆航线等问题。
阅读全文