The core problem
The earth is roughly an oblate spheroid — slightly squashed at the poles, slightly bulging at the equator. Maps are flat. Every map projection lies about the earth in some specific way: distorting distance, area, angles, or shape. A coordinate reference system (CRS) is the agreement about which lie a particular file is telling.
A CRS has two parts:
- A datum — a 3D model of the earth (which ellipsoid, where its centre is).
- A projection — the math that flattens the ellipsoid onto a plane (or the agreement that you're staying in 3D / spherical coordinates).
EPSG codes — EPSG:4326, EPSG:3857, EPSG:25832 — are a registry that pairs a datum and a projection (and a unit) and gives that combination a number. The number is shorthand for "this exact CRS."
WGS 84 (EPSG:4326): the global reference
WGS 84 (World Geodetic System 1984) is the datum that GPS uses. EPSG:4326 is WGS 84 expressed as latitude and longitude in decimal degrees — no projection at all, just position on the ellipsoid.
When you see coordinates like (52.5163, 13.3777) for the Brandenburg Gate, that's WGS 84 lat/lon. Every smartphone GPS chip reports in WGS 84.
Strengths:
- Global. Works anywhere on earth.
- The default for GeoJSON (RFC 7946 mandates it).
- Universally readable.
Weaknesses:
- Degrees are not metres. One degree of longitude shrinks as you head poleward. Distance calculations require great-circle math, not Pythagoras.
- Useless for any computation that depends on metres (area, length, buffer).
Use it for: storage, exchange, web-map source data. Avoid it for analysis that needs metric units.
UTM (EPSG:32xxx, 25xxx): the metric workhorse
The Universal Transverse Mercator system slices the globe into 60 longitudinal zones, each 6° wide, and projects each zone independently. Within a single zone, the projection is nearly conformal (preserves shape) and distances are accurate to about 1 part in 2,500.
EPSG codes for UTM follow conventions:
EPSG:32601throughEPSG:32660— UTM zones 1–60 Northern Hemisphere on WGS 84.EPSG:32701throughEPSG:32760— same zones, Southern Hemisphere.EPSG:25828throughEPSG:25838— ETRS89 / UTM zones 28–38 (European reference frame).
The coordinates are in metres, expressed as easting (x) and northing (y) within the zone.
Strengths:
- Metres are metres. Pythagoras works for short distances.
- Areas and lengths are computed with normal geometry.
- Standard for survey, cadastral, and engineering work.
Weaknesses:
- Zone-local. Data crossing zone boundaries gets ugly.
- Not suited to global datasets.
- Not what web maps render in.
Use it for: surveying, cadastral data, anything that needs accurate distance or area at a regional scale.
Web Mercator (EPSG:3857): the tile grid
The Spherical Mercator projection, popularised by Google Maps in 2005 and codified as EPSG:3857, is what every slippy tile map renders in. It assumes the earth is a sphere (not the WGS 84 ellipsoid), projects it as a cylinder, and uses metres as the unit.
The catch: it distorts area massively as you move from the equator to the poles. Greenland looks roughly the size of Africa on a Web Mercator map. Africa is actually 14 times larger.
Strengths:
- It's what tile servers and browser map libraries use natively. Z/X/Y tile addressing assumes Web Mercator.
- Square pixels at the tile level — clean rendering.
- Reasonably accurate north-south for navigation use.
Weaknesses:
- Area is wildly wrong away from the equator. Choropleths shaded by Web Mercator-derived area are nonsense.
- Not defined above ~85° N/S latitude (the projection blows up at the poles).
Use it for: rendering web maps. Never for area calculations. Never for analytical work.
The practical rule
- Store your data in WGS 84 (EPSG:4326). It travels well and every tool reads it.
- Compute area, length, buffers, and other metric operations in a local projected CRS — UTM if your data is regional, a national grid (e.g. ETRS89 / LAEA Europe, EPSG:3035) if you need a continent-scale equal-area system.
- Render in Web Mercator (EPSG:3857) because that's what the tile servers speak.
Converting between them
# WGS 84 to Web Mercator (for tiling)
ogr2ogr -t_srs EPSG:3857 out.geojson in.geojson
# WGS 84 to UTM Zone 33N (for German metric analysis)
ogr2ogr -t_srs EPSG:25833 out.geojson in.geojsonQGIS does the same job through Layer → Save As → CRS dropdown.
A note on accuracy
Reprojecting introduces small errors. WGS 84 → Web Mercator and back is essentially lossless because both use the same datum. WGS 84 → an older national grid (NAD27, OSGB36) requires a datum shift, which is centimetre-to-metre level depending on the grid file used.
For survey-grade work, always note the source CRS and don't reproject more than once.