#!/usr/bin/env bash # ────────────────────────────────────────────────────────────── # Baixa GeoJSON de estados e municípios da API do IBGE (v3) # e organiza na estrutura esperada pelo componente EliEntradaCoordenadas. # # Estrutura gerada: # ./geo/ # ├── estados.geojson # └── municipios/ # ├── 11.geojson (RO) # ├── 12.geojson (AC) # └── ... # # Após rodar, faça upload para o MinIO: # mc cp --recursive ./geo/ paiol/geo/ # ────────────────────────────────────────────────────────────── set -euo pipefail BASE_URL="https://servicodados.ibge.gov.br/api/v3/malhas" QUALIDADE="minima" FORMATO="application/vnd.geo+json" SAIDA="./geo" UFS=(11 12 13 14 15 16 17 21 22 23 24 25 26 27 28 29 31 32 33 35 41 42 43 50 51 52 53) mkdir -p "$SAIDA/municipios" echo "📥 Baixando estados..." curl -sS "$BASE_URL/paises/BR?intrarregiao=UF&formato=$FORMATO&qualidade=$QUALIDADE" \ -o "$SAIDA/estados.geojson" TAMANHO=$(du -h "$SAIDA/estados.geojson" | cut -f1) echo " ✅ estados.geojson ($TAMANHO)" echo "" echo "📥 Baixando municípios por UF..." for UF in "${UFS[@]}"; do echo -n " UF $UF... " curl -sS "$BASE_URL/estados/$UF?intrarregiao=municipio&formato=$FORMATO&qualidade=$QUALIDADE" \ -o "$SAIDA/municipios/$UF.geojson" TAMANHO=$(du -h "$SAIDA/municipios/$UF.geojson" | cut -f1) echo "✅ ($TAMANHO)" sleep 0.5 # respeitar rate-limit do IBGE done echo "" TOTAL=$(du -sh "$SAIDA" | cut -f1) echo "🎉 Concluído! Total: $TOTAL em $SAIDA/" echo "" echo "Para enviar ao MinIO:" echo " mc alias set paiol https://paiol.idz.one CHAVE_ACESSO CHAVE_SECRETA" echo " mc cp --recursive $SAIDA/ paiol/geo/"