我在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。 我想念一下吗?
由于
答案 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
)
)
)