我有一个网站,人们可以在谷歌地图上查看一些地方,这些地方用lat/lng坐标存储.存储是mongodb.现在,当用户导航地图时,我需要查找现在位于地图可见部分的地方.
我是mongo的新手,但看过空间部分.我的问题现在是进行此查找的有效方法.
每次用户导航地图时是否需要创建ensureIndex,然后如何查询地图可见边界内的所有位置?
根据mongo文档,您可以在边界框内查询
box = [[40.73083, -73.99756], [40.741404, -73.988135]] db.places.find({"loc" : {"$within" : {"$box" : box}}})
这里的关键点是使用内部在边界框内进行查询.
为了获得你的盒子的价值,只需获得谷歌地图的界限
map.getBounds()
地图是你的谷歌地图对象.getBounds将返回一个LatLngBounds对象,您可以从中构建框来查询mongo.
至于ensureIndex,据我所知你应该这样做一次.