Haversine方程式是您的问题的答案。但是,解密有点困难,因此在这里我为您提供一个简单的解释:
简而言之:
这是示例/示例SQL语句,该语句将查找距37,-122坐标25英里范围内的最近20个位置。它根据该行的纬度/经度和目标纬度/经度(由下面的方程式中的lat
/
lng给出)计算距离,然后仅询问距离值小于25的行,对整个查询进行排序距离,并将其限制为20个结果。要按公里而不是英里进行搜索,请将3959替换为6371。
SELECt id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVINg distance < 25 ORDER BY distance LIMIT 0 , 20;
您可以将sql转换为所需的任何内容。我的意思是原理保持不变。



