2 585
edições
(Algoritmo e funções finais de resolução) |
|||
Linha 172: | Linha 172: | ||
É 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: | É 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)> | :<code>SE lenght(cbits0)>4 e level_desejado<1.5 THEN NULL; ELSE recalcula xy0 dentro da célula.</code> | ||
<syntaxhighlight lang="sql" style="font-size: 80%;"> | |||
drop FUNCTION if exists grid_br.xyS_collapseTo_ijS(int,int,int) | |||
; | |||
-- cuidado é YX! ver subtração | |||
CREATE FUNCTION grid_br.xyS_to_cbits( | |||
y int, | |||
x int, | |||
s int, | |||
use_country_prefix boolean false | |||
) RETURNS varbit AS $f$ | |||
SELECT CASE WHEN use_country_prefix THEN b'0001001100' ELSE b'' END | |||
|| cbits0 || ints_to_interleavedbits(x-xy0[1], y-xy0[2], 20-s) | |||
FROM ( | |||
SELECT grid_br.ijS_to_xySref(ij0) as xy0, grid_br.IJ0_to_L0(ij0) as cbits0 | |||
FROM (SELECT grid_br.xyS_collapseTo_ijS(x,y)) t0(ij0) | |||
) t1 | |||
$f$ LANGUAGE SQL IMMUTABLE; | |||
</syntaxhighlight> | |||
==Demais convenções== | ==Demais convenções== |
edições