From d3bc55761b0213e243f36a48062a52a006fd01f6 Mon Sep 17 00:00:00 2001 From: artemp Date: Thu, 12 Jul 2012 10:57:57 +0100 Subject: [PATCH] + define keys container in client code not in grid/grid_view, e.g doesn't have to be std::map<...> --- bindings/python/python_grid_utils.hpp | 28 +++++++++++++++++---------- include/mapnik/grid/grid.hpp | 1 - include/mapnik/grid/grid_view.hpp | 1 - 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/bindings/python/python_grid_utils.hpp b/bindings/python/python_grid_utils.hpp index 62d83a9c0..f3d1301ca 100644 --- a/bindings/python/python_grid_utils.hpp +++ b/bindings/python/python_grid_utils.hpp @@ -47,11 +47,14 @@ static void grid2utf(T const& grid_type, boost::python::list& l, std::vector& key_order) { + typedef std::map< typename T::lookup_type, typename T::value_type> keys_type; + typedef typename keys_type::const_iterator keys_iterator; + typename T::data_type const& data = grid_type.data(); typename T::feature_key_type const& feature_keys = grid_type.get_feature_keys(); - typename T::key_type keys; - typename T::key_type::const_iterator key_pos; typename T::feature_key_type::const_iterator feature_pos; + + keys_type keys; // start counting at utf8 codepoint 32, aka space character boost::uint16_t codepoint = 32; @@ -68,7 +71,7 @@ static void grid2utf(T const& grid_type, if (feature_pos != feature_keys.end()) { mapnik::grid::lookup_type val = feature_pos->second; - key_pos = keys.find(val); + keys_iterator key_pos = keys.find(val); if (key_pos == keys.end()) { // Create a new entry for this key. Skip the codepoints that @@ -108,11 +111,13 @@ static void grid2utf(T const& grid_type, std::vector& key_order, unsigned int resolution) { - //typename T::data_type const& data = grid_type.data(); + typedef std::map< typename T::lookup_type, typename T::value_type> keys_type; + typedef typename keys_type::const_iterator keys_iterator; + typename T::feature_key_type const& feature_keys = grid_type.get_feature_keys(); - typename T::key_type keys; - typename T::key_type::const_iterator key_pos; typename T::feature_key_type::const_iterator feature_pos; + + keys_type keys; // start counting at utf8 codepoint 32, aka space character boost::uint16_t codepoint = 32; @@ -130,7 +135,7 @@ static void grid2utf(T const& grid_type, if (feature_pos != feature_keys.end()) { mapnik::grid::lookup_type val = feature_pos->second; - key_pos = keys.find(val); + keys_iterator key_pos = keys.find(val); if (key_pos == keys.end()) { // Create a new entry for this key. Skip the codepoints that @@ -170,11 +175,14 @@ static void grid2utf2(T const& grid_type, std::vector& key_order, unsigned int resolution) { + typedef std::map< typename T::lookup_type, typename T::value_type> keys_type; + typedef typename keys_type::const_iterator keys_iterator; + typename T::data_type const& data = grid_type.data(); typename T::feature_key_type const& feature_keys = grid_type.get_feature_keys(); - typename T::key_type keys; - typename T::key_type::const_iterator key_pos; typename T::feature_key_type::const_iterator feature_pos; + + keys_type keys; // start counting at utf8 codepoint 32, aka space character uint16_t codepoint = 32; @@ -194,7 +202,7 @@ static void grid2utf2(T const& grid_type, if (feature_pos != feature_keys.end()) { mapnik::grid::lookup_type val = feature_pos->second; - key_pos = keys.find(val); + keys_iterator key_pos = keys.find(val); if (key_pos == keys.end()) { // Create a new entry for this key. Skip the codepoints that diff --git a/include/mapnik/grid/grid.hpp b/include/mapnik/grid/grid.hpp index 416608e72..0c89e8173 100644 --- a/include/mapnik/grid/grid.hpp +++ b/include/mapnik/grid/grid.hpp @@ -58,7 +58,6 @@ public: typedef std::string lookup_type; // mapping between pixel id and key typedef std::map feature_key_type; - typedef std::map key_type; typedef std::map feature_type; static const value_type base_mask; diff --git a/include/mapnik/grid/grid_view.hpp b/include/mapnik/grid/grid_view.hpp index c1d52d15c..a33e1656a 100644 --- a/include/mapnik/grid/grid_view.hpp +++ b/include/mapnik/grid/grid_view.hpp @@ -53,7 +53,6 @@ public: typedef typename T::pixel_type pixel_type; typedef std::string lookup_type; typedef std::map feature_key_type; - typedef std::map key_type; typedef std::map feature_type; hit_grid_view(unsigned x, unsigned y,