擅长:python、mysql、java
<p><a href="http://en.wikipedia.org/wiki/Haversine_formula" rel="noreferrer">Haversine Equation</a>是您问题的答案。不过,解密有点困难,所以我在这里为您提供一个简单的解释:</p>
<p>简单地说:</p>
<p>下面是SQL语句的示例/示例,它将查找距离37,-122坐标25英里半径范围内最近的20个位置。它根据该行的纬度/经度和目标纬度/经度(在下面的等式中由lat/lng给出)计算距离,然后只请求距离值小于25的行,按距离排序整个查询,并将其限制为20个结果。要按公里而不是英里搜索,请将3959替换为6371。在</p>
<pre><code>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;
</code></pre>
<p>您可以将sql转换为您想要的任何内容。我的意思是原则不变。在</p>