Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Earth Distances by TovarischZhukov
# migrated from python 2.7
R = 6371
import math
def getWGS(num,d):
for i in ['″',"′","°"]:
num=num.replace(i,":")
num=num.split(":")
gr=(int(num[0])+int(num[1])/60.+int(num[2])/3600.)*d[num[3]]
return gr*math.pi/180.
def distance(first, second):
d={"W":-1,"E":1,"N":1,"S":-1}
first=first.replace(","," ")
second=second.replace(","," ")
lat1,long1=[_f for _f in first.split(" ") if _f]
lat2,long2=[_f for _f in second.split(" ") if _f]
lat1=getWGS(lat1,d)
lat2=getWGS(lat2,d)
long1=getWGS(long1,d)
long2=getWGS(long2,d)
cl1=math.cos(lat1)
cl2=math.cos(lat2)
sl1=math.sin(lat1)
sl2=math.sin(lat2)
delta=long2-long1
cdelta=math.cos(delta)
sdelta=math.sin(delta)
y=((cl2*sdelta)**2+(cl1*sl2-sl1*cl2*cdelta)**2)**0.5
x=sl1*sl2+cl1*cl2*cdelta
return R*math.atan2(y,x)
Jan. 13, 2016