Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将lat/lng与另一lat/lng进行比较_Php_Mysql - Fatal编程技术网

Php 将lat/lng与另一lat/lng进行比较

Php 将lat/lng与另一lat/lng进行比较,php,mysql,Php,Mysql,我在数据库中存储了场地的纬度和经度 我也有登录用户的纬度和经度 我正在开发一个功能,可以让他们找到任何给定测量范围内的场地,比如说20英里 有没有可能找到距离用户lat和long最近的lat和long,比如说20英里,然后在MySQL中写一个查询来查找距离范围内的场地 谢谢。我使用这个(从javascript移植到Objective-C)-很多用javascript表达的很棒的位置方程我发现了一个可用的PHP函数: function getDistanceBetweenPoints($latit

我在数据库中存储了场地的纬度和经度

我也有登录用户的纬度和经度

我正在开发一个功能,可以让他们找到任何给定测量范围内的场地,比如说20英里

有没有可能找到距离用户lat和long最近的lat和long,比如说20英里,然后在MySQL中写一个查询来查找距离范围内的场地


谢谢。

我使用这个(从javascript移植到Objective-C)-很多用javascript表达的很棒的位置方程

我发现了一个可用的PHP函数:

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));

}  

如果你简单地搜索:好的关键词是“Haversine”或“Vincenty”,如果你做了大量的计算,你可以考虑使用一个空间上有能力的数据库,比如PASGIS或MunGDB,我在这里看到了@InsertUserName链接,但这需要我循环遍历数据库中的每个值?我正在寻找一种方法来计算从用户所在位置向外20英里的纬度和经度,然后在数据库中搜索圆圈内的东西!使用正方形而不是圆形来预选数据。正方形的角是否会超过所需的距离?