# Calculate distance by Lat-Lon

• 10-11-2012, 04:57 AM
sonny
Calculate distance by Lat-Lon
Hi
Can someone please check this, the miles do not seem right when I test it
PHP Code:

```     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  ```
• 10-11-2012, 06:41 PM
sunfighter
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-...jing_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.
• 10-11-2012, 07:25 PM
sonny
Quote:

Originally Posted by sunfighter
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-...jing_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