Allow usage of SVGs as mark sources (fillable/strokable shapes, instead of finished symbols)

Description

Working on some OSM styling I've found that nowadays OSM uses mostly
SVG based icons.
The icons are "black", but the CartoCSS style associates them with a color, e.g.:

So ok, I set up to make an equivalent, by creating a SVG based mark factory,
work in progress here:

https://github.com/aaime/geotools/commit/697761685e990a85218417d45af2ce3ac11e3648

The extraction of shapes turned out to be not too hard, as I could reuse work off the
SVGExternalGraphicFactory. The annoying bit is handling the relative paths, which
is a new concept in WellKnownName.

I looked at a few approaches, including SE 1.1 ExternalMark[1], and eventually settled
down on adding an explicit file reference, like this:

which, starting from a black, 14x14 SVG symbol, results in a 32x32 red icon:

The magic is done, as usual, in SLDParser, and would have to be replicated in the gt-xsd bindings and
inside GeoServer (the data dir handling code).

[1] Discarded because we want the entire thing, not a bit inside of a library, and there is no way to write SE 1.1, so it would be unusable for CSS/Mapbox/YSLD

Environment

None

Assignee

Andrea Aime

Reporter

Andrea Aime

Triage

None

Components

Fix versions

Priority

Medium
Configure