【问题标题】:Calculate a boundary from set of geo locations从一组地理位置计算边界
【发布时间】:2015-01-20 14:39:48
【问题描述】:

我有经纬度列表。

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

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

我在 mongodb 中有一个属性数据库,并且每个属性都定义了位置(纬度/经度),当用户输入“Dayton,OH”时,我正在获取 Dayton 的所有邮政编码以及相关的地理坐标和我想要的要做的是创建一个边界并添加 5 英里,然后搜索涵盖代顿邮政编码的 lat/lng 的属性数据库。

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

【问题讨论】:

    标签: php mongodb geolocation geospatial geo


    【解决方案1】:

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

    例如:

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

    上述查询将 1 公里半径内的特定坐标附近的所有内容都锁定(参见 $maxDistance)。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-24
        • 1970-01-01
        • 2012-09-10
        • 1970-01-01
        • 2014-06-11
        • 1970-01-01
        • 2016-10-12
        相关资源
        最近更新 更多