Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Earth Distances by Phil15
import math
def North_East(s):
North, East = s.replace(',',' ').split()
deg, North = North.split('°')
min, North = North.split('′')
sec, North = North.split('″')
deg, min, sec = int(deg), int(min), int(sec)
N = deg + min/60 + sec/3600
if North=='S':
N *= -1
deg, East = East.split('°')
min, East = East.split('′')
sec, East = East.split('″')
deg, min, sec = int(deg), int(min), int(sec)
E = deg + min/60 + sec/3600
if East=='W':
E *= -1
return (N, E)
def distance(first, second, R = 6371):
sin = lambda x: math.sin(math.radians(x))
cos = lambda x: math.cos(math.radians(x))
Nf, Ef = North_East(first)
Ns, Es = North_East(second)
return R * math.acos(sin(Nf) * sin(Ns) + cos(Nf) * cos(Ns) * cos(Ef-Es))
April 7, 2018
Comments: