load_map : allow optional expressions in symbolizer properties (work-in-progress)
This commit is contained in:
parent
442ffbe911
commit
37fea12091
1 changed files with 19 additions and 11 deletions
|
@ -106,15 +106,11 @@ private:
|
||||||
void parse_raster_symbolizer(rule & rule, xml_node const& sym);
|
void parse_raster_symbolizer(rule & rule, xml_node const& sym);
|
||||||
void parse_markers_symbolizer(rule & rule, xml_node const& sym);
|
void parse_markers_symbolizer(rule & rule, xml_node const& sym);
|
||||||
void parse_debug_symbolizer(rule & rule, xml_node const& sym);
|
void parse_debug_symbolizer(rule & rule, xml_node const& sym);
|
||||||
|
|
||||||
bool parse_raster_colorizer(raster_colorizer_ptr const& rc, xml_node const& node);
|
bool parse_raster_colorizer(raster_colorizer_ptr const& rc, xml_node const& node);
|
||||||
void parse_stroke(symbolizer_base & symbol, xml_node const & sym);
|
void parse_stroke(symbolizer_base & symbol, xml_node const & sym);
|
||||||
|
|
||||||
void ensure_font_face(std::string const& face_name);
|
void ensure_font_face(std::string const& face_name);
|
||||||
void find_unused_nodes(xml_node const& root);
|
void find_unused_nodes(xml_node const& root);
|
||||||
void find_unused_nodes_recursive(xml_node const& node, std::string & error_text);
|
void find_unused_nodes_recursive(xml_node const& node, std::string & error_text);
|
||||||
|
|
||||||
|
|
||||||
std::string ensure_relative_to_xml(boost::optional<std::string> const& opt_path);
|
std::string ensure_relative_to_xml(boost::optional<std::string> const& opt_path);
|
||||||
void ensure_exists(std::string const& file_path);
|
void ensure_exists(std::string const& file_path);
|
||||||
boost::optional<color> get_opt_color_attr(boost::property_tree::ptree const& node,
|
boost::optional<color> get_opt_color_attr(boost::property_tree::ptree const& node,
|
||||||
|
@ -1298,9 +1294,16 @@ void map_parser::parse_stroke(symbolizer_base & symbol, xml_node const & sym)
|
||||||
if (stroke) put(symbol, keys::stroke, *stroke);
|
if (stroke) put(symbol, keys::stroke, *stroke);
|
||||||
|
|
||||||
// stroke-width
|
// stroke-width
|
||||||
|
try
|
||||||
|
{
|
||||||
optional<double> width = sym.get_opt_attr<double>("stroke-width");
|
optional<double> width = sym.get_opt_attr<double>("stroke-width");
|
||||||
if (width) put(symbol, keys::stroke_width, *width);
|
if (width) put(symbol, keys::stroke_width, *width);
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
optional<expression_ptr> width = sym.get_opt_attr<expression_ptr>("stroke-width");
|
||||||
|
if (width) put(symbol, keys::stroke_width, *width);
|
||||||
|
}
|
||||||
// stroke-opacity
|
// stroke-opacity
|
||||||
optional<double> opacity = sym.get_opt_attr<double>("stroke-opacity");
|
optional<double> opacity = sym.get_opt_attr<double>("stroke-opacity");
|
||||||
if (opacity) put(symbol, keys::stroke_opacity, *opacity);
|
if (opacity) put(symbol, keys::stroke_opacity, *opacity);
|
||||||
|
@ -1396,12 +1399,17 @@ void map_parser::parse_polygon_symbolizer(rule & rule, xml_node const & sym)
|
||||||
{
|
{
|
||||||
polygon_symbolizer poly_sym;
|
polygon_symbolizer poly_sym;
|
||||||
// fill
|
// fill
|
||||||
optional<color> fill = sym.get_opt_attr<color>("fill");
|
try
|
||||||
//optional<expression_ptr> fill = sym.get_opt_attr<expression_ptr>("fill");
|
|
||||||
if (fill)
|
|
||||||
{
|
{
|
||||||
put(poly_sym, keys::fill, *fill);
|
optional<color> fill = sym.get_opt_attr<color>("fill");
|
||||||
|
if (fill) put(poly_sym, keys::fill, *fill);
|
||||||
}
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
optional<expression_ptr> fill = sym.get_opt_attr<expression_ptr>("fill");
|
||||||
|
if (fill) put(poly_sym, keys::fill, *fill);
|
||||||
|
}
|
||||||
|
|
||||||
// fill-opacity
|
// fill-opacity
|
||||||
optional<double> opacity = sym.get_opt_attr<double>("fill-opacity");
|
optional<double> opacity = sym.get_opt_attr<double>("fill-opacity");
|
||||||
if (opacity) put(poly_sym, keys::fill_opacity, *opacity);
|
if (opacity) put(poly_sym, keys::fill_opacity, *opacity);
|
||||||
|
|
Loading…
Reference in a new issue