diff --git a/include/mapnik/polygon_symbolizer.hpp b/include/mapnik/polygon_symbolizer.hpp index c5ee93dc1..96de5c838 100644 --- a/include/mapnik/polygon_symbolizer.hpp +++ b/include/mapnik/polygon_symbolizer.hpp @@ -64,7 +64,7 @@ namespace mapnik { explicit building_symbolizer() : fill_(color(128,128,128)), - height_(0), + height_(0.0), opacity_(1.0) {} diff --git a/src/save_map.cpp b/src/save_map.cpp index 9cd9ee7f6..94dfd0a90 100644 --- a/src/save_map.cpp +++ b/src/save_map.cpp @@ -183,6 +183,10 @@ namespace mapnik { set_css( sym_node, "fill-opacity", sym.get_opacity() ); } + if ( sym.height() != dfl.height() || explicit_defaults_ ) + { + set_css( sym_node, "height", sym.height() ); + } } void operator () ( markers_symbolizer const& ) diff --git a/tests/python_tests/render_test.py b/tests/python_tests/render_test.py index c1589d07a..bdb02ba26 100644 --- a/tests/python_tests/render_test.py +++ b/tests/python_tests/render_test.py @@ -42,3 +42,26 @@ def test_render_image_to_file(): os.remove('test.png') else: return False + +def get_paired_images(w,h,mapfile): + tmp_map = 'tmp_map.xml' + m = mapnik.Map(w,h) + mapnik.load_map(m,mapfile) + i = mapnik.Image(w,h) + m.zoom_all() + mapnik.render(m,i) + mapnik.save_map(m,tmp_map) + m2 = mapnik.Map(w,h) + mapnik.load_map(m2,tmp_map) + i2 = mapnik.Image(w,h) + m2.zoom_all() + mapnik.render(m2,i2) + os.remove(tmp_map) + return i,i2 + +def test_render_from_serialization(): + i,i2 = get_paired_images(100,100,'../data/good_maps/building_symbolizer.xml') + eq_(i.tostring(),i2.tostring()) + + i,i2 = get_paired_images(100,100,'../data/good_maps/polygon_symbolizer.xml') + eq_(i.tostring(),i2.tostring())