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 ficheiro .prj diz "GCS_WGS_1984" mas os dados foram recolhidos em Datum Lisboa. Este 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 está a falar de WGS 84 — sem ambiguidade, sem precisar interpretar uma cadeia WKT. Perceber isto bem é 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 os 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 uma base de dados padronizada de SRC, lançada 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 (International Association of Oil & Gas Producers), 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 de forma única um SRC, datum, elipsoide ou método de transformação de coordenadas no dataset EPSG. A sua base técnica é o padrão ISO 19111.
Notação padrão
O formato mais comum é authority:code:
EPSG:4326
O OGC define também 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 (semi-eixo 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 a latitude em primeiro (lat, lng), mas a maioria dos softwares GIS passa efetivamente a longitude em primeiro (lng, lat). O 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) |
| 4258 | ETRS89 | Geográfico | Graus | Europa (padrão oficial) |
| 3763 | ETRS89 / PT-TM06 | Projetado | Metros | Portugal Continental (padrão atual) |
| 4674 | SIRGAS 2000 | Geográfico | Graus | Brasil e América do Sul |
| 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 toda a gente 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 num plano em metros. O Google Maps adotou esta projeção no lançamento em 2005, e praticamente todos os mapas web seguiram.
O EPSG recusou inicialmente registar o 3857. A objeção: usa uma fórmula esférica aplicada a um datum elipsoidal, o que é matematicamente incorrecto. O Google lançou-o na mesma, e quando o EPSG cedeu e atribuiu o código em 2009, todos os mapas web do planeta já o estavam a usar. Apesar da sua 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 de base: 4326 para armazenamento, 3857 para visualização. O conversor de coordenadas do KunYu suporta a conversão entre os dois.
Como encontrar o código EPSG correto
Cenário 1: Conhece o nome do SRC
Se conhece o nome (ex.: "WGS 84" ou "ETRS89"), pesquise diretamente na ferramenta de pesquisa EPSG. Suporta pesquisa em mais de 8.000 definições EPSG por código, nome e região.
Cenário 2: Conhece a localização, mas não o SRC
Quando 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 utilização cobre essa região.
Pesquisa EPSG
Pesquise e navegue pela base de dados de sistemas de referência de coordenadas EPSG.
Try it nowCenário 3: Recebeu dados sem informações de SRC
Verifique os ficheiros de metadados fornecidos com os dados. Os Shapefiles têm um ficheiro .prj (abra com qualquer editor de texto) contendo a definição do SRC em formato WKT. Os GeoTIFFs geralmente incorporam informações EPSG nos seus metadados. Com GDAL:
# Verificar o SRC de um GeoTIFF
gdalsrsinfo input.tif
# Ler o ficheiro .prj de um Shapefile
cat data.prj
Usar códigos EPSG em software GIS
QGIS: Propriedades do Projeto → painel SRC permite pesquisar e mudar o SRC por código EPSG. O QGIS usa EPSG:4326 por defeito.
GDAL/OGR: Especifique o SRC de destino diretamente com um código EPSG:
# Reprojetar um Shapefile de PT-TM06 para WGS 84
ogr2ogr -s_srs EPSG:3763 -t_srs EPSG:4326 saida.shp entrada.shp
PROJ: O motor de transformação de coordenadas de código aberto. A sua base 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:4490", "+proj=longlat +ellps=GRS80 +no_defs");
const result = proj4("EPSG:4326", "EPSG:4490", [116.4074, 39.9042]);
# pyproj (Python)
from pyproj import Transformer
transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857", always_xy=True)
x, y = transformer.transform(-9.1393, 38.7223)
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 em primeiro (lat, lng), enquanto CRS:84 é longitude em primeiro (lng, lat). O GeoJSON usa lng, lat, mas o L.latLng() do Leaflet espera lat, lng — confundi-los é um bug comum.
Os meus dados estão desfasados por dezenas a centenas de metros. Porquê?
A causa mais comum é um código EPSG errado. Em Portugal, confundir o Datum Lisboa (EPSG:4803) com o ETRS89 (EPSG:4258) produz desvios sistemáticos de 100 a 200 metros. O PT-TM06 (EPSG:3763) substituiu o Hayford-Gauss como sistema projetado oficial — dados em Hayford-Gauss antigo não podem ser sobrepostos directamente com dados modernos sem reprojeção.
Os códigos EPSG expiram?
São atualizados mas nunca apagados 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 os seus substitutos.
Que código EPSG usar em Portugal?
O sistema de referência oficial de Portugal Continental é o ETRS89 (EPSG:4258, geográfico). Para coordenadas projetadas, o padrão atual é o PT-TM06 (EPSG:3763), adotado pela DGT. Nos Açores usa-se ITRS2005 (zonas diferentes por grupo de ilhas), e na Madeira o PTRA08. O antigo sistema Hayford-Gauss (Datum Lisboa, EPSG:20791) ainda aparece em cartografia histórica e cadastro antigo — se vir um desvio de ~100–200 metros em dados portugueses, é provavelmente um ficheiro Datum Lisboa não reprojetado.
A Regra que Cobre 90% dos Casos
4326 para armazenar e trocar, 3857 para visualização web. Em caso de dúvida, pesquise por nome com EPSG Search ou por localização com EPSG Finder.