27 #include "../../common/Translator.h"
28 #include "../../xml/Reader.h"
29 #include "../../xml/Writer.h"
30 #include "../../se/LineSymbolizer.h"
31 #include "../../se/PointSymbolizer.h"
32 #include "../../se/PolygonSymbolizer.h"
33 #include "../../se/RasterSymbolizer.h"
34 #include "../../se/TextSymbolizer.h"
35 #include "../xlink/SimpleLink.h"
36 #include "../Exception.h"
59 #include <boost/format.hpp>
75 m_fncts[symbolizerType] = fncts;
82 SymbolizerFnctIdxType::const_iterator it = m_fncts.find(symbolizerType);
84 if(it == m_fncts.end())
85 throw Exception((boost::format(
TR_SERIALIZATION(
"Could not find a reader for the following symbolizer type: %1%.")) % symbolizerType).str());
87 assert(it->second.second);
89 return it->second.first(reader);
96 SymbolizerFnctIdxType::const_iterator it = m_fncts.find(symbolizer->
getType());
98 if(it == m_fncts.end())
99 throw Exception((boost::format(
TR_SERIALIZATION(
"Could not find a writer for the following symbolizer type: %1%.")) % symbolizer->
getType()).str());
101 assert(it->second.second);
103 return it->second.second(symbolizer, writer);
A LineSymbolizer is used to style a stroke along a linear geometry type, such as a string of line seg...
Auxiliary classes and functions to serialize Symbolizer informations from a XML document.
ParameterValue * getOpacity() const
Support for Fill serialization.
The RasterSymbolizer describes how to render raster/matrix-coverage data (e.g., satellite photos...
Support for Stroke serialization.
const te::fe::PropertyName * getGeometry() const
const Fill * getFill() const
const ParameterValue * getPerpendicularOffset() const
te::se::ChannelSelection * getChannelSelection() const
Support for ColorMap serialization.
TESERIALIZATIONEXPORT te::se::ParameterValue * ReadParameterValue(te::xml::Reader &reader)
virtual const std::string & getType() const =0
It returns the symbolizer type.
void WriteSymbolizerHelper(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer)
te::se::Symbolizer * LineSymbolizerReader(te::xml::Reader &reader)
Utility methods for Symbology serialization.
std::pair< SymbolizerReadFnctType, SymbolizerWriteFnctType > SymbolizerFnctSerializeType
A Symbolizer describes how a feature is to appear on a map.
A PolygonSymbolizer is used to draw a polygon (or other area-type geometries), including filling its ...
te::se::Symbolizer * read(te::xml::Reader &reader) const
This class models a XML reader object.
void WriteParameterValuePtrHelper(const std::string &elementName, const te::se::ParameterValue *p, te::xml::Writer &writer)
te::se::Symbolizer * TextSymbolizerReader(te::xml::Reader &reader)
Support for Font serialization.
virtual bool next()=0
It gets the next event to be read.
boost::function< void(const te::se::Symbolizer *, te::xml::Writer &)> SymbolizerWriteFnctType
#define TR_SERIALIZATION(message)
It marks a string in order to get translated. This is a special mark used in the XML module of TerraL...
const te::fe::PropertyName * getGeometry() const
SymbolizerFnctIdxType m_fncts
void RasterSymbolizerWriter(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer)
Support for ImageOutline serialization.
Support for ChannelSelection serialization.
virtual void writeStartElement(const std::string &qName)
te::se::Symbolizer * RasterSymbolizerReader(te::xml::Reader &reader)
TESERIALIZATIONEXPORT te::se::LabelPlacement * ReadLabelPlacement(te::xml::Reader &reader)
const Stroke * getStroke() const
te::se::Symbolizer * PolygonSymbolizerReader(te::xml::Reader &reader)
const Font * getFont() const
OverlapBehavior getOverlapBehavior() const
virtual void writeEndElement(const std::string &qName)
TESERIALIZATIONEXPORT te::se::Halo * ReadHalo(te::xml::Reader &reader)
const Stroke * getStroke() const
Gets the Stroke associates with the PolygonSymbolizer.
TESERIALIZATIONEXPORT te::se::Font * ReadFont(te::xml::Reader &reader)
A PointSymbolizer specifies the rendering of a graphic Symbolizer at a point.
Support for OverlapBehavior serialization.
TESERIALIZATIONEXPORT te::se::ContrastEnhancement * ReadContrastEnhancement(te::xml::Reader &reader)
TESERIALIZATIONEXPORT void Save(const te::fe::Filter *filter, te::xml::Writer &writer)
te::fe::PropertyName * ReadGeometryPropertyHelper(te::xml::Reader &reader)
Support for Displacement serialization.
TESERIALIZATIONEXPORT te::se::ShadedRelief * ReadShadedRelief(te::xml::Reader &reader)
const Halo * getHalo() const
TESERIALIZATIONEXPORT te::se::ColorMap * ReadColorMap(te::xml::Reader &reader)
Support for Graphic serialization.
TESERIALIZATIONEXPORT te::se::ChannelSelection * ReadChannelSelection(te::xml::Reader &reader)
const Graphic * getGraphic() const
const ParameterValue * getPerpendicularOffset() const
A TextSymbolizer is used to render text labels according to various graphical parameters.
TESERIALIZATIONEXPORT te::se::Stroke * ReadStroke(te::xml::Reader &reader)
te::se::ImageOutline * getImageOutline() const
void PointSymbolizerWriter(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer)
void LineSymbolizerWriter(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer)
te::se::ColorMap * getColorMap() const
Support for Description serialization.
void ReadSymbolizerHelper(te::se::Symbolizer *symbolizer, te::xml::Reader &reader)
TESERIALIZATIONEXPORT te::se::RasterSymbolizer::OverlapBehavior ReadOverlapBehavior(te::xml::Reader &reader)
Support for Halo serialization.
boost::function< te::se::Symbolizer *(te::xml::Reader &)> SymbolizerReadFnctType
const LabelPlacement * getLabelPlacement() const
void PolygonSymbolizerWriter(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer)
void WriteGeometryPropertyHelper(const te::fe::PropertyName *p, te::xml::Writer &writer)
ShadedRelief * getShadedRelief() const
Support for LabelPlacement serialization.
const Fill * getFill() const
Gets the Fill associates with the PolygonSymbolizer.
void TextSymbolizerWriter(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer)
TESERIALIZATIONEXPORT te::se::Displacement * ReadDisplacement(te::xml::Reader &reader)
void reg(const std::string &symbolizerType, const SymbolizerFnctSerializeType &fncts)
TESERIALIZATIONEXPORT te::se::Graphic * ReadGraphic(te::xml::Reader &reader)
te::se::ContrastEnhancement * getContrastEnhancement() const
virtual NodeType getNodeType() const =0
It return the type of node read.
const ParameterValue * getLabel() const
const te::fe::PropertyName * getGeometry() const
TESERIALIZATIONEXPORT te::se::ImageOutline * ReadImageOutline(te::xml::Reader &reader)
const Displacement * getDisplacement() const
virtual std::string getElementLocalName() const =0
It returns the local part of the element name in the case of an element node.
Support for ShadedRelief serialization.
Support for ContrastEnhancement serialization.
TESERIALIZATIONEXPORT te::se::Fill * ReadFill(te::xml::Reader &reader)
te::se::Symbolizer * PointSymbolizerReader(te::xml::Reader &reader)
void write(const te::se::Symbolizer *symbolizer, te::xml::Writer &writer) const
This class models a XML writer object.