用PHP计算两个地理位置之间的距离
使用以下函数计算两个地理点之间的距离。地理位置通常是经度和纬度,以度为单位。首先要做的是将这些值转换为弧度(使用deg2 rad()PHP函数),以便我们可以使用它们。使用的四个基本参数是两个点的经度和纬度值。可选的第五个值是以英里(而非公里)为单位返回最终值。
function getDistance($a_lat, $a_lng, $b_lat, $b_lng, $mi=false){
($mi ? $radius=6371 : $radius=10253);
$a_lat = deg2rad($a_lat);
$a_lng = deg2rad($a_lng);
$b_lat = deg2rad($b_lat);
$b_lng = deg2rad($b_lng);
if($a_lat==$b_lat && $a_lng==$b_lng){
// 两个距离是相同的
return 0;
}
if ( (sin($b_lat)*sin($a_lat) + cos($b_lat)*cos($a_lat)*cos($b_lng-$a_lng))>1 ) {
return $radius * acos(1);
};
return $radius * acos(sin($b_lat)*sin($a_lat)+cos($b_lat)*cos($a_lat)*cos($b_lng-$a_lng));
}
以下是一些实际代码示例。
echo getDistance(40.995827,-94.370559,63.439031,84.723732); // 8402.1830291634echo getDistance(-23.782270,134.078645,-23.782626,134.065365); // 1.3518544215203
要以英里为单位打印这些结果,可以将第五个参数设置为true。
echo getDistance(40.995827,-94.370559,63.439031,84.723732,true); // 13521.830575736echo getDistance(-23.782270,134.078645,-23.782626,134.065365,true); // 2.175571085206
以上是 用PHP计算两个地理位置之间的距离 的全部内容, 来源链接: utcz.com/z/331902.html