Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 7-视图/地理场-显示当前节点lat/lng附近的节点_Drupal_Drupal 7_Coordinates_Drupal Views_Proximity - Fatal编程技术网

Drupal 7-视图/地理场-显示当前节点lat/lng附近的节点

Drupal 7-视图/地理场-显示当前节点lat/lng附近的节点,drupal,drupal-7,coordinates,drupal-views,proximity,Drupal,Drupal 7,Coordinates,Drupal Views,Proximity,考虑到我将lat/lng储存在地质场中,我认为这将是一件非常简单的事情。然而,我真的很挣扎 基本上,我只想在一个块中显示距离当前节点最近的20个节点 没有地址字段或任何复杂的东西,只是简单的坐标 在我开始黑客攻击之前有什么想法吗 顺便说一句,我是一个相对的Drupal新手,但是有很多PHP经验 谢谢, Chris首先安装优秀的模块 将位置字段添加到结果内容类型和主内容类型 基于主内容类型创建一个视图(我想您已经安装了它),并显示为块 在视图中打开高级过滤器,并在上下文过滤器中为最接近的20个结果

考虑到我将lat/lng储存在地质场中,我认为这将是一件非常简单的事情。然而,我真的很挣扎

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

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

在我开始黑客攻击之前有什么想法吗

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

谢谢,
Chris

首先安装优秀的模块

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

基于主内容类型创建一个视图(我想您已经安装了它),并显示为块

在视图中打开高级过滤器,并在上下文过滤器中为最接近的20个结果添加过滤器。

我的解决方案:

  • 在上下文过滤器字段中,添加一个Geofield接近度过滤器,类似于“内容:位置(字段位置)-接近度”。在底部设置半径距离
  • 在“过滤器值不可用时”下选择“PHP代码”
  • 输入以下PHP。返回值是传递给筛选器的参数
$node=menu_get_object(); $value=字段\获取\项($node',$node,'field\位置'); $lat=$value[0]['lat']; $lon=$value[0]['lon']; 回报($lat.','.$lon);
从这一页算出来的

好的,这就是我所取得的成绩。现在,我可以获得所需的附近节点列表,但前提是使用geofield邻近字段手动输入过滤条件的坐标。我想现在的问题是如何将地理场值从我的节点获取到排序过滤器中?谢谢你的建议。我真的想要一个基于地理场的解决方案,因为这就是我正在使用的。 $node = menu_get_object(); $value = field_get_items('node', $node, 'field_location'); $lat = $value[0]['lat']; $lon= $value[0]['lon']; return ($lat . ', ' . $lon);