如何计算地球上任意两点(经纬度)间的具体距离?
- 内容介绍
- 文章标签
- 相关推荐
本文共计165个文字,预计阅读时间需要1分钟。
PHP计算两个坐标(经度,纬度)之间距离的函数,返回结果为米或千米:
phpfunction distance($lat1, $lng1, $lat2, $lng2, $miles=true) { $pi80=M_PI / 180; $lat1 *=$pi80; $lng1 *=$pi80; $lat2 *=$pi80; $lng2 *=$pi80; $r=$miles ? 3956.0 : 6371.0; return $r * acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($lng1 - $lng2));}
php计算两个坐标(经度,纬度)之间的距离,返回结果为米或者千米
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); }
本文共计165个文字,预计阅读时间需要1分钟。
PHP计算两个坐标(经度,纬度)之间距离的函数,返回结果为米或千米:
phpfunction distance($lat1, $lng1, $lat2, $lng2, $miles=true) { $pi80=M_PI / 180; $lat1 *=$pi80; $lng1 *=$pi80; $lat2 *=$pi80; $lng2 *=$pi80; $r=$miles ? 3956.0 : 6371.0; return $r * acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($lng1 - $lng2));}
php计算两个坐标(经度,纬度)之间的距离,返回结果为米或者千米
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); }

