Hi Andrea,

Thanks for your complete answer!
I totally agree, the recommendation is not only ill defined but also 
problematic and inconsistent...
I understand the discussion and the arguments, technically geoserver is doing 
the correct thing.
The only problem is the implementation differences cross WMS 1.1.1 servers. The 
problematic, ill defined recommendation is expected, 
because people are used to that wrong recommendation.... 
For me the option you described: 'let the admin choose if and how the scalehint 
is propagated in the GetCapabilities' would be the best solution....
Properly not using WMS 1.1.1 and/or not using the ScaleHint client side is even 
better.... :)

Roy
  _____  

From: Andrea Aime [mailto:[email protected]]
To: Roy Braam [mailto:[email protected]]
Cc: Geoserver-devel [mailto:[email protected]]
Sent: Wed, 10 Jul 2013 14:23:04 +0100
Subject: Re: [Geoserver-devel] Scalehint in WMS getCapabilities


On Wed, Jul 10, 2013 at 8:52 AM, Roy Braam <[email protected]> wrote:


  
Hi,

The scalehint in the WMS-GetCapabilities response is not what i was expecting. 
After reading the JIRA ticket: https://jira.codehaus.org/browse/GEOS-5830 and 
the suggested pull request https://github.com/geoserver/geoserver/pull/244 i'm 
still a bit confused...
  
The WMS 1.1.1 specs (7.1.4.5.8) says: 
"The following definition of Scale Hint is recommended. Consider a hypothetical 
map with a given Bounding Box, width
and height. The central pixel of that map (or the pixel just to the northwest 
of center) will
  have some size, which can be expressed as the ground distance in meters of 
the southwest
to northeast diagonal of that pixel. The two values in ScaleHint are the 
minimum and maximum recommended 
values of that diagonal. It is recognized that this definition is not 
geodetically precise, 
  but at the same time the hope is that by including it conventions will 
develop that can be later specified more clearly."

So, what I was expecting was the scalehint as the diagonal map units of 1 
pixel, like how other WMS services use it. But GeoServer is using the 
scaledenomination values in the scalehint.
  According the specs it's correct (it's just a recommendation) but it's a bit 
confusing that it's implemented differently then in other WMS services.

  


The recommendation above is problematic, and in my opinion should be ignored.


The strongest argument I can find is a simple one of consistency, but there are 
others which are good too.  
Consistency wise, GeoServer should use a single way to compute scale 
denominators, and that way is the one
suggested by the SLD spec, which has nothing to do with the suggestion above.
  We cannot go out with a suggestion in one place, and then have a client do a 
GetStyles operation and encounter 
completely different values in the SLD rule's min/max scale denominators.
  

The second argument pertains more to people that know a bit of geodesy. The 
above definition is way more than "not geodetically
precise", it simply has little or no meaning because all depends on where in 
the world that central pixel is.  
Say I have a world wide map depicted in EPSG:4326 (not a good choice, but a 
common one). In the depiction, all pixels
apparently have the same size. Say, to keep the example easy, that the map is 
360 pixels wide, and 180 pixels height,   
and encompasses the whole world, so that each pixel is roughly 1x1 degrees. 


If one picks a point along the equator, the diagonal of the pixel is roughly 
157km
  (refer to 
http://en.wikipedia.org/wiki/Latitude#The_length_of_a_degree_of_latitude), 
however
if one picks a pixels that is at 75° of latitude the value is instead 114km.  
Now, when a certain value is given to the client, what is the client supposed 
to do? Show the map
at lower latitudes, but then refuse to show it as you pan towards north? (or 
vice versa?)
  

This problem is very evident in the case of geographic data, but the issue 
remains for projected data
too, because the above definition does say "ground distance", which to me means 
real ground  
distance, not the projected distance that one sees on the projected map (and 
this problem of interpretation
alone is serious, if I'm looking at a map in 3857 the projected distance can be 
a few times bigger than  
the ground distance if I'm looking at data located north enough in the world).


The confusion gets even worse in the case of a WMS that allows for reprojection 
such as geoserver,  
do the scalehint change for the different output projections? (I believe they 
stay consistent only if we
always compute the ground distance using proper elliptical geometry)  
And if so, is there a way for the client to predict how the values change for 
the different output  
projections? 


The SLD scale computation definition is very imprecise, but has at least the 
gift of consistency,
the scale remains the same no matter where I'm looking at the map, and there 
are no doubts of what  
distance one is supposed supposed to use when looking at projected data too.


If I'm not wrong with the above, the scale hints in WMS are so ill defined 
that, imho, we should probably not generate   
them in output by default, and if we do, it should be probably left up to the 
administrator to choose whether to be consistent
with SLD and its protocol extensions or to follow the WMS definition (and here 
too, one should somehow  
try to pick up what "ground distance" means in the case of projected data from 
the admin again).


Cheers
Andrea

-- 

  

==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more 
information.
==


Ing. Andrea Aime 
  
@geowolf
Technical Lead


GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272  
mob: +39  339 8844549


http://www.geo-solutions.it
http://twitter.com/geosolutions_it  


-------------------------------------------------------      
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to