如何将映射的边界框传递给SetFilterFloatRange()?

时间:2018-02-05 07:06:11

标签: php sphinx

我得到地图SW,NE的bounding_box,它给出了4个坐标或lt / ln的数组。我想将此传递给SetFilterFloatRange()

这样做的目的是,我希望只获得属于此边界框区域或地图可见部分的过滤结果。

我有以下问题

  1. 如何将其传递给SetFilterFloatRange(),因为它只接受2个lt / ln的参数

    参考:http://php.net/manual/en/sphinxclient.setfilterfloatrange.php

  2. 我认为在传递给上面的方法之前我需要将这些坐标转换为弧度。纠正我,如果错了。

1 个答案:

答案 0 :(得分:1)

  

如何将它传递给SetFilterFloatRange(),因为它只接受2个lt / ln的参数

我假设你有2个属性:

  • 纬度
  • 经度
在索引中

,您有一个要过滤的区域的4 lt / ln角坐标数组。而且您只想找到包含在您区域内的那些文档。然后,您首先需要将数组转换为4个值:

  • min latitude
  • max latitude
  • min longitude
  • max longitude

然后设置2个过滤器:

  • SetFilterFloatRange('latitude',$ min_lt,$ max_lt);
  • SetFilterFloatRange('longitude',$ min_ln,$ max_ln);
  

我需要在传递到上面之前将这些坐标转换为弧度   方法

如果你有以弧度为单位的索引坐标 - 是的,函数本身并不关心弧度/度数,只是你传递给函数的索引值和值应该是兼容的。