Um índice espacial é gerado com o uso de envelopes. O envelope é uma geometria em si e representa a extensão mínima e máxima de X e Y de uma geometria. Para maioria das geometrias, o envelope é uma caixa, mas para linhas horizontais e verticais, o envelope é uma linha com dois pontos. Para os pontos, o envelope é o próprio ponto. Para obter mais informações sobre envelopes, consulte Envelope.
O índice espacial é construído em uma coluna espacial produzindo uma ou mais entradas para as interseções de cada envelope da geometria com a grade. Uma interseção é registrada como a ID interna da geometria e das coordenadas mínimas X e Y da célula de grade atravessada. Por exemplo, o polígono na Figura 7 intersecta a grade nas coordenadas (20,30), (30,30), (40,30), (20,40), (30,40), (40,40), (20,50), (30,50) e (40,50). Consulte Tabela 38 para obter as coordenadas mínimas X e Y para todas as geometrias na Figura 7.
Se houver vários níveis de grade, o DB2 Spatial Extender tenta utilizar o nível de grade mais baixo possível. Quando uma geometria intersecta quatro ou mais células da grade no nível fornecido, ela é promovida para o próximo nível mais alto. Sendo assim, um índice espacial que possui três níveis de grade de 10.0e0, 100.0e0 e 1000.0e0, o DB2 Spatial Extender intersecta primeiro cada geometria com a grade de nível 10.0e0. Se uma geometria intersecta quatro ou mais células de grade 10.0e0, ela é promovida e faz interseção com a grade de nível 100.0e0. Se quatro ou mais interseções resultam no nível 100.0e0, a geometria é promovida para o nível 1000.0e0. No nível 1000.0e0, as interseções devem ser fornecidas no índice espacial pois este é o nível mais alto possível.
A Figura 7 ilustra como quatro tipos diferentes de geometrias intersectam uma grade 10.0e. Todas as 23 interseções para as quatro geometrias são registradas no índice espacial.
Figura 7. Aplicação de um nível de grade 10.0e0
![]() |
A Tabela 38 relaciona as geometrias e suas interseções de grades
correspondentes. Os envelopes de quatro tipos de geometrias diferentes
intersectam a grade 10.0e. A coordenada mínima X e Y de cada
célula de grade que ela intersecta é fornecida no índice espacial.
Tabela 38. As entradas da célula de grade 10.0e0 para os exemplos de geometrias
Geometria | Grade X | Grade Y |
---|---|---|
Polígono
|
20.0
|
30.0
|
Polígono
|
30.0
|
30.0
|
Polígono
|
40.0
|
30.0
|
Polígono
|
20.0
|
40.0
|
Polígono
|
30.0
|
40.0
|
Polígono
|
40.0
|
40.0
|
Polígono
|
20.0
|
50.0
|
Polígono
|
30.0
|
50.0
|
Polígono
|
40.0
|
50.0
|
Linha vertical
|
50.0
|
30.0
|
Linha vertical
|
50.0
|
40.0
|
Linha vertical
|
50.0
|
50.0
|
Ponto
|
20.0
|
20.0
|
Linha Horizontal
|
20.0
|
20.0
|
Linha Horizontal
|
30.0
|
20.0
|
Linha Horizontal
|
40.0
|
20.0
|
Linha Horizontal
|
50.0
|
20.0
|
Linha Horizontal
|
60.0
|
20.0
|
Linha Horizontal
|
20.0
|
30.0
|
Linha Horizontal
|
30.0
|
30.0
|
Linha Horizontal
|
40.0
|
30.0
|
Linha Horizontal
|
50.0
|
30.0
|
Linha Horizontal
|
60.0
|
30.0
|
A Figura 8 mostra como o número de interseções é notavelmente reduzido para oito através do acréscimo dos níveis de grade 30.0e0 e 60.0e0. Neste caso, o polígono identificado como geometria 1 é promovido para o nível de grade 30.0e0 e a linha identificada como geometria 4 é promovida para o nível de grade 60.0e0. Ao invés de nove e dez interseções que as geometrias tinham no nível 10.0e0, elas tem apenas duas após a promoção.
Figura 8. Efeito do acréscimo dos níveis de grade 30.0e0 e 60.0e0. O envelope do polígono identificado como a geometria 1 intersecta nove células da grade. O envelope da linha vertical identificado como geometria 2 intersecta três células da grade. O envelope do ponto identificado como geometria 3 intersecta apenas uma célula da grade. O envelope da linha identificada como geometria 4 intersecta dez células da grade.
![]() |
O DB2 Spatial Extender obtém os parâmetros de nível de grade especificados
na instrução CREATE INDEX e verifica cada objeto espacial para determinar as
coordenadas e o número de blocos da grade em que o objeto existe. Na Figura 8, os níveis de grade 10.0e0, 30.0e0 e
60.0e0 são exibidos com pesos de linha sempre crescentes e diferentes
tonalidades de cinza. As interseções da linha vertical e da célula do
envelope de ponto são fornecidas no índice no nível de grade 10.0e0,
pois ambas geram menos do que quatro interseções. O polígono intersecta
nove células de grade 10.0e0 e é promovido para o nível de grade
30.0e0. Neste nível, o polígono intersecta duas células de
grade, que são fornecidas no índice. A linha identificada como
geometria 4 intersecta dez células de grade 10.0e0 e é promovida para o
nível de grade 30.0e0. Ainda neste nível, ela intersecta seis
células de grade, e é então novamente promovida para o nível de grade
60.0e0, onde ela gera duas interseções. Depois, as interseções
da grade 60.0e0 da linha são fornecidas no índice. Se a linha
tivesse gerado quatro ou mais interseções neste nível, elas ainda teriam sido
fornecidas no índice pois este é o nível mais alto em que uma geometria pode
ser promovida.
Tabela 39. As interseções das geometrias no índice de três fileiras
Geometria
|
Grade X
|
Grade Y
|
---|---|---|
As interseções entre a linha vertical e o ponto no nível 1 (tamanho de grade 10.0e0) | ||
2
|
50.0
|
30.0
|
2
|
50.0
|
40.0
|
2
|
50.0
|
50.0
|
3
|
20.0
|
20.0
|
As interseções do polígono no nível 2 (tamanho de grade 30.0e0) | ||
1 | 0.0 | 30.0 |
1 | 30.0 | 30.0 |
As interseções da linha no nível 3 (tamanho de grade 60.0e0) | ||
4 | 0.0 | 0.0 |
4 | 60.0 | 0.0 |
Na verdade, o DB2 Spatial Extender não cria uma estrutura de grade do polígono de tipo algum. O DB2 Spatial Extender demonstra cada nível de grade, de forma paramétrica, definindo a origem no deslocamento de X,Y do sistema de referência espacial das colunas. Depois, ele estende a grade até o espaço da coordenada positiva. Utilizando uma grade paramétrica, o DB2 Spatial Extender gera, matematicamente, as interseções.