知道两点的经纬度怎么求距离的公式
时间: 2023-08-30 15:06:39 浏览: 69
计算地球上两点之间距离的公式是 Haversine 公式,其基本形式如下:
```
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)
c = 2 * atan2( √a, √(1−a) )
d = R * c
```
其中,`lat1` 和 `lon1` 是第一个点的纬度和经度,`lat2` 和 `lon2` 是第二个点的纬度和经度,`R` 是地球平均半径,通常为 6,371 千米。`Δlat` 和 `Δlon` 分别是两点之间的纬度和经度差。`sin`, `cos`, `sqrt`, `atan2` 是常用的三角函数。
以下是一个 Python 函数,用于计算两点之间的距离:
```
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
R = 6371 # 地球平均半径,单位为公里
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
distance = R * c
return distance
```
例如,计算纽约市和旧金山之间的距离:
```
print(haversine(-74.0060, 40.7128, -122.4194, 37.7749))
```
其结果为 `4137.89` 公里,表示两点之间的距离约为 4137.89 公里。