Ir para o conteúdo

osmc:Metodologia/Algoritmo SQL/Lib: mudanças entre as edições

Algoritmo e funções finais de resolução
(Algoritmo e funções finais de resolução)
Linha 162: Linha 162:


Cada célula da cobertura ''L0'' já tem seu código de 4 bits (dígito hexadecimal), em seguida qualquer outra célula de qualquer nível hierárquico terá um código ''cbits'' do nível ''L'' com ''L*2'' bits obtidos das coordenadas IJ  através da função <code>ints_to_interleavedbits(i,j)</code>. O tamanho de lado da célula do nível ''L'', no caso do Brasil, será <math>2^{20-L}</math> metros. A célula de 1 m é justamente a célula do nível ''L20'', portanto terá <math>20*2=40</math> bits de comprimento, concatenados aos 4 bits de L0 e ao prefixo do país.
Cada célula da cobertura ''L0'' já tem seu código de 4 bits (dígito hexadecimal), em seguida qualquer outra célula de qualquer nível hierárquico terá um código ''cbits'' do nível ''L'' com ''L*2'' bits obtidos das coordenadas IJ  através da função <code>ints_to_interleavedbits(i,j)</code>. O tamanho de lado da célula do nível ''L'', no caso do Brasil, será <math>2^{20-L}</math> metros. A célula de 1 m é justamente a célula do nível ''L20'', portanto terá <math>20*2=40</math> bits de comprimento, concatenados aos 4 bits de L0 e ao prefixo do país.
=== Algoritmo e funções finais de resolução ===
Algoritmo principal:
# ''pt'' na projeção do Brasil, ou seja, com coordenadas planas ''x'' e ''y''.
# <code>ij0=grid_br.xyS_collapseTo_ijS(x,y);  xy0=grid_br.ijS_to_xySref(ij0);</code>
# <code>cbits0 = grid_br.IJ0_to_L0( ij0 )</code>
# <code>cbits = cbits0 || ints_to_interleavedbits(x-x0, y-y0, 20-level_desejado)</code>
É um pouco mais complexo, para contemplar os casos de pontos sobre cobertura fantasma. Existe uma condição de validade e um ajuste do ponto ao nível:
:<code>SE lenght(cbits0)>0 e level_desejado<1.5 THEN NULL;  ELSE recalcula xy0 dentro da célula.</code>


==Demais convenções==
==Demais convenções==
2 391

edições