将点与区域匹配的有效方法

时间:2012-02-29 11:16:03

标签: mongodb geospatial postgis

我有一个由中心(纬度,经度)和半径标识的圆形区域列表。我有一个由他们的纬度和经度确定的地球上的点列表。对于每一点,我想找到它所属的区域。请注意,这两个列表可能会达到数百万。

最有效的方法是什么?

问候!

1 个答案:

答案 0 :(得分:0)

MongoDB内置了对边界查询的支持,因此您可以查找给定形状内的点。圆(中心+半径)是受支持的类型之一。因此,假设您在位置字段(db.places.ensureIndex( { loc : "2d" } )或类似地方)上定义了地理空间索引,则可以执行以下操作:

> center = [50, 50]
> radius = 10
> db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})

更多信息可在此处找到:

http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-BoundsQueries