[mapserver-users] Dynamic GEOMTRANSFORM based on map scale

Tom Lee tom at nthsense.net
Tue Jul 22 17:55:53 PDT 2014


Thanks, Jukka.  Unfortunately, I'm stuck with Shapefiles.  Postgis isn't an option right now.  I did manage to come up with a solution using OpenLayers and several Layer definitions in my map file.  Each layer points to the same Shapefile, but with a different geomtransform.  I use OpenLayers to choose the right map layer based on the map zoom/scale.

> On Jul 22, 2014, at 4:32 PM, "Rahkonen Jukka  (Tike)" <jukka.rahkonen at mmmtike.fi> wrote:
> 
> Hi,
> 
> For my mind WFS delivers vector data who do not really have any scale but you may have some idea about how you define the scale. Perhaps like "Send me vectors for the same area than my raster background map which comes from WMS and has a scale of 1:x". However, I do not believe that WFS server can compute anything like scale from the standard WFS GetFeature parameters because equivalent to raster pixel size is missing.
> 
> Have you considered to use variable substitution by reading the data from PostGIS or Spatialite, defining DATA as "select ST_Simplify(geometry,%tolerance%) as geometry,..." and make your application to send the tolerance variable with GetFeature requests? Make it to compute the tolerance by for example the width of BBOX if you use it in your GetFeatures.
> 
> -Jukka Rahkonen-
> 
> Tom wrote:
> 
> Hi folks,
>  
> I’m trying to implement a kind of ‘feature generalization’ so that the feature data in my WFS responses will be appropriate to the map zoom level.  I see two basic techniques I could use to do this:
>  
> 1)      Use different shapefiles at different zoom levels
> 2)      Use GEOMTRANSFORM somehow
>  
> Of these two, GEOMTRANSFORM seems like the least hassle.  However, I can’t seem to figure out a way to factor in my map’s scale into the amount of shape simplification.  When I’m zoomed out, the shapes should be simplified a lot.  When I’m zoomed the whole way in, I should be using finer detail.  Is there a variable I can use in this expression? GEOMTRANSFORM (simplifypt([shape], [map_cellsize] * 10))
>  
> [map_scale] would be nice, if it existed.
>  
>  
>  
> Thanks,
>  
> Tom
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20140722/024d4e27/attachment.html>


More information about the mapserver-users mailing list