python输入位置的坐标(即经纬度),计算两点的距离结果保留两位

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()函数,该函数接受四个参数:lat1lon1表示第一个点的纬度和经度,lat2lon2表示第二个点的纬度和经度。函数内部通过geodesic()函数计算两点之间的距离,并使用.kilometers将距离转换为公里。最后,我们使用round()函数将距离保留两位小数,然后打印出结果。

你可能感兴趣的:(python,python,开发语言)