[OSM-dev] Question about ShieldSymbolizer in template file

Dave Stubbs osm.list at randomjunk.co.uk
Thu May 29 10:47:37 BST 2008

On Wed, May 28, 2008 at 9:11 PM, Brian Peschel <brianp at occinc.com> wrote:
> I was looking at the template file osm-template.xml.  In there I see a
> definition for a ShieldSymbolizer.
>  <Style name="roads-text">
>    <Rule>
>      <Filter>[highway] = 'motorway' and [length] = 1</Filter>
>      <MaxScaleDenominator>500000</MaxScaleDenominator>
>      <MinScaleDenominator>100</MinScaleDenominator>
>      <ShieldSymbolizer name="ref" face_name="DejaVu Sans Bold"
> size="11" fill="#809bc0" placement="line"
> file="%SYMBOLS_DIR%/motorway_shield1.png" type="png" width="17"
> height="17" min_distance="100"/>
>    </Rule>
> What interests me is the 'placement' attribute.  (I am not sure if this
> should be in the mapnik mailing list or this one, but since it is the
> OSM template file, I am posting here).  Looking at the mapnik source
> code for the load_map() method, this isn't supported.  mapnik never
> reads this field out of the xml file.
> Since the shield_symbolizer class inherits from the text_symbolizer
> class, I know it can be set, it just isn't being done.
> Is this an oversight on the mapnik side?  Or does this attribute have no
> meaning for a shield symbolizer and (probably) should be removed from
> the template file?

The mapnik renderer classes hard code the shield symbolizer to a point
placement. It doesn't really make much sense otherwise.

So yes, the placement attribute in the style file is redundant (and a
little misleading given it's set to line), and can be removed.


More information about the dev mailing list