Skip to content

About

Mapa aberto para explorar cadastros públicos de obras e infraestrutura no Brasil

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Radar de Obras

Aplicação aberta para explorar cadastros públicos de infraestrutura no Brasil em mapa, lista e fichas de projeto. A versão pública está em radar-obras.ricardoguia.com.

Estado atual

Esta versão usa o Obrasgov como fonte de obras. O repositório de desenvolvimento mantém uma amostra pequena para coleta e testes. A publicação usa um snapshot nacional gerado com os 130.581 cadastros que a API informou na coleta de 8 de setembro de 2026, dos quais 128.837 tinham coordenada aproveitável. Isso representa os registros disponíveis nessa fonte e nessa coleta, e não todas as obras existentes no Brasil.

O adaptador de hospedagem e o snapshot completo publicado estão no repositório complementar kadaum/radar-de-obras-site.

Os dez exemplos detalhados também estão preservados em data/seed.json. A planilha usada na pesquisa é um artefato local e não é gerada nem distribuída pelo app.

O protótipo oferece:

  • mapa MapLibre com agrupamento de pontos e cores por situação;
  • lista completa da seleção, busca textual, filtros por UF, situação e previsão de término vencida, investimento previsto e ordenação clicável por coluna;
  • busca de endereço, cidade ou CEP com Nominatim/OpenStreetMap e BrasilAPI;
  • ficha com localização, datas previstas e efetivas, andamento informado, responsável, investimento previsto, empenhos, contratos, histórico e link para o registro oficial;
  • atualização dos detalhes de uma ficha ao abri-la, limitada aos projetos que já fazem parte da amostra;
  • exportação da seleção atual em CSV;
  • layout adaptado para telas menores e alternativa em lista quando WebGL não está disponível.

O app mostra “previsão vencida” como uma regra sobre a data do cadastro. Isso não significa “atraso comprovado”. Também mantém investimento previsto, empenhado, liquidado e pago como conceitos separados.

Executar localmente

Requer uma versão atual do Node.js compatível com Vite 8.

cd radar-de-obras
npm ci
npm run build
npm start

Abra http://127.0.0.1:4176. Para usar outra porta:

PORT=4180 npm start

O servidor escuta apenas em 127.0.0.1. npm start serve o conteúdo de dist/; por isso, rode npm run build depois de alterar a interface.

Uma coleta pontual pode ser executada com:

npm run data

Atualização dos dados

O coletor local pode ser agendado a cada seis horas enquanto o processo estiver ativo. A publicação atual é um snapshot e só muda quando uma nova coleta validada é publicada; ela não deve ser apresentada como tempo real.

Há três relógios diferentes:

Campo Responsável Significado
sourceLoad Obrasgov Última carga geral que a fonte informou. Não indica quando cada obra mudou.
collectedAt coletor local Quando este processo consultou e salvou a amostra. Não significa que a fonte estava atualizada nesse instante.
dt_atualizacao_execucao órgão/fonte Data informada para o andamento de uma obra, quando existe. Pode ser anterior à coleta.

A página verifica a versão hospedada a cada cinco minutos. Ao abrir uma ficha, a camada publicada consulta o Obrasgov e mantém o resultado em cache por uma hora. Se a fonte estiver indisponível, a ficha conserva os campos do snapshot e informa a limitação.

Mapa, lista e detalhes

O mapa é a visão espacial da amostra. A lista é a visão comparável dos mesmos filtros. Selecionar um ponto, cartão ou linha abre a mesma ficha; selecionar uma obra com coordenada também aproxima o mapa e destaca o ponto. No mapa, no máximo 70 cartões são renderizados na barra lateral por desempenho, mas a visualização “Lista de obras” inclui toda a seleção filtrada.

A localização exibida vem do cadastro oficial quando há uma coordenada válida. O código compara latitude/longitude escalares com o POINT WKT e recusa conflitos silenciosos. Um ponto válido ainda é apenas uma localização representativa; não comprova o canteiro, o trecho ou o perímetro exato.

Uma busca procura nos registros carregados. Se não encontrar, ou se a pessoa escolher procurar como endereço, o servidor consulta Nominatim ou BrasilAPI. O resultado de geocodificação move o mapa, mas não é gravado como coordenada de obra.

Vista inclinada e contexto 2.5D

O botão de camadas ativa uma vista inclinada em MapLibre e extruda edifícios disponíveis no mapa vetorial do OpenStreetMap/OpenMapTiles. O app usa pitch, bearing e alturas publicadas ou estimadas para dar contexto urbano.

Essa vista é 2.5D de contexto. Ela não é Google Street View, fotogrametria, terreno 3D, BIM, modelo da obra nem prova visual do estado atual. As alturas podem estar ausentes ou estimadas. O ponto da obra continua com a mesma precisão do cadastro, mesmo quando o entorno parece tridimensional.

Fontes e serviços

O acesso público a uma API ou mapa não elimina licença, atribuição, limites de uso ou indisponibilidade. Dados da obra, mapa-base e geocodificação permanecem contratos separados.

Referência de produto: Bilawal Sidhu

O benchmark é o WorldView, hoje aberto como God’s Eye View. Bilawal Sidhu reuniu camadas geoespaciais públicas em um globo explorável, com seleção, filtros, acompanhamento de objetos, lista de contatos e fichas contextuais. O Radar de Obras aproveita o padrão de navegação do país ao item e a sincronização entre espaço, lista e detalhe. A estética militar, a promessa de “tempo real” e o 3D fotorrealista não fazem parte desta versão.

As referências editoriais usadas no benchmark são materiais de pesquisa mantidos fora deste repositório:

  • Vibe Coding a Live Open-Data Globe
  • Open-Source Signals Turn a Conflict Into 4D Playback
  • Street View as the seed for generative worlds

Pesquisa que fundamenta o protótipo

  • Bilawal Sidhu e referências para um mapa nacional de obras (material local)
  • Opções de mapa, geocodificação e 2.5D (material local)
  • Atualização e viabilidade operacional (material local)

Estrutura

src/main.js          interface, mapa, filtros, lista e ficha
src/data.js          normalização, coordenadas e previsão vencida
scripts/collect.mjs  coleta e gravação atômica do snapshot da amostra
server.mjs           servidor local, detalhes, geocodificação e agenda de 6h
data/seed.json       dez exemplos detalhados da pesquisa
data/projects.json   snapshot normalizado usado pelo app
data/raw-latest.json resposta bruta da coleta mais recente

Verificação conhecida

Em 2026-09-08, o build e os testes unitários passaram. O fluxo no Chromium headless foi exercitado com ficha, dinheiro, horários, filtros, lista, CSV, busca por CEP, vista inclinada e tela móvel. Os casos e as limitações estão em VALIDACAO.md. O build emite aviso de bundle JavaScript maior que 500 kB. Não há validação de operação contínua, auditoria completa de acessibilidade ou cobertura de múltiplos navegadores.

Próximos limites de produto

Ingestão nacional completa, integração PNCP, fotografias verificadas, avisos de interdição e histórico longitudinal ainda são trabalho futuro. A ordem e os critérios estão em PRODUTO-E-WORKFLOW.md.

Licença e dados

O código deste repositório é distribuído sob a Licença MIT. Os registros de obras, mapas, geocodificação, dependências e APIs de terceiros permanecem sujeitos às licenças, atribuições, limites de uso e termos de cada fonte. Os snapshots em data/ são amostras geradas a partir de fontes públicas; confirme a licença e a atualidade na origem antes de redistribuir ou atualizar os dados.

About

Mapa aberto para explorar cadastros públicos de obras e infraestrutura no Brasil

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages