使用视图在参数中使用位置查找附近的用户列表

时间:2011-10-14 20:08:27

标签: drupal geolocation drupal-views reverse

我正在使用drupal 6.X 我正在通过视图和视图创建一个api数据源模块 我将在URL的末尾添加位置的纬度和经度,因为我们在视图中定义参数,以便我可以按照最接近的第一个顺序获取用户列表。

1 个答案:

答案 0 :(得分:0)

我认为创建自定义模块会更容易。基本上你想对经度和纬度运行Haversine formula

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance 
FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

这来自http://code.google.com/apis/maps/articles/phpsqlsearch.html,并执行此操作:

将找到距离37,-122坐标25英里半径范围内最近的20个位置。它根据该行的纬度/经度和目标纬度/经度计算距离,然后仅询问距离值小于25的行,按距离对整个查询进行排序,并将其限制为20个结果。要以公里而不是里程搜索,请将3959替换为6371。

我已经尝试过这个确切的论坛与MySQL,它工作得很好,我甚至有一个完全成熟的模块为它工作但不幸的是它是为Drupal 7完全依赖于实体系统所以对你的情况没有帮助