Mysql距离内查询



选项

$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列:

  • 唯一id
  • 城市名称
  • 纬度
  • 经度(lng(

我使用顶部的查询来返回距离指定坐标数英里以内的位置。它似乎有效,但我不确定它有多准确。我很好奇这个查询是否正确,或者你是否有更好的解决方案。

这看起来像是正确的大圆距离查询。

你关心wrt的准确性是什么?

相关内容

  • 没有找到相关文章

最新更新