Changeset 1688

Show
Ignore:
Timestamp:
03/12/10 09:49:50 (5 months ago)
Author:
alberto
Message:

xml de/serialization support for RasterColorizer

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/save_map.cpp

    r1682 r1688  
    2727#include <mapnik/ptree_helpers.hpp> 
    2828#include <mapnik/expression_string.hpp> 
     29#include <mapnik/raster_colorizer.hpp> 
    2930 
    3031// boost 
     
    4445    using boost::optional; 
    4546 
     47    void serialize_raster_colorizer(ptree & sym_node, 
     48                                    raster_colorizer_ptr const& colorizer, 
     49                                    bool explicit_defaults) 
     50    { 
     51        ptree & col_node = sym_node.push_back( 
     52                ptree::value_type("RasterColorizer", ptree() ))->second; 
     53 
     54        unsigned i; 
     55        color_bands const &cb = colorizer->get_color_bands(); 
     56        for (i=0; i<cb.size(); i++) { 
     57           if (!cb[i].is_interpolated()) { 
     58               ptree & band_node = col_node.push_back( 
     59                    ptree::value_type("ColorBand", ptree()) 
     60                  )->second; 
     61               set_attr(band_node, "value", cb[i].get_value());     
     62               set_attr(band_node, "midpoints", cb[i].get_midpoints());     
     63               optional<color> c = cb[i].get_color(); 
     64               if (c) set_attr(band_node, "color", * c);     
     65           } 
     66        } 
     67 
     68    } 
     69 
    4670    class serialize_symbolizer : public boost::static_visitor<> 
    4771    { 
     
    164188                    set_css( sym_node, "opacity", sym.get_opacity() ); 
    165189                } 
     190                if (sym.get_colorizer()) { 
     191                   serialize_raster_colorizer(sym_node, sym.get_colorizer(), 
     192                                              explicit_defaults_); 
     193                } 
     194                     
    166195            } 
    167196 
  • trunk/tests/python_tests/raster_colorizer_test.py

    r1686 r1688  
    1  
    21import mapnik2 
    32from nose.tools import * 
    43 
    5 class test_raster_colorizer(): 
     4def test_get_color(): 
    65    colorizer = mapnik2.RasterColorizer() 
    76    # Setup the color bands. band[N].color will apply to all 
  • trunk/tests/python_tests/raster_symbolizer_test.py

    r1685 r1688  
    8989    features = _map.query_point(0,126850,4596050).features 
    9090    assert len(features) == 0 
     91 
     92def test_load_save_map(): 
     93    map = mapnik2.Map(256,256) 
     94    in_map = "../data/good_maps/raster_symbolizer.xml" 
     95    mapnik2.load_map(map, in_map) 
     96 
     97    out_map = mapnik2.save_map_to_string(map) 
     98    assert 'RasterSymbolizer' in out_map 
     99    assert 'RasterColorizer' in out_map 
     100    assert 'ColorBand' in out_map