Posted By

ginoplusio on 12/26/09


Tagged

javascript google maps longitude distance latitude formula haversine


Versions (?)

Who likes this?

4 people have marked this snippet as a favorite

ginoplusio
webdents
jarod51
Priestd09


Calculate distance between two points with latitude and longitude coordinates


 / Published in: JavaScript
 

URL: http://www.barattalo.it/2009/12/26/decimal-degrees-conversion-and-distance-of-two-points-on-google-map/

This function calculates distance with the Haversine formula, this formula assumes that our Earth is spherical, but it isn’t since it’s more like a big orange fruit also compresses at poles. I’ve read that this function has an error about + o – 3 meters (it depends), but it’s a small error for many purposes.

  1. function distance(lat1,lon1,lat2,lon2) {
  2. var R = 6371; // km (change this constant to get miles)
  3. var dLat = (lat2-lat1) * Math.PI / 180;
  4. var dLon = (lon2-lon1) * Math.PI / 180;
  5. var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
  6. Math.cos(lat1 * Math.PI / 180 ) * Math.cos(lat2 * Math.PI / 180 ) *
  7. Math.sin(dLon/2) * Math.sin(dLon/2);
  8. var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  9. var d = R * c;
  10. if (d>1) return Math.round(d)+"km";
  11. else if (d<=1) return Math.round(d*1000)+"m";
  12. return d;
  13. }

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: the_coder on April 16, 2010

"var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));" can be simplified to "var c = 2 * Math.asin(Math.sqrt(a));"

You need to login to post a comment.