Você importa um Shapefile de um colega, sobrepõe no seu mapa base — e os edifícios aparecem 200 metros a leste de onde deveriam estar. O arquivo .prj diz "GCS_WGS_1984" mas os dados foram coletados em SAD69. Esse tipo de desalinhamento custa horas de trabalho, e a causa é sempre a mesma: um código EPSG errado.
Um código EPSG é uma abreviação numérica para um sistema de referência de coordenadas (SRC). Diga EPSG:4326 e qualquer engenheiro GIS sabe que você está falando de WGS 84 — sem ambiguidade, sem precisar interpretar uma string WKT. Entender isso direito é o primeiro passo para evitar dados desalinhados.
De onde vêm os códigos EPSG?
EPSG é a sigla do European Petroleum Survey Group, fundado em 1985. O contexto: várias empresas petrolíferas faziam levantamentos offshore nas mesmas águas mas não conseguiam combinar seus dados porque cada empresa usava um sistema de coordenadas diferente. Jean-Patrick Girbig, geodesista-chefe da Elf Aquitaine, reuniu especialistas em geodesia da Agip, BP, Deminex, Shell, Statoil e Total para resolver o problema.
A primeira tarefa deles foi um banco de dados padronizado de SRC, lançado em 1993 com mais de 500 definições. Em 1995, o padrão GeoTIFF v1.0 adotou os códigos EPSG como identificador de SRC, tirando o EPSG da indústria petrolífera e levando-o para o GIS em geral.
Em 2005, o grupo de trabalho EPSG foi reorganizado sob a IOGP (Associação Internacional de Produtores de Petróleo e Gás), mas o nome EPSG permaneceu. Hoje o dataset EPSG (v12.053) contém mais de 7.000 definições de SRC, 2.500 métodos de projeção e 2.500 transformações de coordenadas — mais de 20.000 entradas no total.
O que exatamente é um código EPSG?
Um código EPSG é um identificador numérico de 4 a 5 dígitos (intervalo 1024–32767) que identifica unicamente um SRC, datum, elipsoide ou método de transformação de coordenadas no dataset EPSG. Sua base técnica é o padrão ISO 19111.
Notação padrão
O formato mais comum é authority:code:
EPSG:4326
O OGC também define um formato URL, frequentemente usado em serviços web:
http://www.opengis.net/def/crs/EPSG/0/4326
O que está dentro de uma definição EPSG?
Cada código corresponde a uma definição completa de SRC: parâmetros do elipsoide (semieixo maior, achatamento), datum, direções e ordem dos eixos de coordenadas, unidade de medida (graus ou metros) e a área geográfica de aplicação.
O problema mais comum é a ordem dos eixos. A definição padrão do EPSG:4326 especifica latitude primeiro (lat, lng), mas a maioria dos softwares GIS na prática passa longitude primeiro (lng, lat). GeoJSON usa lng, lat; o L.latLng() do Leaflet espera lat, lng — o bug resultante não parece uma troca óbvia de coordenadas, mas sim pontos dispersos aleatoriamente pelo mapa.
Códigos EPSG mais utilizados
| Código EPSG | Nome | Tipo | Unidade | Uso típico |
|---|---|---|---|---|
| 4326 | WGS 84 | Geográfico | Graus | GPS, intercâmbio global de dados |
| 3857 | Web Mercator | Projetado | Metros | Mapas web (Google Maps, OSM) |
| 4674 | SIRGAS 2000 | Geográfico | Graus | Brasil, padrão nacional (IBGE) |
| 31982 | SIRGAS 2000 / UTM Zone 22S | Projetado | Metros | Região Sudeste e Sul do Brasil |
| 31984 | SIRGAS 2000 / UTM Zone 24S | Projetado | Metros | Centro-Oeste do Brasil |
| 4269 | NAD83 | Geográfico | Graus | EUA, Canadá |
| 32601–32660 | Zonas UTM Norte | Projetado | Metros | Levantamentos locais de alta precisão |
| 32701–32760 | Zonas UTM Sul | Projetado | Metros | Levantamentos locais de alta precisão |
EPSG:4326 vs EPSG:3857 — Os dois códigos que todo mundo confunde
EPSG:4326 (WGS 84) é um SRC geográfico que representa posições em graus de latitude/longitude. A saída bruta do GPS é WGS 84. É o padrão para armazenamento e troca de dados.
EPSG:3857 (Web Mercator) é um SRC projetado que mapeia a Terra em um plano em metros. O Google Maps adotou essa projeção no lançamento em 2005, e praticamente todos os mapas web seguiram.
O EPSG inicialmente recusou registrar o 3857. A objeção: ele usa uma fórmula esférica aplicada a um datum elipsoidal, o que é matematicamente incorreto. O Google lançou mesmo assim, e quando o EPSG cedeu e atribuiu o código em 2009, todos os mapas web do planeta já estavam usando. Apesar da ubiquidade, o 3857 não é adequado para medições precisas de área ou distância — cerca de 0,33% de erro de escala em comparação com a projeção Mercator padrão.
A regra básica: 4326 para armazenamento, 3857 para exibição. O conversor de coordenadas do KunYu suporta a conversão entre os dois.
Como encontrar o código EPSG correto
Cenário 1: Você conhece o nome do SRC
Se você conhece o nome (ex.: "WGS 84" ou "SIRGAS 2000"), pesquise diretamente na ferramenta de busca EPSG. Ela suporta busca em mais de 8.000 definições EPSG por código, nome e região.
Cenário 2: Você conhece a localização, mas não o SRC
Quando você precisa de um SRC projetado adequado para uma área específica, use a ferramenta EPSG Finder — clique ou desenhe uma caixa no mapa, e ela lista todos os códigos EPSG cuja área de uso cobre aquela região.
Busca EPSG
Pesquise e navegue pelo banco de dados de sistemas de referência de coordenadas EPSG.
Try it nowCenário 3: Você recebeu dados sem informações de SRC
Verifique os arquivos de metadados fornecidos com os dados. Shapefiles têm um arquivo .prj (abra com qualquer editor de texto) contendo a definição do SRC em formato WKT. GeoTIFFs geralmente incorporam informações EPSG em seus metadados. Com GDAL:
# Verificar o SRC de um GeoTIFF
gdalsrsinfo input.tif
# Ler o arquivo .prj de um Shapefile
cat data.prj
Usando códigos EPSG em softwares GIS
QGIS: Propriedades do Projeto → painel SRC permite buscar e trocar o SRC por código EPSG. O QGIS usa EPSG:4326 como padrão.
GDAL/OGR: Especifique o SRC de destino diretamente com um código EPSG:
# Reprojetar um Shapefile de SIRGAS 2000 para WGS 84
ogr2ogr -s_srs EPSG:4674 -t_srs EPSG:4326 saida.shp entrada.shp
PROJ: O motor de transformação de coordenadas de código aberto. Seu banco de dados (proj.db) integra definições de SRC do EPSG, IGNF e ESRI.
No código, os códigos EPSG funcionam da mesma forma:
// Proj4js (JavaScript)
import proj4 from "proj4";
proj4.defs("EPSG:4674", "+proj=longlat +ellps=GRS80 +no_defs");
const result = proj4("EPSG:4326", "EPSG:4674", [-43.1729, -22.9068]);
# pyproj (Python)
from pyproj import Transformer
transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857", always_xy=True)
x, y = transformer.transform(-43.1729, -22.9068)
Perguntas frequentes
Qual é a diferença entre EPSG:4326 e CRS:84?
Ambos são WGS 84, mas com ordem de eixos diferente. A definição padrão do EPSG:4326 é latitude primeiro (lat, lng), enquanto CRS:84 é longitude primeiro (lng, lat). GeoJSON usa lng, lat, mas o L.latLng() do Leaflet espera lat, lng — confundir os dois é um bug comum.
Meus dados estão deslocados por dezenas a centenas de metros. Por quê?
A causa mais comum é um código EPSG errado. No Brasil, misturar WGS 84 (EPSG:4326) com o SAD69 (EPSG:4291) gera desvios sistemáticos de dezenas de metros. SIRGAS 2000 é praticamente coincidente com WGS 84 (diferença centimétrica), então se você vê grandes deslocamentos em dados brasileiros recentes, provavelmente é um arquivo ainda em SAD69 ou Córrego Alegre.
Os códigos EPSG expiram?
Eles são atualizados mas nunca deletados ou reatribuídos. O subcomitê de geodesia da IOGP atualiza periodicamente o dataset EPSG. Códigos obsoletos são marcados como deprecated e apontam para seus substitutos.
Qual código EPSG usar no Brasil?
O sistema de referência oficial do Brasil é o SIRGAS 2000 (EPSG:4674, geográfico), adotado pelo IBGE como datum oficial desde 2005 (com transição até 2015). Para coordenadas projetadas, usa-se UTM com as zonas correspondentes: São Paulo e Rio ficam na zona 23S (EPSG:31983), o Centro-Oeste na 22S ou 24S. O antigo SAD69 (EPSG:4291) ainda aparece em dados mais antigos — se estiver integrando dados de fontes diferentes e vir deslocamentos de 10–50 metros, o culpado é quase sempre o datum desatualizado.
A Regra que Cobre 90% dos Casos
4326 para armazenar e trocar, 3857 para exibição web. Na dúvida, busque por nome com EPSG Search ou por localização com EPSG Finder.