首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索在mongodb中包含一系列点的所有多边形

搜索在mongodb中包含一系列点的所有多边形
EN

Stack Overflow用户
提问于 2013-04-19 09:11:45
回答 1查看 927关注 0票数 2

我的问题类似于这个给定一组多边形和一系列点,找出哪个多边形是点所在。

我有一个包含两个集合的mongodb数据库,regions存储一组多边形(意大利各省),points存储一组具有坐标对的样本。我使用MongoDB2.4和GeoJSON格式来存储数据,这两个集合都有一个2dsphere索引。

我可以找到一个给定的点是否在一个给定的多边形内。

现在我想找到所有包含样本列表的多边形,来绘制一张像http://www.peerates.org/province.png这样的地图。

有没有一个更好的解决方案比迭代所有的点,并检查它是否在每个多边形,利用mongodb地理索引?

编辑:我找到了一个使用存储在system.js集合中的函数的部分解决方案

代码语言:javascript
复制
 function(){
    var found = [];
    var notfound = [];
    db.regions.find().forEach(
        function(region){
            var regionId = region._id;
            var query = {
                    'loc':{
                        $geoWithin: {
                            $geometry: region.loc
                        }
                    }
                };
            var len = db.points.find(query).size();
            if(len>0){
                found.push(regionId);
            }else{
                notfound.push(regionId);
            }
        }
    );
    return {
        "found":found,
        "notfound":notfound
    };
}

遗憾的是,我不能在mongohq.com上使用它--它看起来不再受支持了。

@RickyA谢谢,我会考虑搬到postgis

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-02 08:47:05

$geoIntersectsmongodb地理空间图书馆中就是这样做的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16101132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档