计算地球上两个点之间的大圆距离
时间: 2024-02-08 17:37:35 浏览: 151
Android-依据两点间经纬度坐标,计算两点间距离
5星 · 资源好评率100%
计算地球上两个点之间的大圆距离可以使用 Haversine 公式,该公式基于两点间的经纬度坐标。公式如下:
d = 2r arcsin(sqrt(sin²((lat₂-lat₁)/2) + cos(lat₁)cos(lat₂)sin²((lon₂-lon₁)/2)))
其中,d 表示两点之间的大圆距离,r 表示地球半径,lat₁、lon₁ 和 lat₂、lon₂ 分别为两点的纬度和经度。所有角度值都应该使用弧度表示。
以下是一个 Python 代码示例,用于计算地球上两个点之间的大圆距离:
```python
import math
def haversine_distance(lat1, lon1, lat2, lon2):
r = 6371 # 地球半径,单位为公里
phi1 = math.radians(lat1)
phi2 = math.radians(lat2)
delta_phi = math.radians(lat2 - lat1)
delta_lambda = math.radians(lon2 - lon1)
a = math.sin(delta_phi / 2) ** 2 + math.cos(phi1) * math.cos(phi2) * math.sin(delta_lambda / 2) ** 2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
d = r * c
return d
```
使用该函数,你可以计算两个点之间的大圆距离。例如,如果你想计算纽约市和洛杉矶之间的距离,可以使用如下代码:
```python
ny_lat, ny_lon = 40.7128, -74.0060
la_lat, la_lon = 34.0522, -118.2437
distance = haversine_distance(ny_lat, ny_lon, la_lat, la_lon)
print(distance) # 输出结果为 3932.39 公里
```
请注意,该公式假定地球是一个完美的球体,因此在极端情况下可能会产生一些误差。
阅读全文