public class SVGGraphicFactory extends Object implements Factory, ExternalGraphicFactory, GraphicCache
format
must be image/svg+xml
, thought for backwards
compatibility image/svg-xml
and image/svg
are accepted as well.Constructor and Description |
---|
SVGGraphicFactory() |
SVGGraphicFactory(Map<RenderingHints.Key,Object> hints) |
Modifier and Type | Method and Description |
---|---|
void |
clearCache()
Clear the graphic cache.
|
Icon |
getIcon(Feature feature,
Expression url,
String format,
int size)
Turns the specified URL into an Icon, eventually using the Feature attributes to evaluate CQL
expressions embedded in the url.
|
Map<RenderingHints.Key,?> |
getImplementationHints()
Map of hints (maybe unmodifiable) used by
this factory to customize its use.
|
static void |
resetCache()
Forcefully drops the SVG cache
|
protected RenderableSVG |
toRenderableSVG(String svgfile,
URL svgUrl) |
public SVGGraphicFactory()
public SVGGraphicFactory(Map<RenderingHints.Key,Object> hints)
public Map<RenderingHints.Key,?> getImplementationHints()
Factory
The primary purpose of this method is to determine if an existing factory
instance can be reused for a set of user-supplied hints. This method is invoked by FactoryRegistry
in order to compare this factory's hints against user's hints. This is
dependency introspection only; FactoryRegistry
never invokes this
method for creating new factories.
Keys are usually static constants from the Hints
class, while values are instances
of some key-dependent class. The key set must contains at least all
hints impacting functionality. While the key set may contains all hints supplied by the user,
it is recommended to limit the set to only the hints used by this particular factory
instance. A minimal set will helps FactoryRegistry
to compare only hints that matter
and avoid the creation of unnecessary instances of this factory.
The hint values may be different than the one supplied by the user. If a user supplied a
hint as a Class
object, this method shall replace it by the actual instance used, if
possible.
Implementations of this method are usually quite simple. For example if a datum authority factory uses an ordinary datum factory, its method could be implemented as below (note that we should not check if the datum factory is null, since key with null value is the expected behaviour in this case). Example:
Map hints = new HashMap();
hints.put(Hints.DATUM_FACTORY, datumFactory);
return hints;
getImplementationHints
in interface Factory
public Icon getIcon(Feature feature, Expression url, String format, int size) throws Exception
ExternalGraphicFactory
size
parameter defines the size of the image (so that vector based symbols
can be drawn at the specified size directly), or may be zero or negative if the size was not
specified (in that case the "natural" size of the image will be used, which is the size in
pixels for raster images, and 16 for any format that does not have a specific size, according
to the SLD spec).null
will be returned if this factory cannot handle the provided url.getIcon
in interface ExternalGraphicFactory
Exception
protected RenderableSVG toRenderableSVG(String svgfile, URL svgUrl) throws SAXException, IOException
SAXException
IOException
public static void resetCache()
public void clearCache()
GraphicCache
clearCache
in interface GraphicCache
Copyright © 1996–2022 Geotools. All rights reserved.