Converter KML para GeoJSON
A conversão de arquivos Google KML para GeoJSON transforma dados geográficos XML hierárquicos em JavaScript Object Notation vetorial leve para mapas web modernos.
Comparação de formatos e especificações técnicas
| Especificação | KML | GEOJSON |
|---|---|---|
| Tipo MIME | application/ | application/ |
| Tipo | notação geográfica XML | vetor geográfico JSON |
| Compressão | texto XML (KMZ quando compactado em ZIP) | nenhum (texto JSON) |
| Especificação padrão | OGC KML 2.3 | IETF RFC 7946 |
| Assinatura binária (magic bytes) | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header |
Visão geral e aplicações do formato
Os dados geográficos frequentemente transitam entre ferramentas de mapeamento de desktop e aplicações web. O Google KML é o formato padrão utilizado pelo Google Earth, estruturando pontos, linhas e polígonos dentro de uma árvore XML. Navegadores web modernos e bibliotecas de mapeamento como Mapbox e Leaflet preferem GeoJSON porque ele corresponde nativamente às estruturas de dados utilizadas pelo JavaScript. Desenvolvedores e analistas de SIG convertem KML para GeoJSON para carregar sobreposições de mapas rapidamente em páginas web sem a necessidade de programas para computador especializados. As aplicações web processam JSON rapidamente em comparação com a análise de grandes documentos XML. Quando os usuários carregam um mapa web, um arquivo GeoJSON alimenta diretamente os motores de renderização vetorial. Esta conversão elimina a sobrecarga de traduzir tags XML durante a execução. Ela permite que os mapas exibam milhares de elementos suavemente, mantendo geometrias de coordenadas precisas.
Especificações técnicas e análise de codecs
Google KML usa o tipo MIME application/vnd.google-earth.kml+xml e se baseia em texto XML. Quando compactado como arquivo KMZ, é um arquivo ZIP com compressão DEFLATE que contém um arquivo doc.kml e recursos externos. GeoJSON usa o tipo MIME application/geo+json e consiste em texto simples sem compressão, estruturado como objeto JSON. Arquivos KML geralmente começam com uma declaração XML, enquanto arquivos KMZ começam com os bytes de cabeçalho ZIP 50 4B 03 04. Arquivos GeoJSON começam com o caractere ASCII '{', que representa o objeto JSON raiz. Na conversão, a árvore XML é analisada, as matrizes de coordenadas e tags de metadados são extraídas e os dados são reescritos em coleções de elementos JSON compatíveis com a RFC 7946, sem perder a precisão das coordenadas.
Compatibilidade com sistemas operacionais e navegadores
Ambos os formatos funcionam em todos os sistemas operacionais modernos, incluindo Windows, macOS, Linux, iOS e Android. O GeoJSON é executado nativamente em todos os navegadores web modernos, como Chrome, Firefox, Safari e Edge, pois os navegadores analisam o JSON de forma nativa. O Google KML requer programas para computador especializado, como o Google Earth, ou ferramentas de tradução, como o QGIS, para renderizar corretamente, uma vez que os navegadores web não conseguem exibir arquivos KML nativamente sem bibliotecas de análise de terceiros.
Informações úteis
Antes de converter para GeoJSON, confira se o KML de origem usa coordenadas geográficas WGS 84 para evitar deslocamentos espaciais nos mapas web.
Perguntas frequentes
Como converter Google KML para GeoJSON sem perder qualidade?
A conversão preserva matematicamente os dados de coordenadas. Ambos os formatos usam o sistema de referência espacial WGS 84. No entanto, algumas regras de estilo do KML, como URLs de ícones personalizados e alturas complexas de extrusão de polígonos, podem não ter equivalentes diretos no GeoJSON padrão e talvez precisem ser recriadas manualmente.
Qual é a diferença entre Google KML e GeoJSON?
Google KML é uma linguagem baseada em XML, criada para visualizadores de globo terrestre, com estrutura hierárquica de nós que aceita estilos avançados, vistas de câmera e elementos 3D. GeoJSON é um formato leve baseado em JSON, otimizado para APIs web e gráficos vetoriais. Sua estrutura plana contém coleções de elementos, geometrias e propriedades simples.