[mapserver-dev] RFC 89 Layer Geomtransform: Call for vote
Daniel Morissette
dmorissette at mapgears.com
Tue Feb 19 07:12:39 PST 2013
Alan, All,
As we looked into the implementation details with Alan, we found out
that the STYLE-level GEOMTRANSFORM receives a shape in pixel
coordinates, whereas the LAYER-level GEOMTRANSFORM will receive the raw
shape in ground coordinates (meters, degrees, etc.)
This poses a little potential for confusion in the user's mind as the
argument to methods such as simplify() must be in the same units as the
coordinates of the shapes at that point of the rendering workflow, i.e.
pixels at the STYLE-level and in ground units at the LAYER-level.
e.g.
LAYER NAME "my_layer"
TYPE LINE
STATUS DEFAULT
DATA "lines.shp"
GEOMTRANSFORM (simplify([shape], 10)) ## 10 ground units
CLASS
STYLE
GEOMTRANSFORM (buffer([shape], 5) ## 5 pixels
WIDTH 2
COLOR 255 0 0
END
END
END
It would be possible (but messy) to include some maths at the
layer-level to allow passing a value in pixels at the layer level as
well. This way things would be consistent between STYLE level and LAYER
level as we would always pass args in pixels, but this may not be what
we want in lots of cases, for instance if a LAYER-level GEOMTRANSFORM is
used to simplify shapes in a WFS context where pixel size makes no or
little sense.
It is also not possible at all to deal with values in ground units at
the style level because we do not have information about map cellsize at
that level in the code (so passing values in ground units at the style
level is not an option without messy code changes)
Note that in cases where we want to pass a pixel value at the layer
level, a [map_cellsize] variable will be available, e.g.
LAYER NAME "my_layer"
TYPE LINE
STATUS DEFAULT
DATA "lines.shp"
# 10 * [map_cellsize] == 10 pixels converted to ground units
GEOMTRANSFORM (simplify([shape], [map_cellsize]*10))
...
It seems that our best option would be to keep the values as pixels at
the style level and ground units at the layer level, and properly
document the difference, and hope that users won't be too confused.
What do you all think?
Daniel
On 13-02-14 6:58 AM, Alan Boudreault wrote:
> Hi devs,
>
> Please vote on RFC 89, Layer Geomtransform (
> http://mapserver.org/trunk/development/rfc/ms-rfc-89.html )
>
> I'll start with my +1.
>
> Thanks,
> Alan
>
--
Daniel Morissette
http://www.mapgears.com/
Provider of Professional MapServer Support since 2000
More information about the mapserver-dev
mailing list