小编典典

MySQL内距离查询

sql

选项

$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列的数据库表:

  • 唯一身份
  • 城市名
  • 纬度(纬度)
  • 经度(lng)

我在顶部使用查询返回距指定坐标距离指定英里数内的位置。它似乎可行,但我不确定它的准确性如何。我很想知道查询是否很好,或者您是否有更好的解决方案。


阅读 178

收藏
2021-04-07

共1个答案

小编典典

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

您对WRT的准确性有何看法?

2021-04-07