osmc:Metodologia/Algoritmo SQL/Lib
Lib de Grades
Biblioteca para simplificar a geração de grades. Exemplificando implementação dentro do schema grid_br
das grades do Brasil. Convensionou-se em GGeohash usar YX no lugar de XY.
A seguir avaliando o uso default de XYref no lugar de XYcenter, para o desenho da célula.
drop FUNCTION grid_br.xyS_collapseTo_ijS;
CREATE FUNCTION grid_br.xyS_collapseTo_ijS(y int, x int, s int default 1048576) RETURNS int[] AS $f$
SELECT array[ (y-6727000)/s, (x-2715000)/s, s ]
$f$ LANGUAGE SQL IMMUTABLE;
CREATE FUNCTION grid_br.xyS_collapseTo_ijS(yxs int[]) RETURNS int[] AS $wrap$
SELECT grid_br.xyS_collapseTo_ijS(yxl[1], yxl[2], yxl[3])
$wrap$ LANGUAGE SQL IMMUTABLE;
drop FUNCTION grid_br.xylevel_collapseTo_ijS;
CREATE FUNCTION grid_br.xylevel_collapseTo_ijS(y int, x int, level int default 0) RETURNS int[] AS $wrap$
SELECT grid_br.xyS_collapseTo_ijS($1, $2, s::int)
FROM (select 2^(20-level)) t(s)
$wrap$ LANGUAGE SQL IMMUTABLE;
CREATE FUNCTION grid_br.xylevel_collapseTo_ijS(yxl int[]) RETURNS int[] AS $wrap$
SELECT grid_br.xyS_collapseTo_ijS(yxl[1], yxl[2], yxl[3])
$wrap$ LANGUAGE SQL IMMUTABLE;
teste
Fonte 80%
select lkjsdklsj+2;
Fonte normal:
select lkjsdklsj+2;