Googlemaps使用mongodb地理空间最佳策略进行搜索

时间:2011-11-27 21:01:39

标签: google-maps mongodb geolocation

我有一个网站,人们可以在谷歌地图上查看一些地方,这些地方用lat / lng坐标存储。存储是mongodb。现在,当用户导航地图时,我需要查找现在位于地图可见部分的地方。

我是mongo的新手,但看过空间部分。我的问题现在是进行此查找的有效方法。

每次用户导航地图时是否需要创建ensureIndex,然后如何查询地图可见边界内的所有位置?

1 个答案:

答案 0 :(得分:8)

根据mongo文档,你可以在一个像这样的边界框中查询

box = [[40.73083, -73.99756], [40.741404,  -73.988135]]
db.places.find({"loc" : {"$within" : {"$box" : box}}})

这里的关键点是使用 在边界框内进行查询。

为了获得你的盒子的价值,只需获得谷歌地图的界限

map.getBounds()

地图是您的Google地图对象。 getBounds将返回一个LatLngBounds对象,您可以从中构建框来查询mongo。

至于ensureIndex,据我所知,你应该这样做一次。