Map Projections: How Every Map Lies

simulator intermediate ~10 min
Loading simulation...
Mercator: ∞ area distortion — Greenland appears as large as Africa

The Mercator projection preserves angles (conformal) but distorts area dramatically toward the poles. Africa (30.4M km²) appears similar in size to Greenland (2.2M km²) — a 14:1 real area ratio shown as roughly 1:1.

Formula

Mercator: x = λ, y = ln(tan(π/4 + φ/2))
Mollweide: x = (2√2/π) × λ × cos(θ), y = √2 × sin(θ)
Tissot area distortion: s = h × k × sin(θ')

Every Map Is a Lie

In 1569, Gerardus Mercator published his famous world map, revolutionizing navigation by allowing sailors to plot straight-line compass courses. But Mercator's genius came with a hidden cost: his projection inflates areas near the poles so dramatically that Greenland appears the same size as Africa, when in reality Africa is 14 times larger. Every flat map of our spherical Earth must make such compromises — the question is which distortion you choose to accept.

The Four Distortion Properties

Map projections can distort four geometric properties: area, shape (angles), distance, and direction. Conformal projections like Mercator preserve local shapes and angles but distort area. Equal-area projections like Mollweide preserve relative sizes but stretch shapes. No projection can preserve all properties simultaneously — this is a mathematical impossibility proven by Gauss. Each projection makes a deliberate trade-off suited to its purpose.

Seeing Distortion with Tissot Indicatrices

The most powerful way to visualize projection distortion is through Tissot indicatrices — small circles placed at regular grid points on the globe, then projected onto the flat map. On a perfect projection, they would remain identical circles. In practice, they stretch into ellipses whose shape reveals angular distortion and whose size reveals area distortion. This simulation draws them live so you can see exactly where and how each projection warps the Earth.

Choosing the Right Projection

The best projection depends entirely on the use case. Marine navigation needs Mercator's angle preservation. Thematic maps showing population density need equal-area projections. Airline route maps benefit from azimuthal projections centered on the departure city. This simulation lets you switch between projections and immediately see the trade-offs, building intuition for one of cartography's most fundamental decisions.

FAQ

Why can't a map be perfectly accurate?

Gauss's Theorema Egregium proves that a curved surface (the Earth) cannot be flattened onto a plane without distortion. Every map projection must sacrifice accuracy in at least one of four properties: area, shape, distance, or direction. The choice of projection depends on which property matters most for the map's purpose.

What's wrong with the Mercator projection?

Mercator preserves angles, which makes it perfect for navigation — a straight line on the map corresponds to a constant compass bearing. However, it dramatically inflates areas near the poles. Greenland appears as large as Africa, when in reality Africa is 14 times larger. This distortion has been criticized for warping geographic perception.

What are Tissot indicatrices?

Tissot indicatrices are circles placed at regular intervals on a map that show how the projection distorts shape and area. On the globe, each is a perfect circle of equal size. On the projected map, they stretch into ellipses — the ellipse's shape shows angular distortion, and its size shows area distortion. They are the standard tool for visualizing projection properties.

Which map projection is most accurate?

No projection is universally 'most accurate' — it depends on purpose. Robinson and Winkel Tripel offer good compromises for world maps. Mollweide and Hammer are equal-area. Mercator is best for navigation. UTM and State Plane are used for local surveying where distortion is minimal over small areas.

Sources

Embed

<iframe src="https://homo-deus.com/lab/cartography/map-projections/embed" width="100%" height="400" frameborder="0"></iframe>
View source on GitHub