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

Drupal 使用视图查找附近使用参数中的位置的用户列表,drupal,geolocation,drupal-views,reverse,Drupal,Geolocation,Drupal Views,Reverse,我正在使用Drupal6.X 我正在通过视图和视图数据源模块创建一个api 其中,我将在视图中定义参数时,将位置的纬度和经度添加到url的末尾,以便按照最接近的第一个参数的顺序获得用户列表 我认为创建自定义模块会更容易。基本上,您希望根据您的经度和纬度运行: SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radi

我正在使用Drupal6.X 我正在通过视图和视图数据源模块创建一个api
其中,我将在视图中定义参数时,将位置的纬度和经度添加到url的末尾,以便按照最接近的第一个参数的顺序获得用户列表

我认为创建自定义模块会更容易。基本上,您希望根据您的经度和纬度运行:

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;
这是来自,并且是这样做的:

将找到距离37,-122坐标25英里半径内最近的20个位置。它基于该行的纬度/经度和目标纬度/经度计算距离,然后仅要求距离值小于25的行,按距离对整个查询排序,并将其限制为20个结果。要按公里而不是英里搜索,请将3959替换为6371。
我已经用MySQL尝试了这个精确的forumla,它工作得非常好,我甚至有一个完整的模块为它工作,但不幸的是它是Drupal 7的,完全依赖实体系统,所以对您的情况没有帮助。

或者我应该做自定义模块开发吗?谢谢clive。。。我没有markers表,但我有location表,其中包含纬度和经度字段。我在查询中只有表名,而不是select id。我使用select lid并传递数据库中某一行的确切纬度经度。我仍然没有得到任何结果。这是我使用的方法,可能存在问题编码函数_term_search_user$lat,$lon{$users[]=array;$query=db_querySELECT lid,3959*acos cos radians 37*cos radians$lat*cos radians$lon+-radians-122+sin radians 37*sin radians$lat AS distance+,距离小于25阶,距离限制为0,20;而$row=db_fetch\u object$query{$users[$row->lid]=$row->lid;}返回$users;}