我在数据库中存储了场馆的纬度和经度。
同时,我也有登录用户的纬度和经度信息。
我正在开发一个函数,允许用户在给定的范围内查找场馆,比如20英里。
是否可能从用户的纬度和经度信息中找到距离20英里最远的纬度和经度,并以某种方式编写MySQL查询以在距离圆内查找场馆?
谢谢。
我在数据库中存储了场馆的纬度和经度。
同时,我也有登录用户的纬度和经度信息。
我正在开发一个函数,允许用户在给定的范围内查找场馆,比如20英里。
是否可能从用户的纬度和经度信息中找到距离20英里最远的纬度和经度,并以某种方式编写MySQL查询以在距离圆内查找场馆?
谢谢。
function getDistanceBetweenPoints($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') {
$theta = $longitude1 - $longitude2;
$distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515; switch($unit) {
case 'Mi': break; case 'Km' : $distance = $distance * 1.609344;
}
return (round($distance,2));
}
希望这能对其他人有所帮助。