给定两点经纬度坐标计算距离

最近在做一个实时的运筹优化项目,需要针对给定的两点经纬度,计算其距离。

这里我参考了维基百科的Haversine formula公式:

其中:

  • φ1, φ2: latitude of point 1 and latitude of point 2,
  • λ1, λ2: longitude of point 1 and longitude of point 2.

因此这里我根据以上公式,写出了python的计算距离模块如下:

from math import *

def get_distance(origin, destination):
    # 根据经纬度计算两个点距离
    lon1 = radians(float(destination[0]))
    lon2 = radians(float(origin[0]))
    lat1 = radians(float(destination[1]))
    lat2 = radians(float(origin[1]))
    dlon = lon1 - lon2
    dlat = lat1 - lat2
    a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2
    dist = 2 * asin(sqrt(a))*6371*1000
    return dist

另外,我还把很多工作中用到的基本模块传到了github:https://github.com/kunkun1230/Basic-founctions

欢迎交流star!

你可能感兴趣的:(functions,Python)