知道两点的经纬度怎么计算两点的距离python实现
时间: 2023-07-23 14:15:35 浏览: 55
下面是使用 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 公式,具体实现可以参考下面的 Python 代码:
```python
import math
EARTH_RADIUS = 6371 # 地球半径,单位为千米
def haversine(lon1, lat1, lon2, lat2):
"""
计算两个经纬度之间的距离,单位为千米
"""
# 将经度和纬度转换为弧度
lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2])
# 计算经纬度的差值
dlon = lon2 - lon1
dlat = lat2 - lat1
# 使用 Haversine 公式计算距离
a = math.sin(dlat/2)**2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon/2)**2
c = 2 * math.asin(math.sqrt(a))
distance = EARTH_RADIUS * c
return distance
```
其中,`lon1` 和 `lat1` 表示第一个点的经度和纬度,`lon2` 和 `lat2` 表示第二个点的经度和纬度,函数返回值为两点之间的距离,单位为千米。
python怎么通过两点的经纬度坐标计算两点间距离
你可以使用math库中的cos、sin、sqrt函数和地球半径来计算两点间距离。以下是示例代码:
import math
def distance(lat1, lon1, lat2, lon2):
R = 6371.0 # 地球半径,单位为公里
lat1 = math.radians(lat1)
lon1 = math.radians(lon1)
lat2 = math.radians(lat2)
lon2 = math.radians(lon2)
dlon = lon2 - lon1
dlat = lat2 - lat1
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))
distance = R * c
return distance
# 例子
lat1 = 31.2304
lon1 = 121.4737
lat2 = 39.9042
lon2 = 116.4074
dist = distance(lat1, lon1, lat2, lon2)
print("两点间距离为:{:.2f}公里".format(dist))
(笑话:为什么大象不会用电脑?因为他不知道怎么按鼠标!)