【发布时间】:2011-10-14 20:08:26
【问题描述】:
我正在使用 drupal 6.X 我正在通过视图和视图数据源模块创建一个 api 当我们在视图中定义参数时,我将在 url 末尾添加位置的纬度和经度,以便我可以按最近的优先顺序获取用户列表。
【问题讨论】:
-
或者我应该做自定义模块开发吗??
标签: drupal geolocation drupal-views reverse
我正在使用 drupal 6.X 我正在通过视图和视图数据源模块创建一个 api 当我们在视图中定义参数时,我将在 url 末尾添加位置的纬度和经度,以便我可以按最近的优先顺序获取用户列表。
【问题讨论】:
标签: drupal geolocation drupal-views reverse
我认为创建自定义模块会更容易。基本上你想根据你的经度和纬度运行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,并且完全依赖于实体系统,所以对你的情况没有帮助.
【讨论】: