diff --git a/bindings/python/mapnik_line_pattern_symbolizer.cpp b/bindings/python/mapnik_line_pattern_symbolizer.cpp index f0de960c2..3e0265834 100644 --- a/bindings/python/mapnik_line_pattern_symbolizer.cpp +++ b/bindings/python/mapnik_line_pattern_symbolizer.cpp @@ -22,10 +22,22 @@ //$Id$ #include +#include #include using mapnik::line_pattern_symbolizer; +struct line_pattern_symbolizer_pickle_suite : boost::python::pickle_suite +{ + static boost::python::tuple + getinitargs(const line_pattern_symbolizer& l) + { + boost::shared_ptr img = l.get_image(); + const std::string & filename = l.get_filename(); + return boost::python::make_tuple(filename,mapnik::guess_type(filename),img->width(),img->height()); + } +}; + void export_line_pattern_symbolizer() { using namespace boost::python; @@ -33,5 +45,6 @@ void export_line_pattern_symbolizer() class_("LinePatternSymbolizer", init("TODO")) + .def_pickle(line_pattern_symbolizer_pickle_suite()) ; } diff --git a/bindings/python/mapnik_polygon_pattern_symbolizer.cpp b/bindings/python/mapnik_polygon_pattern_symbolizer.cpp index e76081b54..0d731a4c7 100644 --- a/bindings/python/mapnik_polygon_pattern_symbolizer.cpp +++ b/bindings/python/mapnik_polygon_pattern_symbolizer.cpp @@ -22,16 +22,29 @@ //$Id$ #include +#include #include +using mapnik::polygon_pattern_symbolizer; + +struct polygon_pattern_symbolizer_pickle_suite : boost::python::pickle_suite +{ + static boost::python::tuple + getinitargs(const polygon_pattern_symbolizer& p) + { + boost::shared_ptr img = p.get_image(); + const std::string & filename = p.get_filename(); + return boost::python::make_tuple(filename,mapnik::guess_type(filename),img->width(),img->height()); + } +}; + void export_polygon_pattern_symbolizer() { using namespace boost::python; - using mapnik::polygon_pattern_symbolizer; class_("PolygonPatternSymbolizer", init("TODO")) - ; + .def_pickle(polygon_pattern_symbolizer_pickle_suite()) ; }