2014-11-22 99 views
0

我有纬度和经度列表。从一组地理位置计算边界

这些是从反向拉链查找数据库中获得的,它位于特定城市(代顿,俄亥俄州)。

39.721286 -84.133892 
39.760000 -84.195900 
39.757800 -84.177700 
39.845339 -84.123287 
... 

我在MongoDB中有一个属性数据库,每个属性都有定义的位置(纬度/经度),当用户输入“代顿,OH”,我抓住顿的所有邮政编码相关地理坐标我想要做的是创建一个边界并添加5英里到它并搜索包含dayton邮政编码纬度/经度的属性数据库。

创建一个边界(正方形/圆形)以使用此坐标列表在范围内搜索数据库的最佳方式是什么?

回答

0

找到了解决方案,显然最好的方法是从应用程序端使用“凸包”算法计算边界,然后查询。

0

您可以在MongoDB中使用$ near操作符。

例如:

db.cities.find({ loc : { $near : { $geometry : { type : "Point" , coordinates : [ lon, lat] }, $maxDistance : 1/111.12 } } }) 

上面的查询恶魔附近一公里半径范围内的特定坐标一切(见$ maxDistance)。请参考MongoDB Manual