选项
$lat = '25.7742658';
$lng = '-80.1936589';
$miles = 30;
查询
SELECT *,
( 3959 * acos( cos( radians($lat) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians($lng) )
+ sin( radians($lat) )
* sin( radians( lat ) ) ) ) AS distance
FROM locations
HAVING distance < $miles
ORDER BY distance
LIMIT 0, 20
我有一个包含4列的数据库表:
我在顶部使用查询返回指定坐标内指定英里数内的位置。它似乎工作,但我不确定它是多么准确。我很高兴知道查询是好还是你有更好的解决方案。
答案 0 :(得分:3)
看起来像是正确的大圆距离查询。
你对wrt准确性有什么关注?
答案 1 :(得分:0)
如果你想在mysql中计算距离到点或者找到一个点,你可以使用&#34; MySQL空间函数&#34;,但它在MySQL 5.6中启用。 有关更多信息,请阅读本文:
或此PDF: