- 我有圆形区域的列表(不是多边形!重要(
- 我想知道用户基于他的位置存在于哪个圆圈区域。(在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);
});