From dcd21e75d9a64c577422a4d6ef69aebfbdb7b456 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Fri, 12 Sep 2014 15:50:00 -0700 Subject: [PATCH] be able to pass down scale_factor to python grid renderering --- bindings/python/mapnik_python.cpp | 24 ++++++++++++++++++++---- bindings/python/python_grid_utils.cpp | 14 ++++++-------- bindings/python/python_grid_utils.hpp | 10 ++++------ 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/bindings/python/mapnik_python.cpp b/bindings/python/mapnik_python.cpp index 278e7b611..4dd1161df 100644 --- a/bindings/python/mapnik_python.cpp +++ b/bindings/python/mapnik_python.cpp @@ -220,7 +220,10 @@ void render_with_detector( void render_layer2(mapnik::Map const& map, mapnik::image_32& image, - unsigned layer_idx) + unsigned layer_idx, + double scale_factor, + unsigned offset_x, + unsigned offset_y) { std::vector const& layers = map.layers(); std::size_t layer_num = layers.size(); @@ -233,7 +236,7 @@ void render_layer2(mapnik::Map const& map, python_unblock_auto_block b; mapnik::layer const& layer = layers[layer_idx]; - mapnik::agg_renderer ren(map,image,1.0,0,0); + mapnik::agg_renderer ren(map,image,scale_factor,offset_x,offset_y); std::set names; ren.apply(layer,names); } @@ -730,12 +733,25 @@ BOOST_PYTHON_MODULE(_mapnik) )); def("render_layer", &render_layer2, - (arg("map"),arg("image"),args("layer")) + (arg("map"), + arg("image"), + arg("layer"), + arg("scale_factor")=1.0, + arg("offset_x")=0, + arg("offset_y")=0 + ) ); #if defined(GRID_RENDERER) def("render_layer", &mapnik::render_layer_for_grid, - (arg("map"),arg("grid"),args("layer"),arg("fields")=boost::python::list()) + (arg("map"), + arg("grid"), + arg("layer"), + arg("fields")=boost::python::list(), + arg("scale_factor")=1.0, + arg("offset_x")=0, + arg("offset_y")=0 + ) ); #endif diff --git a/bindings/python/python_grid_utils.cpp b/bindings/python/python_grid_utils.cpp index 1b36b1340..13ac5d493 100644 --- a/bindings/python/python_grid_utils.cpp +++ b/bindings/python/python_grid_utils.cpp @@ -339,15 +339,13 @@ boost::python::dict grid_encode( T const& grid, std::string const& format, bool template boost::python::dict grid_encode( mapnik::grid const& grid, std::string const& format, bool add_features, unsigned int resolution); template boost::python::dict grid_encode( mapnik::grid_view const& grid, std::string const& format, bool add_features, unsigned int resolution); -/* new approach: key comes from grid object - * grid size should be same as the map - * encoding, resizing handled as method on grid object - * whether features are dumped is determined by argument not 'fields' - */ void render_layer_for_grid(mapnik::Map const& map, mapnik::grid & grid, - unsigned layer_idx, // TODO - layer by name or index - boost::python::list const& fields) + unsigned layer_idx, + boost::python::list const& fields, + double scale_factor, + unsigned offset_x, + unsigned offset_y) { std::vector const& layers = map.layers(); std::size_t layer_num = layers.size(); @@ -390,7 +388,7 @@ void render_layer_for_grid(mapnik::Map const& map, attributes.insert(join_field); } - mapnik::grid_renderer ren(map,grid,1.0,0,0); + mapnik::grid_renderer ren(map,grid,scale_factor,offset_x,offset_y); mapnik::layer const& layer = layers[layer_idx]; ren.apply(layer,attributes); } diff --git a/bindings/python/python_grid_utils.hpp b/bindings/python/python_grid_utils.hpp index 86d076869..f6089449f 100644 --- a/bindings/python/python_grid_utils.hpp +++ b/bindings/python/python_grid_utils.hpp @@ -66,15 +66,13 @@ void grid_encode_utf(T const& grid_type, template boost::python::dict grid_encode( T const& grid, std::string const& format, bool add_features, unsigned int resolution); -/* new approach: key comes from grid object - * grid size should be same as the map - * encoding, resizing handled as method on grid object - * whether features are dumped is determined by argument not 'fields' - */ void render_layer_for_grid(const mapnik::Map& map, mapnik::grid& grid, unsigned layer_idx, // TODO - layer by name or index - boost::python::list const& fields); + boost::python::list const& fields, + double scale_factor, + unsigned offset_x, + unsigned offset_y); }