根据一组地理位置计算边界


Calculate a boundary from set of geo locations

我有纬度和经度的列表。

这些是从反向zip查找数据库中获取的,并且位于特定城市(俄亥俄州代顿)下。

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

我在mongodb中有一个属性数据库,每个属性都有定义的位置(纬度/液化天然气),当用户输入"俄亥俄州代顿"时,我正在获取代顿的所有邮政编码和相关地理坐标,我想做的是创建一个边界并向其添加5英里并搜索涵盖代顿邮政编码纬度/液化天然气的财产数据库。

使用此

cordinates列表创建边界(方形/圆形)以搜索范围内的数据库的最佳方法是什么?

你可以在 MongoDB 中使用 $near 运算符。

例如:

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

上面的查询会显示 1 公里半径内特定坐标附近的所有内容(见$maxDistance)。

有关$near运算符的更多信息,请查看MongoDB手册。

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