经纬度计算距离公式
时间: 2023-06-28 13:06:55 浏览: 42
经纬度计算距离的公式是 Haversine 公式,公式如下:
```
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlon/2)
c = 2 * atan2( √a, √(1−a) )
d = R ⋅ c
```
其中:
- `lat1`、`lat2` 分别为第一点和第二点的纬度,单位为弧度。
- `lon1`、`lon2` 分别为第一点和第二点的经度,单位为弧度。
- `Δlat`、`Δlon` 分别为两点纬度和经度的差值,单位为弧度。
- `R` 为地球平均半径,约为 6,371 千米。
- `d` 为两点间的距离。
示例代码:
```python
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球平均半径,单位为千米
lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2])
dlat = lat2 - lat1
dlon = lon2 - lon1
a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = R * c
return d
```
其中,`lat1`、`lon1`、`lat2`、`lon2` 分别为两点的纬度和经度,单位为度。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)