球面2点距離pythonの計算
1223 ワード
コードは次のとおりです.
@requires_authorization
#!/usr/bin/env python
#-*-encoding:utf-8 -*-
import math
def cal_dis_meters(radius,latitude1, longitude1,latitude2, longitude2):
radLat1 = (math.pi/180)*latitude1
radLat2 = (math.pi/180)*latitude2
radLng1 = (math.pi/180)*longitude1
radLng2= (math.pi/180)*longitude2
#ref: http://www.alivenode.com/index.php/archives/300
d=2.0*math.asin(math.sqrt(math.pow(math.sin((radLat1-radLat2)/2.0),2)+math.cos(radLat1)*math.cos(radLat2)*math.pow(math.sin((radLng1-radLng2)/2.0),2)))*radius
return d