Un indice spaziale viene generato utilizzando le buste. La busta è una geometria che rappresenta la lunghezza minima e massima X e Y di una geometria. Per la maggior parte delle geometrie, la busta corrisponde a una casella, ma per le stringhe di righe orizzontali e verticali la busta corrisponde a una stringa di riga a due punti. Per i punti, la busta corrisponde al punto. Per ulteriori informazioni relative alle buste, vedere la sezione Inviluppo.
L'indice spaziale viene costruito su una colonna spaziale, creando una o più voci per le intersezioni di ciascuna busta di geometria con la griglia. Le intersezioni vengono registrate come ID interno della geometria e coordinate minime X e Y di intersezione della cella di griglia. Ad esempio il poligono riportato nella Figura 7 presenta un'intersezione con la griglia sulle coordinate (20,30), (30,30), (40,30), (20,40), (30,40), (40,40), (20,50), (30,50) e (40,50). Vedere la Tabella 38 per le coordinate minime X e Y per tutte le geometrie riportate nella Figura 7.
Se esistono più livelli di griglia, DB2 Spatial Extender tenterà di utilizzare il livello di griglia inferiore possibile. Le geometrie che intersecano quattro o più celle di griglia a un determinato livello, verranno promosse al successivo livello superiore. Pertanto se un indice spaziale presenta i tre livelli di griglia 10.0e0, 100.0e0 e 1000.0e0, DB2 Spatial Extender intersecherà ciascuna geometria con il livello di griglia 10.0e0. Le geometrie che intersecano quattro o più celle di griglia 10.0e0, verranno promosse e intersecate con la griglia di livello 100.0e0. Se quattro o più intersezioni risultano al livello 100.0e0, la geometria viene promossa al livello 1000.0e0. Al livello 1000.0e0, le intersezioni dovranno essere immesse nell'indice spaziale che è il massimo livello possibile.
La Figura 7 illustra le modalità di intersezione tra i quattro diversi tipi di geometrie e la griglia 10.0e. Tutte le 23 intersezioni per le quattro geometrie vengono registrate nell'indice spaziale.
Figura 7. Applicazione di un livello di griglia 10.0e0
![]() |
La Tabella 38 elenca le geometrie e le intersezioni di griglia
corrispondenti. Le buste di quattro diversi tipi di geometrie
intersecano la griglia 10.0e. Le coordinate minime X e Y di
ciascuna cella di griglia da esse intersecata, vengono immesse
nell'indice spaziale.
Tabella 38. Le voci della cella di griglia 10.0e0 per le geometrie di esempio
Geometria | Griglia X | Griglia Y |
---|---|---|
Poligono
|
20.0
|
30.0
|
Poligono
|
30.0
|
30.0
|
Poligono
|
40.0
|
30.0
|
Poligono
|
20.0
|
40.0
|
Poligono
|
30.0
|
40.0
|
Poligono
|
40.0
|
40.0
|
Poligono
|
20.0
|
50.0
|
Poligono
|
30.0
|
50.0
|
Poligono
|
40.0
|
50.0
|
Stringa di riga verticale
|
50.0
|
30.0
|
Stringa di riga verticale
|
50.0
|
40.0
|
Stringa di riga verticale
|
50.0
|
50.0
|
Punto
|
20.0
|
20.0
|
Stringa di riga orizzontale
|
20.0
|
20.0
|
Stringa di riga orizzontale
|
30.0
|
20.0
|
Stringa di riga orizzontale
|
40.0
|
20.0
|
Stringa di riga orizzontale
|
50.0
|
20.0
|
Stringa di riga orizzontale
|
60.0
|
20.0
|
Stringa di riga orizzontale
|
20.0
|
30.0
|
Stringa di riga orizzontale
|
30.0
|
30.0
|
Stringa di riga orizzontale
|
40.0
|
30.0
|
Stringa di riga orizzontale
|
50.0
|
30.0
|
Stringa di riga orizzontale
|
60.0
|
30.0
|
La Figura 8 mostra come il numero di intersezioni viene ridotto a otto aggiungendo i livelli di griglia 30.0e0 e 60.0e0. In questo caso, il poligono identificato come geometria 1 viene promosso al livello di griglia 30.0e0 e la stringa di riga identificata come geometria 4 viene promossa al livello di griglia 60.0e0. Dopo la promozione le intersezioni delle geometrie al livello 10.0e0 verranno ridotte da nove e dieci a due.
Figura 8. Effetti dell'aggiunta di livelli di griglia 30.0e0 e 60.0e0. La busta del poligono identificata come geometria 1 interseca nove celle di griglia. La busta della riga di stringa verticale identificata come geometria 2 interseca tre celle di griglia. La busta del punto identificata come geometria 3 interseca solo una cella di griglia. La busta della riga di stringa identificata come geometria 4 interseca dieci celle di griglia.
![]() |
DB2 Spatial Extender utilizza i parametri di livello di griglia specificati
nell'istruzione CREATE INDEX e verifica ciascun oggetto spaziale per
determinare le coordinate e il numero di blocchi di griglia contenenti
l'oggetto. Nella Figura 8, i livelli di griglia 10.0e0, 30.0e0 e
60.0e0 vengono illustrate righe crescenti di diverso spessore e
differenti gradazioni di grigio. Le intersezioni tra la stringa di riga
verticale e la cella di busta del punto vengono inserite nell'indice a
livello di griglia 10.0e0, poiché entrambe generano meno di quattro
intersezioni. Il poligono interseca nove celle di griglia 10.0e0
e viene pertanto promosso al livello di griglia 30.0e0. A questo
livello, il poligono interseca due celle di griglia, che vengono immesse
nell'indice. La stringa di riga identificata come geometria 4
interseca dieci celle di griglia 10.0e0 e viene pertanto promossa al
livello di griglia 30.0e0. A questo livello interseca quindi sei
celle di griglia e verrà quindi promossa al livello di griglia 60.0e0,
in cui genera due intersezioni. Le intersezioni di griglia
60.0e0 della stringa di riga vengono inserite in due indici. Se
la stringa di riga ha generato quattro o più intersezioni a questo livello,
queste verranno sempre inserite nell'indice che rappresenta il livello
superiore a cui una geometria può essere promossa.
Tabella 39. Intersezioni delle geometrie nell'indice a tre livelli
Geometria
|
Griglia X
|
Griglia Y
|
---|---|---|
Le intersezioni tra la stringa di riga verticale e il punto del livello 1 (dimensione griglia 10.0e0) | ||
2
|
50.0
|
30.0
|
2
|
50.0
|
40.0
|
2
|
50.0
|
50.0
|
3
|
20.0
|
20.0
|
Le intersezioni del poligono nel livello 2 (dimensione di griglia 30.0e0) | ||
1 | 0.0 | 30.0 |
1 | 30.0 | 30.0 |
Le intersezioni della stringa di riga nel livello 3 (dimensione di griglia 60.0e0) | ||
4 | 0.0 | 0.0 |
4 | 60.0 | 0.0 |
DB2 Spatial Extender attualmente non crea alcuna struttura di griglia del poligono. DB2 Spatial Extender indica ciascun livello di griglia in parametri, definendo l'origine all'offset X,Y del sistema di riferimento spaziale della colonna. Estende quindi la griglia in spazio di coordinata positivo. Utilizzando una griglia parametrica, DB2 Spatial Extender generate matematicamente le intersezioni.