The other way to get the space wrong is to correct the axis that needs no correction

gospel retracted their extentFraction threshold and named their bug: they computed screen
x as lng * cos(lat). That is the plate-carree correction, and Web Mercator does not apply
it -- screen x is proportional to LONGITUDE ALONE, which is precisely why the projection
is conformal and why circles stay circles. They measured the damage done by a transform
they had added themselves.

Nothing needed retracting from this header: it already documented the opposite, that
roundness is exact at every value. What it did NOT cover was this second failure, and
this one is subtler than the first. A reader who has just been told "it is a projection,
not a scale" naturally reaches for a cos(lat) term, because that is what correcting a
projection feels like it should involve.

MEASURED here rather than taken: true Mercator gives 0.000% warp at every fraction, while
inserting cos(lat) into x invents 12.4% at 0.17, 23.8% at 0.25, 39.8% at 0.35, 56.5% at
0.45. Those are NOT gospel's numbers -- theirs ran 2.94/6.12/11.33/17.51, so their harness
differed in a second way I did not reproduce. Both wrong spaces produce a clean monotonic
table that grows with the fraction, and the magnitudes depend on which wrong transform was
picked, so the SHAPE of the numbers cannot tell you which mistake you made. Only comparing
against x = lng, y proportional to ln(tan(pi/4 + lat/2)) can.

So the header now says: if a measurement of this module ever reports a threshold, suspect
the harness before the maths. Roundness cannot degrade, because this is the exact inverse
of what the renderer does.

The latitude ceiling stands and gospel confirmed it independently to a tenth of a degree:
|lat| 52.1 at 0.17, 77.3 at 0.35, 83.2 at 0.45, 89.7 at 0.95, against the engines' ~85
clamp. That is the real usable range, and it is the only one.
This commit is contained in:
Doxa Maps 2026-09-28 16:46:51 +00:00
parent 378cce63d2
commit edcc31d36e

View file

@ -25,6 +25,22 @@
* of it is rendered. Those numbers are the CORRECTION doing its job, read in the wrong coordinate
* system. Screen y is proportional to ln(tan(pi/4 + lat/2)), never to lat.
*
* ★ AND THERE IS A SECOND, SUBTLER WAY TO GET THE SPACE WRONG: correcting the X axis. Web Mercator's
* screen x is proportional to LONGITUDE ALONE -- no cos(lat) term. That absence is not an oversight in
* the formula, it is the reason the projection is conformal and the reason circles stay circles. A
* reader who has just been told "it is a projection, not a scale" naturally reaches for the
* plate-carree correction x = lng * cos(lat), which the renderer never performs, and then measures the
* damage their own extra transform did. MEASURED here on a ring at extent 260: true Mercator gives
* 0.000% warp at every fraction, while inserting cos(lat) into x invents 12.4% at 0.17, 23.8% at 0.25,
* 39.8% at 0.35 and 56.5% at 0.45 -- a clean, plausible, monotonic table describing nothing.
* (Both wrong spaces produce a table that GROWS with the fraction, and their magnitudes differ by which
* wrong transform you picked, so the shape of the numbers cannot tell you which mistake you made. Only
* comparing against x = lng, y proportional to ln(tan(pi/4 + lat/2)) can.)
* This happened to a careful reader within an hour of the first correction, in the opposite direction:
* first a projection mistaken for a scale, then an over-correction applying a transform that is not
* there. If a measurement of this module ever reports a threshold, suspect the harness before the maths
* -- roundness here cannot degrade, because it is the exact inverse of what the renderer does.
*
* ★ THE REAL CEILING IS LATITUDE, not roundness. The drawing's outermost point reaches |lat| 52 deg at
* 0.17, 77 at 0.35, 83 at 0.45 and 89.7 at 0.95 — and Web Mercator is undefined at the poles, with the
* engines clamping around 85. So the parameter's usable range is bounded by how close to the pole the