将多边形和线串预处理到网格区域以分区数据

时间:2013-02-28 00:41:54

标签: postgis oracle-spatial

由于我的多边形查询的大小,数量和性能(多边形中的多边形),我想预先处理我的数据并将多边形分成网格。我的数据在我感兴趣的领域非常均匀,因此12个偶数网格效果很好。我可以稍后根据性能调整此数字。基本上我将创建12个带有相关空间索引的表,或者我可能只创建一个带有网格分区键的表。这将使我的总索引大小减少12倍,并希望提高性能。从查询方面,我将查询指向适当的表。

关键是我能够弄清楚如何将多边形分组到这些网格中。如果多边形属于多个网格,那么我可能会在每个网格中创建一个记录并在查询时重复删除。我不希望这种情况经常发生。

基本上我会有一个“网格”,我希望与多边形相交并找出多边形所在的网格。

由于

1 个答案:

答案 0 :(得分:0)

我的流程将是这样的:

  1. 查找整个数据集(两个轴)的MIN / MAX纵坐标值
  2. 将这些值延伸一个看似合适的边距(如果组合时的纵坐标不形成规则的矩形形状)
  3. 编写一个小循环,以MIN / MAX坐标内的设定间隔生成多边形 - 即每个网格方形创建一个多边形
  4. 使用SDO_COVERS查看哪个网格方块覆盖每个多边形。如果多个网格方块覆盖多边形,则应该在描述时看到多个匹配。
  5. 我也同意您在单个表中对数据进行分区的策略。我听到过关于此的积极评论,但我从未亲自尝试过。转到多个表的开销似乎是你想要避免的。