可以使用geopy库来计算两点之间的距离。你可以按照以下步骤安装这个库:
在命令行中运行以下命令:
pip install geopy
安装完成后,可以使用下面的代码来计算两点之间的距离并保留两位小数:
from geopy.distance import geodesic
# 输入两点的经纬度
lat1 = float(input("请输入第一个位置的纬度: "))
lon1 = float(input("请输入第一个位置的经度: "))
lat2 = float(input("请输入第二个位置的纬度: "))
lon2 = float(input("请输入第二个位置的经度: "))
# 使用geodesic函数计算两点之间的距离
distance = round(geodesic((lat1, lon1), (lat2, lon2)).km, 2)
# 输出结果
print("两点之间的距离为:", distance, "公里")
这个代码会先要求输入两个点的纬度和经度,然后使用geodesic函数计算两点之间的距离,并保留两位小数。最后输出结果。
在 Python 中,你可以使用 math
模块中的 radians
函数将经纬度从度数转换为弧度,然后使用 Haversine 公式来计算两点之间的地理距离。Haversine 公式考虑了地球的曲率,因此非常适合用于计算经纬度之间的距离。
以下是一个示例代码,它接受两个点的经纬度作为输入,并计算它们之间的距离,结果保留两位小数:
python复制代码
import math | |
def haversine(lon1, lat1, lon2, lat2): | |
# 将经纬度从度数转换为弧度 | |
lon1, lat1, lon2, lat2 = map(math.radians, [lon1, lat1, lon2, lat2]) | |
# 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.asin(math.sqrt(a)) | |
# 地球半径(以千米为单位) | |
R = 6371 | |
# 计算距离 | |
distance = c * R | |
return round(distance, 2) # 保留两位小数 | |
# 示例输入 | |
lon1, lat1 = input("请输入第一个点的经度(longitude)和纬度(latitude),用空格分隔: ").split() | |
lon2, lat2 = input("请输入第二个点的经度(longitude)和纬度(latitude),用空格分隔: ").split() | |
# 将输入转换为浮点数 | |
lon1, lat1, lon2, lat2 = float(lon1), float(lat1), float(lon2), float(lat2) | |
# 计算距离 | |
distance = haversine(lon1, lat1, lon2, lat2) | |
print(f"两点之间的距离是: {distance} 千米") |
在这个代码中,haversine
函数接受四个参数:两个点的经度和纬度。它首先将这些值从度数转换为弧度,然后使用 Haversine 公式计算两点之间的球面距离。最后,使用 round
函数将结果保留到小数点后两位。
注意,这个计算假设地球是一个完美的球体,并且忽略了地球表面的地形变化。对于大多数应用场景来说,这种假设是足够的。如果你需要更高的精度,可能需要考虑使用更复杂的地球模型或专门的地理空间库。
标签:lat1,经纬度,lat2,python,float,坐标,lon1,lon2,math From: https://blog.csdn.net/2301_81121233/article/details/143802903