python求球面距离
时间: 2023-07-17 15:55:39 浏览: 101
要计算球面距离,可以使用球面三角形的Haversine公式。Haversine公式使用经纬度来计算两点之间的球面距离。
以下是使用Python计算球面距离的代码示例:
```python
import math
def haversine(lat1, lon1, lat2, lon2):
# 将经纬度转换为弧度
lat1 = math.radians(lat1)
lon1 = math.radians(lon1)
lat2 = math.radians(lat2)
lon2 = math.radians(lon2)
# 应用Haversine公式计算球面距离
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))
r = 6371 # 地球半径,单位为千米
distance = r * c
return distance
# 示例:计算两个点的球面距离
lat1 = 40.7128 # 纬度1
lon1 = -74.0060 # 经度1
lat2 = 34.0522 # 纬度2
lon2 = -118.2437 # 经度2
distance = haversine(lat1, lon1, lat2, lon2)
print("球面距离:", distance, "千米")
```
在上面的代码中,`haversine`函数计算了两个点之间的球面距离。传入的经纬度参数需要以度为单位,然后将其转换为弧度。然后,根据Haversine公式计算球面距离,并使用地球的平均半径乘以结果,得到最终的球面距离(单位为千米)。
请根据实际情况将`lat1`、`lon1`、`lat2`和`lon2`的值替换为你想要计算球面距离的两个点的经纬度。
阅读全文