远程查询中的Mysql

Cyb*_*kie 5 php mysql sql spatial geospatial

选项

$lat = '25.7742658';
$lng = '-80.1936589';
$miles = 30;
Run Code Online (Sandbox Code Playgroud)

询问

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
Run Code Online (Sandbox Code Playgroud)

我有一个包含4列的数据库表:

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

我在顶部使用查询返回指定坐标内指定英里数内的位置.它似乎工作,但我不确定它是多么准确.我很高兴知道查询是好还是你有更好的解决方案.

Ran*_*ndy 3

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

您对准确性有何担忧?