<symbol>/<use> not supported in SVG PointSymbolizer?

11 views
Skip to first unread message

Hartmut Holzgraefe

unread,
Jun 5, 2017, 7:12:03 PM6/5/17
to mapnik
Hi,

looks as if <symbol>s referenced by <use> are not supported when using
SVG images with PointSymbolizer / ShieldSymbolizer?

Is this indeed an unsupported SVG feature, or am I simply doing it wrong?

As an example I rendered a GPX path with Waypoints, using a SVG that has
a black square background and a smaller white square foreground.

The style for waypoings is as simple as possible:

<Style name="point">
<Rule>
<PointSymbolizer file="marker.svg" />
</Rule>
</Style>


With a "simple" SVG the result looks as expected:

http://osm-baustelle.de/simple.png

but when the white square is defined as a SVG <symbol> and referenced
by a <use> xlink only the black background square gets rendered:

http://osm-baustelle.de/symbol-use.png

The actual SVG files look exactly the same in the browser:

http://osm-baustelle.de/simple.svg
http://osm-baustelle.de/symbol-use.svg

In this example it would be easy to just replace the <use> with the
actual path, in the actual use case the <symbol>s in the SVG are
glyph paths auto-generated by Cairo/Pango which are referenced with
an x/y offset, and potentially multiple times.

So post-processing the auto-generated SVG images would be a bit more
complicated than just moving lines to a different part of the file.

--
hartmut
Reply all
Reply to author
Forward
0 new messages