根据经纬度计算两点距离的Python代码

根据经纬度计算两点距离的代码很多,但是多数是C#代码,也找到了一些Python写的代码但是没有写完整,这里就把这部分的Python实现代码完整一下,供有需要者使用

 

import math

def rad(d):

    return d*math.pi/180.0

 

def distance(lat1,lng1,lat2,lng2):

    radlat1=rad(lat1)

    radlat2=rad(lat2)

    a=radlat1-radlat2

    b=rad(lng1)-rad(lng2)

    s=2*math.asin(math.sqrt(math.pow(math.sin(a/2),2)+math.cos(radlat1)*math.cos(radlat2)*math.pow(math.sin(b/2),2)))

    earth_radius=6378.137

    s=s*earth_radius

    if s<0:

        return -s

    else:

        return s

 

if __name__=="__main__":

    print distance(40.030979,116.411018,40.015311000,116.422638000)

 

参考博客:http://blog.csdn.net/moodytong/article/details/8063469