【发布时间】:2011-03-25 09:33:36
【问题描述】:
我有一个小问题,
我只是在我的项目中测试使用半正弦公式 在项目中,我指定了一个点,我想找到我提供的点的给定半径内的所有点。经过大量谷歌搜索后,我尝试了这个 hasrsine 公式查询。
SELECT service_id, ( 3959 * acos( cos( radians(51.500152) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(-0.126236) ) + sin( radians(51.500152) ) * sin( radians( latitude ) ) ) ) AS distance
FROM sys_t_taxi_real_time_servce HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
我得到了伦敦的经纬度,然后按照(service_id, driver_id, Journey_id, longitude, latitude, driver_status)的顺序指定数据
4, 1, , 51.5034, -0.174751, ''
5, 1, 2, 51.477106, -0.137329, ''
所以对于结果集,但是我什么也没得到,没有返回行
但是,当我删除 having 子句时,我得到以下结果集 (service_id, distance)
5, 4655.154600
4, 4658.309966
我真的被这个问题困住了,因此无法继续前进,我们将不胜感激。
查询等是从以下链接获得的 http://code.google.com/apis/maps/articles/phpsqlsearch.html
另外有没有人知道解决同样问题的其他方法,我看到了mysql空间相关的东西,但选择了这个,因为它更容易使用
问候, 米琳达
【问题讨论】:
标签: mysql geometry geospatial distance