两个经纬度之间的直线距离计算
时间: 2023-07-23 13:25:51 浏览: 759
经纬度估算距离计算公式
4星 · 用户满意度95%
计算两个经纬度之间的直线距离,可以使用 Haversine 公式,公式如下:
d = 2 * r * arcsin(sqrt(sin²((lat₂-lat₁)/2) + cos(lat₁) * cos(lat₂) * sin²((lon₂-lon₁)/2)))
其中,d 表示两个经纬度之间的直线距离,r 表示地球半径,lat₁、lon₁ 和 lat₂、lon₂ 分别表示两个经纬度的纬度和经度。
在使用该公式计算距离时,需要将经纬度转换为弧度制。例如,如果使用度数表示经纬度,则需要将其转换为弧度制,公式如下:
radian = degree * π / 180
其中,degree 表示度数,π 表示圆周率。
下面是用 Python 实现 Haversine 公式计算两个经纬度之间的直线距离的代码示例:
```python
from math import sin, cos, sqrt, atan2, radians
# 地球半径
R = 6371.0
# 两个经纬度的度数表示
lat1 = 52.2296756
lon1 = 21.0122287
lat2 = 52.406374
lon2 = 16.9251681
# 将经纬度转换为弧度制
lat1_r = radians(lat1)
lon1_r = radians(lon1)
lat2_r = radians(lat2)
lon2_r = radians(lon2)
# 计算经纬度之间的距离
d_lon = lon2_r - lon1_r
d_lat = lat2_r - lat1_r
a = sin(d_lat / 2)**2 + cos(lat1_r) * cos(lat2_r) * sin(d_lon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c
print("两个经纬度之间的距离:", distance, "km")
```
阅读全文