[mapserver-dev] Support for the MapInfo style zoom layering option.
Tamas Szekeres
szekerest at gmail.com
Mon Jun 16 08:53:57 EDT 2008
Hi All,
I have been asked to incorporate in mapserver a support for the
MapInfo style zoom layering functionality.
By using this approach the displayable range of the layer could be
specified in map units in addition to the current
MINSCALEDENOM/MAXSCALEDENOM parameters.
An example of the related changes in the mapfile could be considered as:
LAYER
NAME 'test'
...
DISPLAYRANGE ZOOM
MINZOOM 1000
MAXZOOM 5000
MINSCALEDENOM 10000 # Would be ignored because layer's zoom type is ZOOM
MAXSCALEDENOM 20000 # ''
END
Depending on the DISPLAYRANGE setting (the possible values could be
ZOOM and SCALE) the visibility of the layer could be determined based
on
the extent of the layer (in map units) or by using the current scale
based approach.
The main difference between these options is how the display range
depends on the screen size. Zoom layering (MapInfo style) appears to
be screen size independent,
however the zoom scaling depends on the width of the screen in pixels
(which affects the scale).
The proposed solution (above) will require to add 3 new elements (an
integer and 2 doubles) to the related objects (not only the layerObj-s
will be affected)
by adding a slight increment in the memory usage of the application.
Though it would be comfortable by the user having both of the values
stored, but we could eventually save 2 doubles by
storing the minzoom/maxzoom values in minscaledenom/maxscaledenom (in
exchange for a slight confusion about the names)
Before getting forward to write an RFC for this addition I would like
to see whether this kind of implementation or any variant would be
acceptable by the PSC or not, so let me know your thoughts.
Best regards,
Tamas
More information about the mapserver-dev
mailing list