用户指南和参考

如何生成 Spatial 索引

Spatial 索引是使用包络生成的。 包络是几何图形自身且表示几何图形的最小和最大 X 和 Y 范围。 对于大多数几何图形,包络是一个框,但对于水平和垂直线条,包络是一个两点线条。 对于点,包络是点自身。有关包络的更多信息,参见包络

通过为每个几何图形的包络与网格的交点生成一项或多项, 在 Spatial 列上构造 Spatial 索引。将交点记录为几何图形的内部 ID 和相交的网格单元的最小 X 和 Y坐标。 例如,图 7中的多边形与网格在坐标 (20,30)、(30,30)、(40,30)、(20,40)、(30,40)、(40,40)、(20,50)、(30,50) 和 (40,50) 处相交。 参见表 38以获取图 7中所有几何图形的最小 X 和 Y 坐标。

若存在多个网格级,DB2 Spatial Extender 尝试使用可能的最低网格级。 当某个几何图形在给定网格级与四个或四个以上网格单元相交时,会把该几何图形提升到下一个更高网格级。因此,对于具有 10.0e0、100.0e0 和 1000.0e0 三个网格级的 Spatial 索引, DB2 Spatial Extender 将首先使每个几何图形与 10.0e0 级网格相交。 若某个几何图形与四个或四个以上 10.0e0 网格单元相交,则会提升它并使它与 100.0e0 级网格相交。 若在 100.0e0 网格级产生了四个或四个以上的交点,则会把该几何图形提升到 1000.0e0 网格级。 在 1000.0e0 网格级,必须将交点输入 Spatial 索引,因为这是可能的最高网格级。

图 7说明四种不同类型的几何图形如何与 10.0e 相交。 将四种几何图形的所有 23 个交点记录在 Spatial 索引中。

图 7. 10.0e0 网格级的应用


[图形]

表 38列示几何图形及其对应的网格交点。 四种不同几何图形类型的包络与 10.0e 网格相交。 将与每个网格单元相交的最小 X 和 Y 坐标输入 Spatial 索引中。

表 38. 示例几何图形的 10.0e0 网格单元项
几何图形 网格 X 网格 Y

多边形

20.0

30.0

多边形

30.0

30.0

多边形

40.0

30.0

多边形

20.0

40.0

多边形

30.0

40.0

多边形

40.0

40.0

多边形

20.0

50.0

多边形

30.0

50.0

多边形

40.0

50.0

垂直线条

50.0

30.0

垂直线条

50.0

40.0

垂直线条

50.0

50.0


20.0

20.0

水平线条

20.0

20.0

水平线条

30.0

20.0

水平线条

40.0

20.0

水平线条

50.0

20.0

水平线条

60.0

20.0

水平线条

20.0

30.0

水平线条

30.0

30.0

水平线条

40.0

30.0

水平线条

50.0

30.0

水平线条

60.0

30.0

图 8显示如何通过增加网格级 30.0e0 和 60.0e0 将交点数显著减少至八个。 在此情况下,将标识为几何图形 1 的多边形提升到网格级 30.0e0, 将标识为几何图形 4 的线条提升到网格级 60.0e0。 这两个几何图形在 10.0e0 网格级分别有九个和十个交点,而在提升之后它们只有两个交点。

图 8. 添加网格级 30.0e0 和 60.0e0 的效果. 标识为几何图形 1 的多边形的包络与九个网格单元相交。 标识为几何图形 2 的垂直线条的包络与三个网格单元相交。 标识为几何图形 3 的点的包络只与一个网格单元相交。 标识为几何图形 4 的线条的包络与十个网格单元相交。


[图形]

DB2 Spatial Extender 采用 CREATE INDEX 语句中指定的网格级参数并检查每个 Spatial 对象,以确定对象所在的网格块的坐标和数目。在图 8中, 用递增的线宽和不同的灰度显示网格级 10.0e0、30.0e0 和 60.0e0。 将垂直线条和点包络单元交点输入 10.0e0 网格级的索引,因为这二者生成的交点都少于四个。 多边形与九个 10.0e0 网格单元相交,因此它被提升到 30.0e0 网格级。 在此网格级,多边形与两个网格单元相交,这两个网格单元被输入索引。 标识为几何图形 4 的线条与十个 10.0e0 网格单元相交,因此它被提升到 30.0e0 网格级。然而在此网格级,它与六个网格单元相交, 因此它再次被提升到 60.0e0 网格级,在此网格级它生成两个交点。然后线条 60.0e0 网格交点被输入索引。 若线条在此网格级生成四个或四个以上交点,仍会将这些交点输入索引, 因为这是可将几何图形提升到的最高网格级。

表 39. 三层索引中的几何图形的交点

几何图形

网格 X

网格 Y

网格级 1(10.0e0 网格大小)中垂直线条和点之间的交点

2

50.0

30.0

2

50.0

40.0

2

50.0

50.0

3

20.0

20.0

网格级 2(30.0e0 网格大小)中多边形的交点
1 0.0 30.0
1 30.0 30.0
网络级 3(60.0e0 网格大小)中线条的交点
4 0.0 0.0
4 60.0 0.0

DB2 Spatial Extender 实际上不会创建任何种类的多边形网格结构。DB2 Spatial Extender 通过将原点定义在列的 Spatial 参考系的 X,Y 偏移处以参数方式表示每个网格级。 它然后将网格扩展到正的坐标空间。 DB2 Spatial Extender 使用参数网格在数学上生成交点。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]