Hi Tamas,

Thanks for the RFC and implementation. 

I'd agree with Even's point that using the "geodesic" approach for any 
projected map would make sense - or is there a situation where you'd want a 
Cartesiam scalebar drawn? Maybe to have consistency between requests?

I guess the new approach could slow down the generation of the scalebar, but as 
embedded scalebars are part of full Map requests (and not WFS etc.), it 
wouldn't affect most uses of MapServer. 

Using the middle of the map for the scale seems the simplest option. If a user 
renders a world-wide Web Mercator map, and the scalebar is in the top-left of 
the map, then using pixels at this location would create a scalebar based on 
pixels with high latitudes and a 100 KM scalebar could represent 50 KM on the 
ground. Using the map center would produce a scalebar, only accurate at the 
equator, but at least consistent with the current implementation.

Seth

--
web:https://geographika.net & https://mapserverstudio.net
mastodon: @[email protected]

On Sun, May 17, 2026, at 12:25 AM, Even Rouault via MapServer-dev wrote:
> Tamas,
> 
> (I'd appreciate if RFCs could also be kept proportional (=small) in length to 
> the change being discussed to remain accessible to humans that don't use LLMs)
> 
> - I'm wondering if we really need the Cartesian behavior to be preserved. 
> Does it make sense at all ? if not this could save us and users from handling 
> an extra configuration parameter. I'd say if the project has a CRS use the 
> geodetic scale, otherwise fallback to Cartesian method. 
> 
> - I'm not sure it makes sense to correlate the sample position with the 
> location of the scale bar. Looking at QGIS scalebar in layout, it has the 
> following options "average top , middle and bottom scales", "top of map", 
> "middle of map", "bottom of map", "always at the equator".   We don't 
> necessarily need to offer all that complexity, so perhaps just middle of the 
> map ?
> 
> - the geodesic mode, if taking into account distances along the X axis, as I 
> see in 
> https://github.com/MapServer/MapServer/pull/7507/changes#diff-968c7ca959d226116368f37b62faf245fff8049e3e29fd03ab6914766d61d3d5R238
>  doesn't always make sense because the scale, even when mapping locally can 
> be very different along the horizontal and vertical axis. Conformal 
> projections (Mercator, Transverse Mercator, LCC, etc.) have indeed identical 
> scale in both directions, but if you use let's say Equal Earth that can be 
> very different. Maybe we should use the geometric average sqrt ( 
> scale_along_x * scale_along_y )  which should yield at least something better 
> if doing area measurement, which will also often be the Cartesian distance. 
> If we don't do that, we should be very clear in the documentation that the 
> value only makes sense in the horizontal direction. 
> 
> Ex: Equal Earth, 10 km in projected distance along X and Y:
> 
> $ echo  0 7700000 | gdaltransform  -s_srs +proj=eqearth  -t_srs EPSG:4326
> 0 70.1915580220322 0
> $ echo  0 7710000 | gdaltransform -s_srs +proj=eqearth  -t_srs EPSG:4326
> 0 70.3458420298602 0
> $ echo 10000 7700000 | gdaltransform -s_srs +proj=eqearth  -t_srs EPSG:4326
> 0.153998673719061 70.1915580220322 0
> $ echo 70.1915580220322 0 70.3458420298602 0 | geod -I +ellps=WGS84
> 0d    -180d    17212.757
> $ echo 70.1915580220322 0 70.1915580220322 0.153998673719061  | geod -I 
> +ellps=WGS84
> 89d55'39.204"    -89d55'39.204"    5826.666
> 
> So the 10 km have become 17.2 along X and 5.83 along Y.    But sqrt(17.2 * 
> 5.83) = 10.0 km
> 
> Even
> 
> Le 16/05/2026 à 19:38, Tamas Szekeres via MapServer-dev a écrit :
>> Hi Devs,
>> 
>> I've prepared an RFC to add explicit measurement modes to the MapServer
>> SCALEBAR object. The goal is to preserve the current Cartesian scalebar
>> behavior by default while allowing users to request local geodesic ground
>> distance measurement for projections where projected map units are not equal 
>> to ground distance.
>> The main motivating case is Web Mercator / EPSG:3857. In that projection, 
>> coordinates are expressed in meters, but projected meters increasingly 
>> differ from local ground meters away from the equator. The current scalebar 
>> implementation treats projected coordinate units as a flat Cartesian plane, 
>> so metric scalebars can overstate local ground distance in EPSG:3857 and 
>> similar projections.
>> 
>> Links:
>> 
>> - RFC text: https://mapserver.org/development/rfc/ms-rfc-142.html
>> 
>> - Candidate implementation: https://github.com/MapServer/MapServer/pull/7507
>> - Issue targeted:  https://github.com/MapServer/MapServer/issues/7397
>> 
>> Tamas
>> 
>> _______________________________________________
>> MapServer-dev mailing list
>> [email protected]
>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
> -- 
> http://www.spatialys.com My software is free, but my time generally not.
> _______________________________________________
> MapServer-dev mailing list
> [email protected]
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
> 
_______________________________________________
MapServer-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-dev

Reply via email to