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

Ras*_*sen 4 google-maps geolocation mongodb

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

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

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

oma*_*llo 8

根据mongo文档,您可以在边界框内查询

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

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

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

map.getBounds()
Run Code Online (Sandbox Code Playgroud)

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

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