Grade logística dos municípios Brasil
create database <NOME_BANCO>;
Insira o comando abaixo para entrar no banco recém-criado
\c <nome_banco>;
Habilite a base de dados para trabalhar com dados geográficos por meio do comando abaixo.
create extension postgis;
Com a base de dados criada e habilitada para trabalhar com dados geográficos, agora precisamos prepará-la para lidar com rotulação hierárquica por meio de scripts SQL do repositório https://github.com/AddressForAll/WhitePaper01.
Vá para o diretório /var/gits/_a4a/ e insira o comando abaixo para clonar o repositório WhitePaper01.
git clone https://github.com/AddressForAll/WhitePaper01
Acesse o diretório /var/gits/_a4a/WhitePaper01/sql e execute sequencialmente os comandos abaixo.
psql <nome_base_de_dados> < prepare0-binCodes.sql
psql <nome_base_de_dados> < prepare1-binCodes.sql
Consulta para verificar se um determinado nível de grade está disponível para todos os municípios brasileiros
select count(*) FROM grid_br.all_levels where hlevel = 3.5; -- 1984
select count(*) FROM grid_br.all_levels where hlevel = 7.5; -- 142
O quantitativo da coluna hlevel para a grade de nível 3.5, por exemplo, é superior ao nível de grade 7.5. Dessa forma, para muitos municípios a grade de nível 7.5 não estará disponível para visualização.
Consulta para verificação de cobertura lógistica otimizada
select t.isolabel_ext, count(*) n_cells, array_agg(p.code_b16h) cover from grid_br.vw_level07_0_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom group by 1 order by 1;
Criação de tabela de reindexação das células para base 32 com apenas um dígito
create table grid_br.caruaru_cover as select natcod.vbit_to_strstd(substring((ROW_NUMBER() OVER())::bit(32),32-4),'32nvu') as idx_b32nvu, * from (
select p.* cover from grid_br.vw_level07_0_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom where t.isolabel_ext like '%Caruaru' order by gid_vbit) TT;
create table grid_br.nova_friburgo_cover as select natcod.vbit_to_strstd(substring((ROW_NUMBER() OVER())::bit(32),32-4),'32nvu') as idx_b32nvu, * from (
select p.* cover from grid_br.vw_level07_0_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom where t.isolabel_ext like '%NovaFriburgo' order by gid_vbit) TT;
create table grid_br.sao_bento_sapucai_cover as select natcod.vbit_to_strstd(substring((ROW_NUMBER() OVER())::bit(32),32-4),'32nvu') as idx_b32nvu, * from (
select p.* cover from grid_br.vw_level07_5_poc p inner join grid_br.vw_poc t ON t.geom&&p.geom where t.isolabel_ext like '%SaoBentoSapucai' order by gid_vbit) TT;