怎么计算不同经纬度坐标之间的距离
时间: 2023-11-09 15:07:03 浏览: 43
计算不同经纬度坐标之间的距离可以使用 Haversine 公式。该公式是根据地球球面上两点的经纬度计算它们之间的大圆距离。其公式如下:
```
a = sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlong/2)
c = 2 * atan2( √a, √(1−a) )
d = R * c
```
其中,`lat1` 和 `long1` 是第一个坐标的纬度和经度,`lat2` 和 `long2` 是第二个坐标的纬度和经度,`Δlat` 和 `Δlong` 分别是两点之间的纬度差和经度差,`R` 是地球半径(取平均值约为 6371 千米),`sin` 和 `cos` 函数使用弧度制表示,`atan2` 函数返回两个参数的反正切值。
以下是一个 Python 示例代码,用于计算两个经纬度坐标之间的距离:
```python
import math
def distance(lat1, long1, lat2, long2):
R = 6371.0 # 地球半径,单位千米
lat1_rad = math.radians(lat1)
long1_rad = math.radians(long1)
lat2_rad = math.radians(lat2)
long2_rad = math.radians(long2)
delta_lat = lat2_rad - lat1_rad
delta_long = long2_rad - long1_rad
a = math.sin(delta_lat / 2) ** 2 + math.cos(lat1_rad) * math.cos(lat2_rad) * math.sin(delta_long / 2) ** 2
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
d = R * c
return d
```
其中 `lat1`,`long1`,`lat2`,`long2` 分别表示两个点的纬度和经度。
阅读全文