diff --git a/include/mapnik/svg/output/svg_generator.hpp b/include/mapnik/svg/output/svg_generator.hpp index bd5b3fffd..30f077a42 100644 --- a/include/mapnik/svg/output/svg_generator.hpp +++ b/include/mapnik/svg/output/svg_generator.hpp @@ -31,6 +31,7 @@ #include #include #include +#include namespace mapnik { namespace svg { @@ -57,6 +58,9 @@ namespace mapnik { namespace svg { void generate_opening_root(root_output_attributes const& root_attributes); void generate_closing_root(); void generate_rect(rect_output_attributes const& rect_attributes); + void generate_opening_group(mapnik::value_integer val); + void generate_opening_group(std::string const& val); + void generate_closing_group(); template void generate_path(PathType const& path, path_output_attributes const& path_attributes) { diff --git a/include/mapnik/svg/output/svg_output_grammars.hpp b/include/mapnik/svg/output/svg_output_grammars.hpp index 0bafa6599..c512e0582 100644 --- a/include/mapnik/svg/output/svg_output_grammars.hpp +++ b/include/mapnik/svg/output/svg_output_grammars.hpp @@ -172,7 +172,8 @@ struct svg_root_attributes_grammar : karma::grammar svg_root_attributes; diff --git a/src/svg/output/svg_generator.cpp b/src/svg/output/svg_generator.cpp index f5d955e07..e5e2f7a84 100644 --- a/src/svg/output/svg_generator.cpp +++ b/src/svg/output/svg_generator.cpp @@ -23,6 +23,7 @@ // mapnik #include #include +#include // boost #include @@ -65,5 +66,39 @@ namespace mapnik { namespace svg { karma::generate(output_iterator_, lit("\n"), rect_attributes); } + template + void svg_generator::generate_opening_group(mapnik::value_integer val) + { + std::string string_val; + mapnik::util::to_string(string_val,val); + karma::generate(output_iterator_, lit(" + void svg_generator::generate_opening_group(std::string const& val) + { + karma::generate(output_iterator_, lit("\n")); + } + + template + void svg_generator::generate_closing_group() + { + karma::generate(output_iterator_, lit("\n")); + } + template class svg_generator >; }} diff --git a/src/svg/output/svg_renderer.cpp b/src/svg/output/svg_renderer.cpp index 59d8b060e..49ce2b4db 100644 --- a/src/svg/output/svg_renderer.cpp +++ b/src/svg/output/svg_renderer.cpp @@ -104,12 +104,14 @@ void svg_renderer::end_map_processing(Map const& map) template void svg_renderer::start_layer_processing(layer const& lay, box2d const& query_extent) { + generator_.generate_opening_group(lay.name()); MAPNIK_LOG_DEBUG(svg_renderer) << "svg_renderer: Start layer processing=" << lay.name(); } template void svg_renderer::end_layer_processing(layer const& lay) { + generator_.generate_closing_group(); MAPNIK_LOG_DEBUG(svg_renderer) << "svg_renderer: End layer processing=" << lay.name(); }