使用包封產生空間索引。 包封是幾何本身而且代表幾何的最小和最大 X 與 Y 範圍。 就大部份幾何而言,包封是一個方框,但對於水平和垂直線串來說,包封是兩點線串。 就點而言,包封是點本身。關於包封的其它資訊,請參閱包封。
透過為幾何包封與格線的交點製作一個或多個登錄,在空間直欄建構空間索引。 交點記錄成幾何的內部 ID 以及相交的格線資料格的最小 X 和 Y 座標。 例如,圖 7中的多邊形在座標 (20,30)、(30,30)、(40,30)、(20,40)、 (30,40)、(40,40)、(20,50)、(30,50) 和 (40,50) 相交格線。 關於圖 7中的幾何的最小 X 和 Y 座標, 請參閱表 38。
若有多重格線層次,那麼 DB2 Spatial Extender 會使用可能的最低格線層次。 一個幾何在給定的層次有相交的 4 個或更多個格線資料格時,它會升級至下一個更高層次。 因此,有 3 個格線層次 10.0e0、100.0e0 和 1000.0e0 的空間索引, DB2 Spatial Extender 會先與層次 10.0e0 格線的幾何相交。 若一個幾何與 4 個或更多個 10.0e0 格線資料格相交,它會升級而且與層次 100.0e0 格線相交。 若在 100.0e0 層次產生 4 個或更多個交點,該幾何就會升級至 1000.0e0 層次。 在 1000.0e0 層次上,必須將交點輸入此空間索引,因為這是最高的層次。
圖 7說明 4 種不同幾何如何與 10.0e 格線相交。 在此空間索引記錄這 4 個幾何的全部 23 個交點。
![]() |
表 38列示幾何與它們的對應格線交點。 4 個不同幾何類型包封與
10.0e 格線相交。 它相交的每一個格線資料格的最小 X 和 Y
座標會輸入到此空間索引。
幾何 | 格線 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, 將交點數目大幅減至 8 個。 本情況中,識別成幾何 1 的多邊形會升級至格線層次 30.0e0,識別成幾何 4 的線串會升級至格線層次 60.0e0。 在 10.0e0 層次上的幾何原本有 9 個和 10 個交點,升級之後它們只有兩個交點。
圖 8. 新增格線層次 30.0e0 和 60.0e0 的效果. 識別成幾何 1 的多邊形包封與 9 個格線資料格相交。 識別成幾何 2 的垂直線串包封與 3 個格線資料格相交。 識別成幾何 3 的點包封只與一個格線資料格相交。 識別成幾何 4 的線串包封與 10 個格線資料格相交。
![]() |
DB2 Spatial Extender 選取在 CREATE INDEX 陳述式指定的格線層次參數,
然後檢查每一個空間物件來決定此物件所在的格線區塊的座標和數目。 在圖 8中, 格線層次 10.0e0、30.0e0 和 60.0e0
連同不斷增加的線加權以及不同灰階一起顯示。 垂直線串和點包封資料格交點是輸入到
10.0e0 格線層次上的索引,因為這兩者產生的交點數目小於 4 個。 多邊形與 9
個 10.0e0 格線資料格相交,因此升級至 30.0e0 格線層次。
在本層次上,多邊形與兩個格線資料格相交,這兩個資料格輸入到此索引。 識別成幾何
4 的線串與 10 個 10.0e0 格線資料格相交,因此升級至 30.0e0
格線層次。 但是在本層次上,它與 6 個格線資料格相交,所以它再度升級至
60.0e0 格線層次, 在該層次中它產生兩個交點。然後線串 60.0e0
格線交點輸入到此索引。 若在本層次上線串產生 4
個或更多個交點,那麼這些交點仍會被輸入到此索引,
因為這是可以升級幾何的最高層次。
幾何
|
格線 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 透過在直欄空間參照系統的 X,Y 偏移上定義原點,以參數式表示格線層次。 然後它會延伸格線到正座標空間。使用參數式格線時,DB2 Spatial Extender 會以數學方式產生交點。