Ladder

Screen — the ladder

13 distinct arguments against one idea, from the one that introduces it to the one that assumes the rest.
  1. The tile pyramid, four levels down to quadkey 120. The world as a square, quartered three times. Each level's tile is exactly half the width of its parent, so a tile is four tiles at the next level and never needs resampling to serve one — the property the whole scheme rests on, and one that holds only because the projected world is square. Level 3 has 64 tiles at 19567.9 metres per pixel, which at 51.5° north is 12181.3 metres of ground per pixel rather than the number the scheme publishes.

    A screen map is a pyramid of tiles

    The scheme every slippy map runs on is a coordinate system with three integers and one projection, and almost all of it is forced. A square world is what makes the quadtree work, the levels are exact powers of two, and the published resolution — 156,543 metres per pixel at zoom zero — is a distance on the ground at exactly one latitude.

    rung 1 · applied
  2. What "1:136,495" means at each latitude, at zoom 12. A screen map at zoom 12 prints one scale for the whole world. The curve is how much larger in scale the map really is, measured from the projection's own derivatives rather than from a formula: at 60° it is 1.98 times, so the map labelled 1:136,495 is a 1:68,765 map. The hollow marks are sec φ, the textbook answer. They do not sit on the curve — the worst gap is 9949 parts per million at 85° — because Web Mercator puts a geodetic latitude into a spherical formula, and the same spherical Mercator measured the same way reproduces sec φ exactly.

    The scale of a screen map is not one number

    A zoom level prints one scale for the whole world, and the map is at that scale along exactly one line. At 60° north the picture labelled 1:136,495 is a 1:68,765 map — and the factor is not quite sec φ either, because the projection puts a geodetic latitude into a spherical formula.

    rung 2 · applied
  3. A 1,000 km bar on Mercator, drawn at 0° and read elsewhere. The same length of paper, carried up the map. Each pair of bars is the ground distance that length actually spans at that latitude — the filled bar along the parallel, the outline along the meridian. At 75° the reading along the parallel is 259 km against the 1,000 the bar claims, an error of 74 per cent. The two readings agree everywhere, because Mercator is conformal — so one number per latitude corrects any measurement taken off it.

    A scale bar is right in one place

    The bar in the corner of a world map is a picture of a distance, and it is a true picture along one line. On Mercator it reads 500 kilometres for a thousand at 60° north — and on an equal-area map it reads 500 one way and 2,000 the other, so the projection recommended for measuring is the one on which no single correction exists.

    rung 2 · applied
  4. The scale asked for and the scale the pyramid has, at 0°. A tiling scheme exists only at integer zoom levels, a factor of two apart in resolution, so a request for any scale between them is answered by the nearest rung. The ratio runs from 0.707 to 1.405 — 1/√2 to √2 — and repeats identically at every doubling, which is four times that in area. A request for 1:10,000 is served at zoom 16, which is 1:8,531; A request for 1:25,000 is served at zoom 14, which is 1:34,124; A request for 1:50,000 is served at zoom 13, which is 1:68,247. Nothing anywhere reports it, because the map that arrives is a perfectly good map of something.

    Zoom is a ladder

    A tiling scheme exists only at integer zoom levels a factor of two apart, so a request for 1:25,000 is answered with 1:34,124 — 36 per cent coarser, and 86 per cent coarser in area. The mismatch runs from 1/√2 to √2 and repeats identically at every doubling, and nothing anywhere reports it, because the map that arrives is a perfectly good map of something.

    rung 2 · applied
  5. The cut at 85.0511°, and the alternatives that are not square. Mercator's northing runs to infinity at the pole, so a tiling has to stop somewhere, and the latitude is not a rounding: 85.0511° is where the northing equals half the world's width, which is the only cut that makes the projected world a square. The bars are what other cuts would give — at 89° the world is 1.51 times as tall as it is wide, and a single square root tile cannot cover it. The price is 0.373 per cent of the Earth's surface, 1,901,487 square kilometres in two caps, computed from 2πR²(1 − sin φ) rather than estimated.

    The square costs the poles

    The cut at 85.0511287798° is the most-quoted number in web mapping and is almost never derived. It is where Mercator's northing equals half the world's width — the condition for a square — and it drops 1,901,487 square kilometres. A two-tile root would have reached 89.786° and dropped 3,558.

    rung 3 · applied
  6. One pixel at zoom 11: 76.4 m projected, 47.6 m at 51.5°. The grid squares are pixels, at their own size. The open mark is the stored coordinate and the filled one is where it is drawn: rounding moves it 20.2 metres, against a worst case of 33.6 — half a pixel's diagonal, which is the whole of the bound. The second point sits 43 metres away, 0.58 of a pixel east and 0.70 north, so whether the two are drawn as one dot or two is decided by where the tile grid happens to fall: they merge for 12 per cent of the possible offsets, against the 12 per cent the two fractions predict.

    The pixel is a place with a size

    Drawing a coordinate rounds it to a pixel, which moves it by up to half a diagonal — 16.8 metres at zoom 12. Whether two points 43 metres apart appear as two dots is not a property of the data at all: they merge for 12 per cent of the positions the tile grid could take, and the closed form predicts 12.4.

    rung 3 · applied
  7. A feature across nine tiles at zoom 4, and the nine labels it gets. A rectangle from -10° to 30° east and 36° to 62° north, drawn in the projected plane with the tile boundaries over it. A renderer that draws each tile from the geometry inside that tile puts the label at the centroid of the piece, marked hollow; the whole feature's centroid is the filled mark. The furthest piece's label is 1863 kilometres from it. The pieces' areas sum to the whole to 2.2e-16 of a relative part, so the clipping is exact and the displacement is the operation rather than an error in it.

    A tile is drawn without its neighbours

    Independence is what makes the scheme scale: one request touches one square of the world. It also means a feature crossing nine tiles is nine features, each labelled at its own centroid — up to 1,863 kilometres from the whole one — and the displacement is bounded by the size of the feature rather than the size of a tile, so it grows as the reader zooms out.

    rung 4 · applied
  8. Two square worlds: Mercator's areas against an equal-area scheme's angles. Both projections give a world exactly as wide as it is tall, so either could carry a quadtree of square tiles. Mercator keeps every angle and inflates area by sec²φ — 132-fold at 85°. The cylindrical equal-area scheme whose world is square has standard parallels at ±55.65° — the solution of π cos²φ₀ = 1 — and keeps every area exactly, at a cost of nothing there and 145° of angular deformation at the edges. At the standard parallel itself Mercator's areal factor is 3.142, which is π, because the square-world condition and sec²φ are the same equation.

    The pyramid did not have to be Mercator

    The usual defence is that a quadtree needs a square world and Mercator supplies one. So does the cylindrical equal-area with standard parallels at ±55.654° — the solution of π cos²φ₀ = 1 — and it needs no polar cut at all. What Mercator actually buys is conformality, and the price of giving it up is 13.8° of shear at 60° north.

    rung 5 · applied
  9. Equal bands of screen, unequal bands of ground. A section through a camera pitched 60° from straight down, at the height that makes an untilted view exactly the flat map — 1152 pixels above the plane for a 768-pixel screen and a 36.87° field of view. The rays are drawn at equal spacings up the screen and the blocks below them are the ground each of those equal bands covers: 1.75 plane units per pixel at the bottom of the frame and 16.88 at the top, a factor of 9.7. Nothing about this is a projection of the sphere; it is a photograph of a map, and the map underneath it is still Web Mercator.

    A tilted view has no zoom level

    Every essay about the screen so far assumes the map lies flat on it, which was true until about 2015. Pitch the camera sixty degrees and one frame asks for 3.6 zoom levels at once, a square tile covers ground four and a half times deeper than it is wide, and the pyramid has one integer per tile to answer with.

    rung 6 · applied
  10. One unit of a vector tile, in metres of ground. A vector tile's coordinates are integers on a lattice 4096 units across the tile, and the tile halves at every level, so one unit is a distance that halves too: 5.48 m at z10 and 0.086 m at z16, at 55°. It is also a different distance at every latitude, by cos φ, because the tile is in Web Mercator — the same factor that makes a grid metre a different quantity of ground at every latitude, arriving in the file format rather than in the projection.

    A vector tile has an integer grid

    Six essays on this ladder treat a vector tile as the thing a raster tile is not: geometry, resolution-free, styled at draw time. Its coordinates are integers on a lattice 4,096 units across a tile, the tile halves at every level, and at 55° north one unit is 88 metres at zoom 6 and 21 millimetres at zoom 18.

    rung 7 · applied
  11. The same 2-pixel road at three latitudes, zoom 5. The dark bar is the mark as drawn — 2 pixels, identical in all three panels, because that is what the stylesheet says. The pale band behind it is the ground that mark covers, drawn to one common ground scale: 9.78 kilometres at the equator, 6.92 at 45° and 1.70 at 80°. The reader sees the dark bar and is being told about the pale one.

    The road is drawn two pixels wide

    Seven rungs measure what a screen map does to position. Nothing on a map is a point: every mark has a width, the width is chosen in pixels, and a two-pixel road covers 9.78 kilometres of ground at the equator and 1.70 at 80° north. That is a generalisation applied at a strength varying by a factor of six across one sheet, by a stylesheet with no latitude in it.

    rung 8 · applied
  12. One of these three lines does not slope. Three lengths at each zoom, for a world coordinate near the antimeridian. The pixel halves with every level, as it must. The spacing between representable double-precision values is far below it and halves with it. The spacing between representable SINGLE-precision values does not move at all — 2.0 metres at every zoom, because it is a property of the size of the number and the world does not get smaller. The two cross at zoom 17, and past it a vertex snaps to a lattice coarser than the pixels it is drawn into.

    The renderer runs out of numbers before the zoom does

    Eleven essays price the pyramid in exact arithmetic. The pipeline that draws it carries single precision, where a world coordinate near the antimeridian quantises to two metres — at every zoom, because the number does not get smaller when the pixel does. At zoom 22 that is fifty-four pixels.

    rung 9 · applied
  13. The same labels, placed once and placed per tile. 140 stated label boxes on a 1024-pixel page cut into 256-pixel tiles. The pale boxes are placed the same way by both rules. The dark ones are placed by the tiled renderer and suppressed by the global one — labels that should have lost a collision with something in the next tile and did not, because the tile that drew them could not see it. nine of them, against 104 labels the global rule keeps.

    A label belongs to no tile

    Nine rungs price the tile as a piece of geometry. A label is not geometry — it is a page object placed by collision against other page objects, and collision is a global relation while a tile is rendered alone. Cut a page into tiles and 10.3 per cent of the labels are placed differently; the buffer that closes the gap is half a tile at moderate density and a whole one when it is crowded.

    rung 10 · applied

All ladders