Converter DXF para GeoJSON

Este conversor transforma um desenho DXF do AutoCAD, do BricsCAD ou de outro programa CAD em um único arquivo GeoJSON para mapas na web como Leaflet, Mapbox, OpenLayers e geojson.io. Você informa o sistema de coordenadas do desenho como código EPSG, e as coordenadas são convertidas para longitude e latitude, como o GeoJSON padrão exige. Cada feição mantém a layer do CAD, o tipo de entidade, o texto e a cor como propriedades. O DXF é lido no seu navegador e não é enviado.

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

De DXF para GeoJSON: por que converter?

Uma planta de situação, uma rede de infraestrutura ou um levantamento desenhado no CAD muitas vezes precisa ir para um mapa na web, um painel ou um script, e esses falam GeoJSON, não DXF. Esta página lê o DXF com o GDAL, a biblioteca de código aberto por trás do QGIS, converte as coordenadas do sistema do desenho (uma zona UTM como SIRGAS 2000 / UTM 23S, ou o PT-TM06 em Portugal) para longitude e latitude WGS84 e grava uma única FeatureCollection GeoJSON conforme a RFC 7946. Linhas e polilinhas viram LineStrings, polilinhas fechadas, círculos e hachuras viram Polygons, pontos e blocos viram as suas partes, e TEXT e MTEXT viram pontos com o texto em uma propriedade. A cor e a espessura do CAD também são gravadas como propriedades simplestyle, então o geojson.io e o GitHub mostram o desenho nas cores do CAD. A pré-visualização no mapa mostra onde o desenho cai antes de converter, e nada é enviado a um servidor.

Como converter DXF para GeoJSON

  1. Solte o arquivo .dxf na caixa ou clique para escolhê-lo. Um .dwg precisa ser salvo como DXF antes.
  2. Informe o sistema de coordenadas do desenho como código EPSG, por exemplo EPSG:31983 para SIRGAS 2000 / UTM zona 23S, ou clique em uma das sugestões, e confira se o mapa mostra o desenho no lugar certo.
  3. Mantenha ou desmarque “Polilinhas fechadas e círculos viram polígonos”, clique em “Converter para GeoJSON” e carregue o arquivo no seu mapa web, no geojson.io ou no QGIS.

O que muda na conversão

O código EPSG decide onde o desenho cai

Um DXF guarda as coordenadas como números simples, sem sistema de coordenadas, enquanto o GeoJSON padrão está sempre em longitude e latitude, então o conversor tem de saber o sistema do desenho. Valores como 333000, 7395000 são metros UTM (por exemplo SIRGAS 2000 / UTM 23S, EPSG:31983, em São Paulo); em Portugal, valores como -88000, -104000 costumam ser PT-TM06 (EPSG:3763). As sugestões abaixo do campo listam os sistemas em que os números fazem sentido. Com o código errado, o desenho cai no país errado ou deslocado algumas centenas de metros, o que a pré-visualização no mapa mostra antes de converter.

Desenhos em coordenadas locais

Desenhos de arquitetura costumam ser feitos em torno de 0,0, em milímetros ou metros, sem nenhuma ligação com o terreno. Nenhum código EPSG serve para eles, e a linha de status avisa quando o resultado cai perto de 0° de longitude e 0° de latitude, na costa da África. Um desenho assim precisa ser georreferenciado antes, por exemplo com o plugin Vector Bender do QGIS, ou movido para coordenadas de levantamento no CAD.

Propriedades de cada feição

Cada feição recebe Layer (a layer do CAD), Entity (como AcDbPolyline, AcDbCircle ou AcDbMText), Color no formato #rrggbb com PorLayer e PorBloco resolvidos, LineWidth em milímetros, Linetype e o Handle da entidade. Os textos recebem também Text, TextSize em unidades de desenho e TextAngle em graus no sentido anti-horário. Para estilizar por layer no Leaflet ou no Mapbox, use a propriedade Layer; para filtrar no QGIS, use-a em uma expressão.

Curvas viram segmentos retos

O GeoJSON não tem arcos, círculos nem splines, então eles viram muitos segmentos retos curtos. Blocos como árvores, poços de visita e indicações de norte são explodidos em suas linhas, círculos e textos, na layer em que o bloco foi inserido. Tipos de linha como tracejados, estilos de cota e layouts no espaço do papel com carimbos não são levados.

Altitudes e precisão das coordenadas

Altitudes reais, como as cotas das curvas de nível, são mantidas como terceira coordenada; desenhos planos ficam com duas. As coordenadas são gravadas com 7 casas decimais, cerca de 1 cm no terreno, o que mantém o arquivo pequeno sem mover nada de forma visível.

Sobre os formatos

DXF

DXF (Drawing Exchange Format) é o formato aberto de intercâmbio do AutoCAD, publicado pela Autodesk desde 1982. Agrimensores, arquitetos e engenheiros o usam para passar desenhos CAD de um programa para outro. Um DXF guarda linhas, polilinhas, arcos, círculos, textos, hachuras e blocos em layers com nome, mas não tem tabela de atributos nem sistema de coordenadas.

  • Texto simples (ou binário) com entidades de desenho em layers com nome; blocos são símbolos reutilizáveis, inseridos várias vezes.
  • Não há tabela de atributos: além da geometria, uma entidade tem layer, cor, tipo de linha e, no caso de textos, o próprio texto.
  • O sistema de coordenadas não fica guardado; as coordenadas são apenas números, muitas vezes no sistema oficial do país (como SIRGAS 2000 / UTM) ou em coordenadas locais da obra.
  • DWG é o formato binário próprio do AutoCAD e não é a mesma coisa que DXF.

GeoJSON

GeoJSON é um formato de texto JSON para feições geográficas, padronizado como RFC 7946 em 2016. É o formato nativo de mapas web como Leaflet, MapLibre e Mapbox, e de muitas APIs.

  • As coordenadas são longitude e latitude WGS84 (nessa ordem).
  • Pontos, linhas e polígonos podem ser misturados em um mesmo arquivo.
  • As propriedades podem ser qualquer valor JSON, sem limite de tamanho nos nomes de campo.

Perguntas frequentes

Posso obter o GeoJSON no sistema oficial do meu país em vez de longitude e latitude?

Não nesta página, porque o GeoJSON conforme a RFC 7946 precisa estar em WGS84 e a maioria dos mapas na web espera isso. Se você precisa do sistema do próprio desenho, converta o DXF para shapefile ou GeoPackage, que mantêm um sistema projetado.

Por que as linhas ficam pretas no meu mapa?

A cor 7 do CAD aparece branca numa tela de CAD escura e preta no papel; ela é gravada como #000000. As outras cores são mantidas como estão. As propriedades simplestyle stroke e fill guardam a mesma cor, então você também pode usá-las no seu próprio estilo de mapa.

Como descubro o código EPSG de um desenho?

Pergunte a quem fez o desenho, ou use as sugestões que aparecem abaixo do campo depois que o DXF é lido: elas listam os sistemas de coordenadas em que os números do desenho fazem sentido, e a pré-visualização no mapa mostra onde cada um o coloca.

Meu desenho é enviado para algum lugar?

Não. O DXF é lido e convertido pelo seu navegador, no seu próprio computador, e nada é enviado a um servidor.

Posso converter um GeoJSON de volta para DXF?

Sim, com o conversor de GeoJSON para DXF, que converte longitude e latitude para metros UTM ou para o sistema oficial do seu país e coloca cada arquivo em sua própria layer do CAD.