Calculate distance between 2 GPS coordinates

前端 未结 29 4057
青春惊慌失措
青春惊慌失措 2020-11-21 23:34

How do I calculate distance between two GPS coordinates (using latitude and longitude)?

29条回答
  •  萌比男神i
    2020-11-22 00:08

    Here's a Haversine function in Python that I use:

    from math import pi,sqrt,sin,cos,atan2
    
    def haversine(pos1, pos2):
        lat1 = float(pos1['lat'])
        long1 = float(pos1['long'])
        lat2 = float(pos2['lat'])
        long2 = float(pos2['long'])
    
        degree_to_rad = float(pi / 180.0)
    
        d_lat = (lat2 - lat1) * degree_to_rad
        d_long = (long2 - long1) * degree_to_rad
    
        a = pow(sin(d_lat / 2), 2) + cos(lat1 * degree_to_rad) * cos(lat2 * degree_to_rad) * pow(sin(d_long / 2), 2)
        c = 2 * atan2(sqrt(a), sqrt(1 - a))
        km = 6367 * c
        mi = 3956 * c
    
        return {"km":km, "miles":mi}
    

提交回复
热议问题