Ingo W.:
//JavaScript:
dlng = p2_lng - p1_lng
dlat = p2_lat - p1_lat
a = (sin(dlat/2))^2 + cos(p1_lat) * cos(p2_lat) * (sin(dlon/2))^2
c = 2 * atan2( sqrt(a), sqrt(1-a) )
distance = R * c (where R is the radius of the Earth)
#Ruby:
dlng = p2_lng - p1_lng
dlat = p2_lat - p1_lat
a = (Math.sin(dlat/2))**2 + Math.cos(p1_lat) * Math.cos(p2_lat) *
(Math.sin(dlng/2))**2
c = 2 * Math.atan2( Math.sqrt(a), Math.sqrt(1-a) )
distance = 6373 * c #(radius of the Earth: 6373km
Any idea why the Ruby one returns incorrect numbers?
-
can you post sample running codes on both? (eg what are the values of
p2_lang, etc) -
do you have test cases? (so we know what to expect)
kind regards -botp