PHP如何根据经纬度精确计算两地间的距离?

更新于
2026-09-26 05:01:07
2阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计303个文字,预计阅读时间需要2分钟。

PHP如何根据经纬度精确计算两地间的距离?

这是一个非常有用的距离计算函数,它利用纬度和经度来计算从点A到点B的直线距离。函数可以直接返回英里、公里或海里三种单位类型的距离。下面是简化后的函数代码:

phpfunction distance($lat1, $lon1, $lat2, $lon2, $unit) { $earth_radius=6371; // 地球半径,单位:千米 $latFrom=deg2rad($lat1); $lonFrom=deg2rad($lon1); $latTo=deg2rad($lat2); $lonTo=deg2rad($lon2);

$latDelta=$latTo - $latFrom; $lonDelta=$lonTo - $lonFrom;

$angle=2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2))); $distance=$angle * $earth_radius;

switch ($unit) { case 'mi': // 英里 return $distance * 0.621371; case 'km': // 公里 return $distance; case 'n': // 海里 return $distance / 1.852; default: return $distance; }}

PHP如何根据经纬度精确计算两地间的距离?

这是一个非常有用的距离计算函数,利用纬度和经度计算从 A 地点到 B 地点的距离。该函数可以返回英里,公里,海里三种单位类型的距离。

function distance($lat1, $lon1, $lat2, $lon2, $unit) { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } } //用法: echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." kilometers";

本文共计303个文字,预计阅读时间需要2分钟。

PHP如何根据经纬度精确计算两地间的距离?

这是一个非常有用的距离计算函数,它利用纬度和经度来计算从点A到点B的直线距离。函数可以直接返回英里、公里或海里三种单位类型的距离。下面是简化后的函数代码:

phpfunction distance($lat1, $lon1, $lat2, $lon2, $unit) { $earth_radius=6371; // 地球半径,单位:千米 $latFrom=deg2rad($lat1); $lonFrom=deg2rad($lon1); $latTo=deg2rad($lat2); $lonTo=deg2rad($lon2);

$latDelta=$latTo - $latFrom; $lonDelta=$lonTo - $lonFrom;

$angle=2 * asin(sqrt(pow(sin($latDelta / 2), 2) + cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2))); $distance=$angle * $earth_radius;

switch ($unit) { case 'mi': // 英里 return $distance * 0.621371; case 'km': // 公里 return $distance; case 'n': // 海里 return $distance / 1.852; default: return $distance; }}

PHP如何根据经纬度精确计算两地间的距离?

这是一个非常有用的距离计算函数,利用纬度和经度计算从 A 地点到 B 地点的距离。该函数可以返回英里,公里,海里三种单位类型的距离。

function distance($lat1, $lon1, $lat2, $lon2, $unit) { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } } //用法: echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." kilometers";