WMS ScaleHint fun and games

One point that has always troubled me is the confusion over WMS Scalehint calculations.

For anyone in a similar boat, the following post by Craig Bruce probably made the most sense out of all the other material

If we take a standard pixel size as being a square that is 0.28mm on
each side, the length of the hypotenuse is 0.396mm.  (The scale hint is
defined in terms of a diagonal distance.)

This flies in the face of the usual calculation mentioned at various sites promoting

scale / 3846.15 = scalehint

as the method of choice. As Craig Bruce points out, this value is the inverse length/height of a 0.26mm pixel (meters) which goes against using the diagonal hypotenuse of a 0.28mm pixel (0.396mm).

As an example, if i’d like to express 1:50k in terms of a ScaleHint,

Method 1: 50,000 / 3846.15 = ~13 (0.26mm length)

Method 2: 50,000 / 2525.25 = ~19.8 (hypotenuse of 0.28mm)
Whats even more confusing, my UMN Mapserver produces,

Method 3: 50,000 / 2004.4 = ~24.94 (looks to be a hypotenuse of 0.35mm)

What the?

I haven’t had time to look at how Mapserver is running the calculation, but i’d certainly prefer the good old cartographic representation in the Capabilities doc :)

If anyone has any definitive articles on this issue please drop me a link. SLD Scale Denominator’s are clearly the winner though … it would also be interesting comparing the various apps on how they do the transform