Conversor de shapefile

Este conversor de shapefile abre um shapefile, mostra-o em um mapa com a tabela de atributos e o salva como GeoJSON, KML, GeoPackage, CSV ou DXF. Tudo roda no seu navegador com o GDAL, então os arquivos não são enviados. Ele precisa de pelo menos .shp, .shx e .dbf, aceita até cerca de 200 MB, e GeoJSON e KML são sempre gravados em WGS84.

Um arquivo não foi convertido corretamente? Escreva para [email protected], de preferência com um pequeno arquivo de exemplo, e o problema será corrigido.

O essencial

Um só conversor para todos os formatos

Converter shapefile é quase sempre o primeiro passo quando chegam dados do IBGE, de uma prefeitura ou de um portal de dados abertos. Um shapefile não é um arquivo só, e sim um conjunto de arquivos com o mesmo nome: o .shp guarda as geometrias, o .shx o índice delas, o .dbf a tabela de atributos, o .prj o sistema de referência e o .cpg a codificação do texto. Por isso ele é chato de enviar e muitas ferramentas web não conseguem abri-lo. Este conversor lê o conjunto inteiro, em um .zip ou em arquivos separados, e antes de tudo mostra o que há dentro: as feições no mapa, todos os campos da tabela de atributos e o sistema de coordenadas do .prj, por exemplo SIRGAS 2000 / UTM zona 23S. Depois você escolhe o formato de saída. GeoJSON serve para mapas web e APIs, KML para o Google Earth e o Google My Maps, GeoPackage é o formato de arquivo único que o QGIS usa por padrão, CSV abre a tabela de atributos no Excel e DXF leva as geometrias para o AutoCAD. A conversão usa o GDAL, a biblioteca de código aberto por trás do QGIS, compilada para rodar no navegador, de modo que dados de clientes e projetos ainda não publicados não saem do seu computador. Se você já sabe de qual formato precisa, as páginas indicadas abaixo explicam cada conversão em mais detalhes.

Como converter um shapefile

  1. Solte um .zip com o shapefile ou selecione juntos os arquivos .shp, .shx, .dbf e .prj.
  2. Confira o mapa, a tabela de atributos e o sistema de coordenadas mostrados no resumo.
  3. Escolha o formato de saída e as opções e clique em Converter para baixar o arquivo.

O que muda em cada formato de saída

GeoJSON e KML ficam sempre em WGS84

Os dois formatos guardam por definição longitude e latitude em WGS84, então um shapefile em SIRGAS 2000 / UTM zona 23S (EPSG:31983), em outra zona UTM ou em PT-TM06 (EPSG:3763) é reprojetado com base no .prj. GeoPackage, CSV e DXF mantêm as coordenadas originais, a menos que você informe outro código EPSG. Se o .prj estiver faltando e as coordenadas não estiverem em graus, o conversor pergunta em qual sistema os dados estão.

Nem todo formato mantém os atributos

GeoJSON, KML, GeoPackage e CSV mantêm todos os campos da tabela .dbf. O DXF é um formato de desenho sem tabela de atributos, então só as geometrias são mantidas, com uma camada CAD por shapefile ou por valor de um campo que você escolher. No KML, os campos viram dados do marcador, e você escolhe qual campo vira o rótulo no Google Earth.

Nomes de campos continuam com 10 caracteres

O .dbf limita os nomes de campos a 10 caracteres, então um campo criado como area_imovel_ha já se chama area_imove no shapefile. Converter para GeoJSON ou GeoPackage não traz o nome longo de volta; só impede que ele seja encurtado de novo.

Vários shapefiles de uma vez

Um .zip com vários shapefiles vira um único GeoPackage com uma camada por shapefile, um único KML com uma pasta por shapefile ou um único DXF com uma camada por shapefile. GeoJSON e CSV guardam uma só tabela por arquivo, então você recebe um .zip com um arquivo para cada shapefile.

Codificação do texto sem arquivo .cpg

Sem um .cpg, o .dbf não diz como o texto está codificado. O conversor verifica se o texto é UTF-8 válido e, se não for, lê como Windows-1252, o que corrige a maioria das letras quebradas, como ã no lugar de ã ou ç no lugar de ç. Confira os nomes com acento na tabela de atributos antes de converter.

Sobre os formatos

Shapefile

O shapefile da Esri é o formato vetorial de SIG mais usado. Um “shapefile” é, na verdade, um conjunto de arquivos com o mesmo nome: o .shp guarda a geometria, o .shx um índice, o .dbf a tabela de atributos, o .prj opcional o sistema de coordenadas e o .cpg a codificação do texto.

  • Precisa de pelo menos .shp, .shx e .dbf. Selecione-os juntos ou em um único .zip.
  • Os nomes de campo são limitados a 10 caracteres e os valores de texto a 254.
  • Cada shapefile contém um só tipo de geometria: pontos, linhas ou polígonos.
  • Sem um arquivo .prj, o sistema de coordenadas é desconhecido.

Perguntas frequentes

Como converter shapefile sem ArcGIS ou QGIS?

Solte o shapefile nesta página, como .zip ou em arquivos separados, escolha o formato de saída e clique em Converter. A conversão roda com o GDAL dentro do seu navegador, então não é preciso instalar nada e os arquivos ficam no seu computador.

Para qual formato devo converter um shapefile?

Para GeoPackage se os dados vão para outro usuário de SIG, porque ele guarda o sistema de coordenadas, os atributos e várias camadas em um único arquivo. Para GeoJSON em mapas web e para desenvolvedores, KML para o Google Earth e o Google My Maps, CSV para abrir a tabela no Excel e DXF para desenhos no AutoCAD.

Por que ele pede o .shx e o .dbf além do .shp?

O .shp guarda só as geometrias. O .shx é o índice que localiza cada geometria e o .dbf guarda os atributos, então sem os três o shapefile não pode ser lido. O .prj é opcional, mas é necessário para posicionar os dados corretamente no mapa.

Existe limite de tamanho?

O conversor aceita arquivos de até cerca de 200 MB no total, que é mais ou menos o que um navegador consegue manter na memória durante uma conversão. Um shapefile, por sua vez, não pode passar de 2 GB por arquivo .shp ou .dbf. Para dados maiores, use o ogr2ogr do GDAL no seu computador.

Dá para converter outros formatos para shapefile?

Sim. A lista desta página leva aos conversores de KML, GeoJSON, GeoPackage, DXF e Excel para shapefile. Eles separam pontos, linhas e polígonos misturados em um shapefile por tipo de geometria e gravam um .prj e um .cpg com cada um.