【发布时间】:2011-09-28 07:27:43
【问题描述】:
选项
$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 列的数据库表:
- 唯一标识
- 城市名称
- 纬度(lat)
- 经度 (lng)
我正在使用顶部的查询来返回距离指定坐标在指定英里数内的位置。它似乎有效,但我不确定它有多准确。我很想知道查询是否良好,或者您是否有更好的解决方案。
【问题讨论】:
标签: php mysql sql geospatial spatial