MongoDB不返回MaxDistance中的所有点

时间:2014-05-02 19:50:30

标签: mongodb geospatial

我在php中有这个搜索查询:

[$near] => Array(
  [0] => -73.5539925
  [1] => 45.5086699
)
[$maxDistance] => 0.269978401728
以这种方式计算

0.269978401728:30 / 111.12

问题是它没有找到这些值的点:-73.8260706 45.4293058 它只有在距离增加到32时才能找到它。 如果我检查这些点之间的gmap步行距离是26.6,这比直线长。然后,即使有25公里它应该可以工作,但现在它不起作用30。 我想念一下吗?

由于

1 个答案:

答案 0 :(得分:0)

我将查询更改为在内而不是近处使用,现在它可以正常使用

$radiusOfEarth = 6378.1;//radius in km

$calculated_distance = (float) $distance  / $radiusOfEarth;
$search = array(
      'loc' => array('$within' =>
            array('$centerSphere' =>
                array(
                    array(floatval($lng), floatval($lat)), $calculated_distance
                )
            )
        )
  );

[loc] => Array
    (
        [$within] => Array
            (
                [$centerSphere] => Array
                    (
                        [0] => Array
                            (
                                [0] => -73.5539925
                                [1] => 45.5086699
                            )

                        [1] => 0.00501716812217
                    )

            )

    )