...

View Full Version : Calculate distance by Lat-Lon



sonny
10-11-2012, 04:57 AM
Hi
Can someone please check this, the miles do not seem right when I test it


function distance($lat1, $lng1, $lat2, $lng2, $miles = true){
$pi80 = M_PI / 180;
$lat1 *= $pi80;
$lng1 *= $pi80;
$lat2 *= $pi80;
$lng2 *= $pi80;

$r = 6372.797; // mean radius of Earth in km
$dlat = $lat2 - $lat1;
$dlng = $lng2 - $lng1;
$a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlng / 2) * sin($dlng / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
$km = $r * $c;

return ($miles ? ($km * 0.621371192) : $km);
}
$lat1 = "39.9289";//Beijing China
$lon1 = "116.3883";

$lat2 = "47.6026";//Seattle Washington
$lon2 = "-122.3284";

$distance = distance($lat1, $lon1, $lat2, $lon2);
echo "They are ".$distance." miles away from each other

sunfighter
10-11-2012, 06:41 PM
Your php gives me They are 5400.5810531334 miles away from each other

I used one from http://www.marketingtechblog.com/calculate-distance/ and got
5398.8 Miles.

http://www.freemaptools.com/how-far-is-it-between-seattle_washington-and-beijing_china.htm shows 5399.094 Miles.

Remember: A man with one GPS unit knows exactly where he is. A man with two units is never sure.

sonny
10-11-2012, 07:25 PM
Your php gives me They are 5400.5810531334 miles away from each other

I used one from http://www.marketingtechblog.com/calculate-distance/ and got
5398.8 Miles.

http://www.freemaptools.com/how-far-is-it-between-seattle_washington-and-beijing_china.htm shows 5399.094 Miles.

Remember: A man with one GPS unit knows exactly where he is. A man with two units is never sure.

I was just trying to double check the calculations within the script
Thanks
Sonny



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum