[Obsoleto. A atualização está em no artigo Como gerei mapas dos 5570 municípios brasileiros no Google Earth]
Existem ilustrações vetoriais de limites geográficos político-administrativos e mapas de todos os 5566 municípios brasileiros na Wikipedia [em 2017, já são 5570], graças ao trabalho de um usuário que converteu ilustrações do IBGE em formato CorelDraw (CDR) para Scalable Vector Graphics (SVG).
Mas eu queria também arquivos vetoriais no formato KML do Google Earth (GE), para evitar ter que gerar e posicionar manualmente overlays de imagens PNG convertidos dos SVG, que ficam com resolução ruim vistos de perto. Pesquisando no site do IBGE, descobri arquivos de “malha digital” em formato ESRI shapefile, que é um padrão de facto de dados geográficos. Cavando mais na internet, descobri programas para converter dados geográficos com suporte para formato KML do GE. Então, gerei um KML com os limites geográficos de 5566 (já são 5570, mas não há ainda o mapa dos novos) municípios brasileiros com dados de 2007 do IBGE. O arquivo ficou com 10.8 MB, mas, apesar de grande, carrega relativamente rápido no Google Earth.
[Atualização: O Google Earth Professional, agora distribuído gratuitamente, abre diretamente shapefiles. É para Windows, mas roda bem no GNU/Linux sobre a camada de compatibilidade Wine. Ele importa os SHP, mas o nome dos municípios não fica no lugar certo do arquivo. Ainda é necessário colocar o nome pela procura-e-troca no Notepad++, conforme descrito abaixo].
Para obter o KML de um único município, procurei-o pela caixa de procura dos “Lugares” do GE, copiei e colei na própria janela de placemarks do Google Earth. Com a receita abaixo e com outros conjuntos de dados do IBGE, é possível se gerar o KML por região, por estado, por mesorregião e por microrregião. Os dados de 2005 têm melhor resolução, de 50 metros. Os outros, resolução de 250 metros. As linhas são simplificadas, pois os arquivos ficariam gigantescos se a resolução fosse maior.
Arquivo original em formato ESRI shapefile convertido para KML pelo Linux, pacote gdal-bin, programa ogr2ogr. Linha de comando:
export OGR_FORCE_ASCII=NO
ogr2ogr -f "KML" -t_srs EPSG:4326 municipios.kml 55mu2500gsr.shp
Para os dados de 2005, o comando é este:
ogr2ogr -f "KML" -s_srs EPSG:4326 -t_srs EPSG:4326 brasil.kml 55mu500gc.sh
Os placemarks são gerados sem nome pelo ogr2ogr.
Para colocar os nomes, usei a procura e troca do Notepad++ através de expressões regulares (regexp). Usei o recurso de regexp em que a gente agrupa um padrão de busca entre parêntesis e recoloca este padrão no texto substituído, com \1, \2
etc. Assim, peguei cada nome dentro do campo <SimpleData name="NOME">Aceguá</SimpleData>
e inseri o campo <name>Aceguá</name>
dentro de cada placemark.
Para os dados de 2005 e 2007, procurei por:
<Placemark>(\n.*?\n.*?\n.*?\n.*?.*?NOME">)(.*)</SimpleData>
Os dados de 2010 precisam desta regexp:
<Placemark>(\n.*?\n.*?\n.*?\n.*?\n.*?\n.*?.*?MUNIC">)(.*)</SimpleData>
E os dados de 2013 precisam desta regexp:
<Placemark>(.*\n?.*\n?.*?\n.*\n?.*\n?.*MUNICIP">)
(.*)</SimpleData>
Troquei por:
<Placemark>\n\t<name>\2</name>\1\2</SimpleData>
Repare que o comando \2
é uma espécie de variável que insere o nome do município guardado pelo segundo grupo de parêntesis (.*)
. O comando \1
simplesmente repete o padrão encontrado no primeiro grupo de parêntesis, o comando \2
, repete o segundo grupo de “(…)”, etc.
Mas o arquivo gerado pelo ogr2ogr tem acentuação em formato ANSI ou ISO-8859-1 (por isso a configuração OGR_FORCE_ASCII=NO
, para conservar a codificação dos acentos). No Notepad++, precisei converter para ANSI e — sem salvar o arquivo — recarregá-lo e convertê-lo para UTF-8, que é a codificação do KML (padrão XML). É um comportamento estranho, converter e recarregar sem salvar, talvez porque o Notepad++ esteja rodando em Wine. Tenho que testar a conversão no Windows.
Aqui está o KMZ com todos os perímetros municipais brasileiros em 2007 em resolução de 250 metros. Arquivo com 10.8 MB. Também tem os perímetros municipais brasileiros em 2005, com melhor resolução, de 50 metros. Arquivo com 15 MB.
Para preparar uma tabela para o Google Fusion, preciso apenas do nome da cidade e do polígono relacionado a ela, separados por tabulação, num arquivo tipo TSV (valores separados por tabulação).
A expressão regular para os dados de 2013, então, é:
<Placemark>(.*\n?.*\n?.*\n?.*?\n.*\n?.*\n?.*?MUNICIP">)(.*)</SimpleData>.*?\n.*?\n
Que substituo por \2\t (o que foi encontrado mais uma tabulação). Depois limpo as marcações que sobraram, como:
\n.*?</Placemark>
E, à mão, limpo o início e fim do arquivo KML.
[2023-04-25 Nota do editor] Atualização deste post:
Colheita de soja. Foto: Wenderson Araujo/Trilux Fotógrafos de mídias rurais já perderam a conta das…
João Batista MezzomoAuditor fiscal O que está por trás de tudo o que está acontecendo…
A.k.a. "SexyCyborg". A mulher do século 21. Naomi Wu testa seu iluminador de implantes na…
A principal ferramenta do jornalista de dados é a planilha, tipo LibreOffice Calc, M.S. Excel…
Rita Almeida, 9 de março de 2019 Psicóloga Rita Almeida: não delirantes, mas deliroides. Não…
Rafael Azzi5 de outubro de 2018 Você se pergunta como um candidato com tão poucas…
View Comments
Olá, como faço para baixar a imagem do mapa com todos os municípios?
Olá, Eve. Baixe e abra no Google Earth os dados do IBGE com os mapas. Ajeite a visão que você achar melhor e tire uma foto da tela pelo menu "Arquivo > Salvar > Salvar imagem" (ou as teclas CTRL+ALT+S).
boa tarde meu amigo, sei que pode ser pedir muito mais você não poderia fazer um de 2020.
Claro, Robson! Tudo depende do IBGE, que precisa ter os dados. Mas acho que há alguns anos o Brasil conta com 5570 municípios. Os dados não mudaram nos últimos anos. Procure outro artigo aqui que fala nos 5570 municípios.
Boa tarde José Antônio e demais. Estou escrevendo um trabalho acadêmico e surgiu a necessidade de ter uma lista (.csv, por exemplo) com o nome de cada município e dos seus municípios vizinhos. Desde já eu peço desculpas pelo questionamento, acredito que a minha necessidade seja bem particular e não seja o foco da discussão aqui, mas ficarei muito grato caso algum de vocês possa dar uma dica de onde obtenho tal informação. Muito obrigado!
Olá, Rafael! Desculpe-me e pela demora. Espero que voc~e tenha encontrado a informação. De qualquer forma, essa informação, que circulava internamente no IBGE, está aqui: http://www.consultaesic.cgu.gov.br/busca/dados/Lists/Pedido/Attachments/503796/RESPOSTA_PEDIDO_RELATORIO_MUNICIPIOS_LIMTROFES_BRASIL%20(1).pdf.
A má notícia é que vocÊ vai ter que raspar estes dados para construir um CSV. Recomendo usar o Notepad++, busca e troca com expressões regulares. É um trabalho para umas duas semanas.
Boa noite tem o arquivo para selecionar os limites geográficos por Estado. Antigamente tinha essa possibilidade não consigo mais encontrar.
Desde já fico agradecido.
Olá, Alexandre!
Acesse o site FTP do IBGE, cujo link está na matéria, ali em cima. Na pasta do FTP tem os contornos do país, dos estados, das macrorregiões, das microrregiões e dos municípios. Baixe o arquivo que você quer (os nomes são estranhos, mas você vai intuir qual é qual. Municípios têm MU no nome etc. O tamanho do ZIP também é uma pista. O menor é do país. O quarto menor deve ser o dos estados). Des-zipe os arquivos numa pasta qualquer. São 4 ou 5 arquivos. Pelo Google Earth, abra o arquivo SHP. Este é o único que abre mas os outros arquivos são necessários.
O link de download deixou de funcionar... sempre indico para meus amigos.
Putz, é mesmo! O IBGE mudou os endereços. Obrigado pelo aviso (e pelo prestígio)! Vou procurar os novos links.
Ha, não! O Dropbox é que "fechou" a pasta Pública. Vou ter que acertar todos os links do meu site... :(
Estes eu já arrumei.
Por favor nesta data 11/11/2017 os links estão quebrados novamente...
Olá, Diderot!
Valeu o toque. Vou consertar.
Muito obrigado por este post me ajudou extremamente nos meus trabalhos.
Saudações!
Agradeço o prestígio, Romeu!
No site http://www.mapacenso.com.br é possivel ver qualquer setor censitário do censo do IBGE de 2010, pelo google maps, nokia here maps ou openstreetmaps.
Valeu a dica, Jorgyan!
Sou fã do IBGE!
Como faço pra obter somente o perímetro de Igarapé/MG?
Olá, Rondineli!
No painel da esquerda do Google Earth, localize a lista de cidades na seção "Lugares". Ao pé desta seção, acima da palavra "Camadas", há uma lupa para você procurar a cidade de Igarapé. Achada a cidade, clique com o outro botão do mouse em cima dela e escolha "Copiar". Abra uma nova pasta para seu projeto e cole o perímetro copiado nela. Desligue a lista de cidades e verá apenas Igarapé.
Qualquer dúvida, escreva!
Não funcionou e a palavra "camadas" nem aparece, o meu Google Hearth Pro, o melhor de todos.
P.S.: Acho o Google Earth Pro o melhor software já feito pelo ser humano.
Olá, Jeribaldo! Nem precisa funcionar. O GE Pro abre diretamente arquivos Shapefile.
Abraços!
Deu certo! Obrigado.
José, tu me poupou varias horas de trabalho, eu ia fazer isso manualmente aqui pra região onde eu trabalho no interior do Rio Grande do Sul, obrigado.
Que bom que os dados foram úteis, Lauro!
Abraços!
José Antonio muito obrigada! Estava precisando exatamente disso para meu trabalho de urbanismo!! Valeu!!!
Que ótimo ter sido útil, Tatiana!
Cuide porque agora são 5570 municípios. No site do IBGE tem os shapes novos só dos estados em que aumentaram os municípios. Rio Grande do Sul e mais dois que não me lembro.
Complementando: Pescaria Brava e Balneário Rincão (SC), Pinto Bandeira (RS) e Mojuí dos Campos (PA)
Rio Grande do Sul, Santa Catarina (dois) e Pará.
Complementando: Pescaria Brava e Balneário Rincão (SC), Pinto Bandeira (RS) e Mojuí dos Campos (PA)
Valeu, Fernando!
Complementando a informação: Pescaria Brava e Balneário Rincão (SC), Pinto Bandeira (RS) e Mojuí dos Camnpos (PA)