1、可以使用haversine公式
from math import radians, sin, cos, sqrt, atan2
def distance(lat1, lon1, lat2, lon2):
# 将经纬度转换为弧度
lon1 = radians(lon1)
lon2 = radians(lon2)
lat1 = radians(lat1)
lat2 = radians(lat2)
# 差值的绝对值
dlon = lon2 - lon1
dlat = lat2 - lat1
# Haversine公式
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
# 地球半径(单位:千米)
R = 6371
# 计算距离
distance = R * c
return round(distance, 2)
使用这个函数,你可以传入两个位置的经纬度来计算它们之间的距离,结果保留两位小数。下面是一个示例:
lat1 = 37.7749
lon1 = -122.4194
lat2 = 34.0522
lon2 = -118.2437
print(distance(lat1, lon1, lat2, lon2))
输出结果为
559.00
,单位为千米。
2、可以使用
geopy
库来计算两点之间的距离。
首先,确保你已经安装了
geopy
库,可以使用以下命令进行安装:
pip install geopy
然后,可以使用以下代码来计算两点之间的距离并保留两位小数:
from geopy.distance import geodesic
def calculate_distance(lat1, lon1, lat2, lon2):
coordinates_1 = (lat1, lon1)
coordinates_2 = (lat2, lon2)
distance = geodesic(coordinates_1, coordinates_2).kilometers
return round(distance, 2)
# 示例使用
lat1 = 39.9075
lon1 = 116.3972
lat2 = 31.2304
lon2 = 121.4737
distance = calculate_distance(lat1, lon1, lat2, lon2)
print(f"The distance between the two points is {distance} km.")
在上面的示例中,我们定义了一个
calculate_distance()
函数,该函数接受四个参数:
lat1
和
lon1
表示第一个点的纬度和经度,
lat2
和
lon2
表示第二个点的纬度和经度。函数内部通过
geodesic()
函数计算两点之间的距离,并使用
.kilometers
将距离转换为公里。最后,我们使用
round()
函数将距离保留两位小数,然后打印出结果。