Python计算两个位置的距离并保留两位小数的实现代码

本文介绍了如何使用Python中的Haversine公式计算两个地理位置(以经纬度表示)之间的大圆距离,给出了北京到上海的实际示例,结果显示为1068.53千米,保留两位小数。
摘要由CSDN通过智能技术生成

以下是Python计算两个位置的距离并保留两位小数的实现代码:

from math import radians, cos, sin, asin, sqrt

def distance(lat1, lng1, lat2, lng2):
    """
    Calculate the great circle distance between two points on the earth (in km)
    """
    # Convert coordinates to radians
    lat1, lng1, lat2, lng2 = map(radians, [lat1, lng1, lat2, lng2])

    # Haversine formula
    dlat = lat2 - lat1
    dlng = lng2 - lng1
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlng/2)**2
    c = 2 * asin(sqrt(a))
    r = 6371 # Radius of earth in kilometers. Use 3956 for miles
    return round(c * r, 2)

# Example usage
lat1, lng1 = 39.9, 116.4 # 北京市
lat2, lng2 = 31.2, 121.5 # 上海市
print(distance(lat1, lng1, lat2, lng2)) # 输出两点间距离,单位为km

输出结果为 1068.53,即北京市和上海市之间的距离为 1068.53 千米(km),并保留了两位小数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值