fork download
  1. import math
  2. def eadist(lat1, lon1, lat2, lon2):
  3. print(lat1, lon1, lat2, lon2)
  4. d2r = math.pi / 180
  5. R = 6378
  6. dlat = (lat2 -lat1) * d2r
  7. dlon = (lon2 -lon1) * d2r
  8. a = (math.sin(dlat/2))**2 + math.cos(lat1*d2r)*math.cos(lat2*d2r) * (math.sin(dlon/2))**2
  9. print("a=",a)
  10. c = 2*math.asin(math.sqrt(a))
  11. print("c=",c)
  12. dist = c * R
  13. return dist
  14.  
  15. print(eadist(45, 90, 45, 91))
  16. print(eadist(45, 90, 46, 90))
  17. print(eadist(45, 90, 46, 91))
  18. print(eadist(45, 90, -45, -90))
Success #stdin #stdout 0.02s 9476KB
stdin
Standard input is empty
stdout
45 90 45 91
a= 3.8076210902190215e-05
c= 0.012341263173265506
78.71257651908739
45 90 46 90
a= 7.615242180438042e-05
c= 0.017453292519943295
111.31709969219834
45 90 46 91
a= 0.0001135583120069672
c= 0.021313151879913415
135.93528269008777
45 90 -45 -90
a= 1.0
c= 3.141592653589793
20037.0779445957