Try New Zealand too. At around 42°S, Mercator already enlarges its area by about 80%.
Moving it to the equator makes it smaller on the map.
Data limits
The outlines are Natural Earth at 1:110 million. Many small islands are missing at this
scale, so Indonesia’s calculated area is below the commonly reported national total.
The pointer readout compares local area distortion with the centre of the map and shows
angular distortion. Intermediate animation frames blend two projections; they are there
to help track the movement and have no separate geographic interpretation.
How it is drawn
The map uses canvas and d3.geoPath. Five projections come from core D3; Robinson,
Winkel tripel and Mollweide use custom functions passed to d3.geoProjection, with numeric
inverses for converting pointer positions to longitude and latitude.
Transitions interpolate between projected positions. Geometry is cut at the antimeridian
beforehand to avoid clipping problems during the transition. The final frame returns to
the selected projection’s normal clipping.
The distortion readout projects a point and two nearby points to estimate the local
transformation. Its singular values give the ellipse axes, from which area and angular
distortion are calculated.
Dragging a country rotates its coordinates on the globe with d3.geoRotation, then
projects them again. Its geographic area stays the same throughout.
Data
Natural Earth 1:110m land and countries, via world-atlas. node scripts/projections/build.mjs fetches the country boundaries; the land file is shared
with the earthquake post.