Separation of MapServer and WMS logic

Armin Burger armin.burger at GMX.NET
Fri Jan 6 09:00:14 PST 2006


Hi everyone,

I have a question for the MS developers with regard to the WMS 
functionality:

The way the WMS functionality is set up in Mapserver, there is no clear 
separation between Mapserver internal logic and WMS capabilities. 2 
examples to show that:

1) Groups in Mapserver
Groups in Mapserver are well suited for grouping layers to one logical 
unit that can be visible from the outside as a single layer, even if it 
is composed of several layers. This makes groups very suitable for
* swapping layers at certain scales
* merging layers into one logical group.
   An example: I have a satellite coverage of Landsat data in a big
   ECW file. For some regions we have VHR images (Ikonos, Quickbird)
   that are managed through image catalogs (TILEINDEX). Using them
   together in the same group, it is very easy to provide a user with
   one single layer that has as base information the lower resolution
   Landsat dataset, and in some areas the VHR data. The user does not
   know that the data he sees is actually a dynamic merge of datasets
   behind the scenes, he just can select one layer.

The behaviour of the WMS functionality, however, is that every layer is 
propagated to the client. So instead of one group like 'Satellite 
Coverage' the client sees various layers that form the group. This way 
the very convenient usage of groups in Mapserver internally is not 
really available any more. Or for the first case, he sees 2 layers but 
can only switch on one at a time because they swap depending on the 
scale, not very consistent.

Are there any plans to separate more clearly the Mapserver internal 
handling of groups and the propagation of layers via WMS? If not as a 
default behaviour, maybe as an optional setting?


2) Every layer in a map file is visble via WMS
I would like to use a map file both for a WebGIS application based on 
Mapscript and as configuration for a WMS service. This way I would only 
have to maintain one map file. The problem is that I do not want to make 
all layers that are visible in the application also available via WMS, 
just a paart of them.

The Mapserver WMS however propagates *all* layers of a map file, 
independent, if the mandatory tag "wms_title" is set or not. And even a 
bit worse, all missing required tags for WMS cause a "Warning..." entry 
in the capabilities.

Wouldn't it make sense to just display those layers in the capabilities 
that are explicitely defined for WMS, eg. by checking if the mandatory 
tag "wms_tite" is set? This way one could avoid maintaining different 
map files for a web application and the WMS service.


I don't know if others have similar problems with the way WMS is working 
in MS... Any comments?

Armin



More information about the MapServer-users mailing list