从一组地理位置计算边界
Posted
技术标签:
【中文标题】从一组地理位置计算边界【英文标题】: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 的属性数据库。
使用此坐标列表创建边界(正方形/圆形)以在范围内搜索数据库的最佳方法是什么?
【问题讨论】:
【参考方案1】:您可以在 MongoDB 中使用 $near 运算符。
例如:
db.cities.find( loc : $near : $geometry : type : "Point" , coordinates : [ lon, lat] , $maxDistance : 1/111.12 )
上述查询将 1 公里半径内的特定坐标附近的所有内容都锁定(参见 $maxDistance)。
有关 $near 运算符的更多信息,请查看MongoDB Manual。
【讨论】:
【参考方案2】:找到了解决方案,显然最好的方法是使用“凸包”算法从应用程序端计算边界,然后查询。
【讨论】:
以上是关于从一组地理位置计算边界的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用treemap包中的treemap函数可视化treemap图:treemap将分层数据显示为一组嵌套矩形自定义设置标签颜色标签背景色标签大小字体格式边界线条粗细标签位置等