用给定城市的经纬度,利用经纬度计算城市之间的距离。给定城市的经纬度,利用经纬度计算城市之间的距离。
时间: 2023-11-03 17:04:09 浏览: 122
可以使用Haversine公式来计算任意两个点之间的距离,其中需要用到两个点的经纬度。Haversine公式如下:
$distance = 2r \arcsin\left(\sqrt{\sin^2\left(\dfrac{lat_{2}-lat_{1}}{2}\right) + \cos(lat_{1}) \cos(lat_{2}) \sin^2\left(\dfrac{lng_{2}-lng_{1}}{2}\right)}\right)$
其中,$r$ 为地球半径, $lat_{1}$, $lng_{1}$ 是第一个点的经纬度, $lat_{2}$, $lng_{2}$ 是第二个点的经纬度。
以下是 Python 代码实现:
```python
import math
def haversine(lat1, lng1, lat2, lng2):
r = 6371 # 地球半径,单位为公里
lat1, lng1, lat2, lng2 = map(math.radians, [lat1, lng1, lat2, lng2])
dlat, dlng = lat2 - lat1, lng2 - lng1
a = math.sin(dlat / 2) ** 2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlng / 2) ** 2
distance = 2 * r * math.asin(math.sqrt(a))
return distance
```
使用示例:
```python
# 北京经纬度
lat1, lng1 = 39.9042, 116.4074
# 上海经纬度
lat2, lng2 = 31.2304, 121.4737
distance = haversine(lat1, lng1, lat2, lng2)
print(f"北京和上海之间的距离为{distance:.2f}公里")
```
输出结果:
```
北京和上海之间的距离为1066.52公里
```
阅读全文