如何在mongodb中获取存在于圆形区域中的点(用户位置)


  1. 我有圆形区域的列表(不是多边形!重要(
  2. 我想知道用户基于他的位置存在于哪个圆圈区域。(在MongoDB中(

你能为我提供一个好的解决方案吗?

使用$geoWithin函数并以编程方式构建将提供给find()函数的圆列表。

circles = [];
//            lat,lon   radius
circles[0] = [ [0,0] , 2 ];
circles[1] = [ [4,0] , 4 ];
circles[2] = [ [8,8] , 2 ];
locs = [];
for(n = 0; n < 2; n++) {
  var pt = circles[n][0];
  var radius = circles[n][1];
  locs.push({"location": { $geoWithin :
            { $center : [ pt, radius ]
                    } }});
}
var q = {"$or": locs};
var c = db.geo.find(q);
   c.forEach(function(r) {
      printjson(r);
  });

最新更新