知道点的经纬度怎么计算点之间的距离python代码
时间: 2024-05-15 22:19:25 浏览: 109
可以使用geopy库来计算点之间的距离。以下是示例代码:
```python
from geopy.distance import geodesic
# 点1的经纬度
point1 = (40.748817, -73.985428)
# 点2的经纬度
point2 = (37.774929, -122.419416)
# 计算两点之间的距离
distance = geodesic(point1, point2).km
print("两点之间的距离为:", distance, "公里")
```
输出结果:
```
两点之间的距离为: 4135.322815899038 公里
```
相关问题
知道两点的经纬度怎么计算两点的距离python实现
下面是使用 Python 实现 Haversine 公式计算地球表面两点之间距离的示例代码:
```python
import math
def haversine(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位为公里
dLat = math.radians(lat2 - lat1)
dLon = math.radians(lon2 - lon1)
lat1 = math.radians(lat1)
lat2 = math.radians(lat2)
a = math.sin(dLat / 2) * math.sin(dLat / 2) + \
math.sin(dLon / 2) * math.sin(dLon / 2) * math.cos(lat1) * math.cos(lat2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))
distance = R * c
return distance
```
其中,`lat1` 和 `lon1` 是第一个点的纬度和经度,`lat2` 和 `lon2` 是第二个点的纬度和经度。函数返回的是两点之间的距离,单位为公里。
用给定城市的经纬度,利用经纬度计算城市之间的距离。给定城市的经纬度,利用经纬度计算城市之间的距离。
可以使用Haversine公式来计算任意两个点之间的距离,其中需要用到两个点的经纬度。Haversine公式如下:
$distance = 2r \arcsin\left(\sqrt{\sin^2\left(\dfrac{lat_{2}-lat_{1}}{2}\right) + \cos(lat_{1}) \cos(lat_{2}) \sin^2\left(\dfrac{lng_{2}-lng_{1}}{2}\right)}\right)$
其中,$r$ 为地球半径, $lat_{1}$, $lng_{1}$ 是第一个点的经纬度, $lat_{2}$, $lng_{2}$ 是第二个点的经纬度。
以下是 Python 代码实现:
```python
import math
def haversine(lat1, lng1, lat2, lng2):
r = 6371 # 地球半径,单位为公里
lat1, lng1, lat2, lng2 = map(math.radians, [lat1, lng1, lat2, lng2])
dlat, dlng = lat2 - lat1, lng2 - lng1
a = math.sin(dlat / 2) ** 2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlng / 2) ** 2
distance = 2 * r * math.asin(math.sqrt(a))
return distance
```
使用示例:
```python
# 北京经纬度
lat1, lng1 = 39.9042, 116.4074
# 上海经纬度
lat2, lng2 = 31.2304, 121.4737
distance = haversine(lat1, lng1, lat2, lng2)
print(f"北京和上海之间的距离为{distance:.2f}公里")
```
输出结果:
```
北京和上海之间的距离为1066.52公里
```
阅读全文