Drupal 7 - Views / Geofield - 显示当前节点lat / lng附近的节点

时间:2014-01-16 10:13:27

标签: drupal drupal-7 coordinates drupal-views proximity

我认为这将是一件非常简单的事情,因为我将lat / lng存储在Geofield中。但是,我真的很挣扎。

基本上我只想显示一个块中当前节点的20个最近的节点。

没有地址字段或任何复杂的东西,只是简单的坐标...

在我开始黑客攻击之前的任何想法?!

顺便说一下,我是一个相对Drupal新手,但有很多PHP经验。

谢谢, 克里斯

2 个答案:

答案 0 :(得分:0)

首先安装优秀的location模块。

将位置字段添加到结果内容类型和主要内容类型中。

根据主要内容类型创建视图(我假设您已安装此视图)并显示为块。

在视图中打开高级过滤器,在上下文过滤器中添加“location distance/proximity”过滤器是最接近的20个结果。

答案 1 :(得分:0)

我的解决方案:

  • 在上下文过滤器字段中添加Geofield邻近度过滤器 - 类似于“内容:位置(field_location) - 邻近度”。设置底部的半径距离。
  • 在“当过滤器值不可用时”下,选择“PHP代码”
  • 输入以下PHP。返回值是传递给过滤器的参数。

    $node = menu_get_object();
    $value = field_get_items('node', $node, 'field_location');
    $lat = $value[0]['lat'];
    $lon= $value[0]['lon'];
    return ($lat . ', ' . $lon);

从此页面https://drupal.org/node/2014345

中了解到这一点