【问题标题】:The fastest way to compare polygons比较多边形的最快方法
【发布时间】:2016-12-13 23:03:09
【问题描述】:

我需要解析地理点的地址组件(红色)。

mongodb 中的交叉点查询为我找到了一些多边形(见图)。绿色多边形是市辖区,蓝色是城市,棕色是乡村。我想将地址显示为“国家、城市、市辖区”。

问题是按多边形的大小对结果进行排序。用python计算面积或乘以边界框边大约需要一秒钟,这很慢。

比较多边形的最快方法是什么?

【问题讨论】:

  • “大约需要一秒钟”如果你的多边形那么大,是什么让你认为有一种快速的方法来比较它们?
  • 多边形是如何定义的?如果它只是围绕周长的线段列表,它不应该花费那么长时间,您可以使用格林定理。
  • 多边形定义为geojson。我认为这种快速方法在 postgis 或 mongodb 的 R-Tree 索引中使用。这些系统每小时计算数百万个边界框(我的速度是每小时数千个)。
  • 你为什么不能预先计算每个多边形的面积并将它们全部存储在数据库中?
  • > 为什么不能只预先计算每个多边形的面积并将它们全部存储在数据库中,因为我的数据库中有 100 000 个文档。我只有在速度快的情况下才能计算面积。 > 计算多边形的面积或边界框是一个简单的操作如何得到多边形的边界框?

标签: algorithm geometry spatial geo


【解决方案1】:

postgresql 中的 ST_Area 在 1 分钟内计算 100 000 个区域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2019-12-07
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多