[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