选项
$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的准确性是什么?