最近在做一个实时的运筹优化项目,需要针对给定的两点经纬度,计算其距离。
这里我参考了维基百科的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!