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:
parent
378cce63d2
commit
edcc31d36e
1 changed files with 16 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue