Mutiple "DATA" lines in a single layer?

Stephen Woodbridge woodbri at SWOODBRIDGE.COM
Fri May 18 11:52:16 PDT 2007


Jeff Dege wrote:
> I'm starting to play around with using MapServer to serve maps from a
> PostGIS database.
> 
> One of the features that MapServer has is that you can define multiple
> classes within a single layer, so you can change the way that the map
> looks when drawn at different scales/resolutions.
> 
> Is there some way to define multiple data sources within a single layer,
> so that I can change how that data is obtained at different layers?
> 
> In particular, I'm wondering how to best take advantage of PostGIS's
> simplify() function - which can be used to reduce the number of points
> included in a geometry based on resolution.  If I'm drawing a map at a
> resolution where one pixel equals 2000 meters on the ground, there is no
> advantage to sending the viewer a geometry defined with points
> twenty-five meters apart.
> 
> The obvious way is to define multiple layers, each enabled at certain
> scales, and to include the resulution appropriate for those scales in
> the DATA keyword's sql statement.  But this requires that the layer be
> duplicated for each scale range.  Is there a way to enable different
> DATA sql statements at different scales/resolutions in a single layer
> definition?

This is the correct way yo do this in mapserver. Use multiple LAYERs

> I don't see the DATA keyword in the documentation for the CLASS section.
> Which is where I'd expect it to be if I could do what I want.
> 
> Is there a way of including a value calculated from the scale in the SQL
> statement within the LAYER section?
> 
>    DATA "simplify(the_geom, 1.0/<scale>) from streets"
> 
> Or am I stuck with using multiple layers?



More information about the MapServer-users mailing list