Python求经纬度直线距离

本文介绍了使用Python计算两个经纬度点之间直线距离的方法,包括单个距离计算和基于DataFrame的连续距离计算。通过将经纬度转换为弧度,应用三角函数计算距离,并提供了相应的函数实现。
摘要由CSDN通过智能技术生成

Python求经纬度直线距离

  1. 方法:两个经纬度点之间的直线距离
    def get_distance(longitude_1, latitude_1, longitude_2, latitude_2):
        """"
    
        计算两个经纬度点之间的直线距离
        :param longitude_1: 第1个点经度
        :param latitude_1: 第1个点维度
        :param longitude_2: 第2个点经度
        :param latitude_2: 第2个点维度
        :return: 距离 km
        """
        # 经纬度转换成弧度
        # lng1,lat1,lng2,lat2 = (120.12802999999997,30.28708,115.86572000000001,28.7427) 
        lng1, lat1, lng2, lat2 = map(radians, [float(longitude_1) / 1000000, float(latitude_1) / 1000000, float(longitude_2) / 1000000, float(latitude_2) / 1000000])
        d_lon = lng2 - lng1
        d_lat = lat2 - lat1
        a = sin(d_lat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(d_lon / 2) ** 2
        distance = 2 * asin(sqrt(a)) * 6371 * 1000  # 地球平均半径,6371km
        distance = round(distance / 1000, 3)
    
        return distance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值