Skip to content

Instantly share code, notes, and snippets.

@bepatrickdavid
Created November 18, 2015 08:47
Show Gist options
  • Save bepatrickdavid/4c4d49943756e8a56392 to your computer and use it in GitHub Desktop.
Save bepatrickdavid/4c4d49943756e8a56392 to your computer and use it in GitHub Desktop.
Calculate distance between two points on a globe
//PHP
function getDistance($latitude1, $longitude1, $latitude2, $longitude2) {
$earth_radius = 6371;
$dLat = deg2rad($latitude2 - $latitude1);
$dLon = deg2rad($longitude2 - $longitude1);
$a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * sin($dLon/2) * sin($dLon/2);
$c = 2 * asin(sqrt($a));
$d = $earth_radius * $c;
return $d;
}
//JS
var R = 6371; // km
var dLat = (lat2-lat1)*Math.PI/180;
var dLon = (lon2-lon1)*Math.PI/180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(lat1*Math.PI/180) * Math.cos(lat2*Math.PI/180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.asin(Math.sqrt(a));
var d = R * c;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment