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