[Git][debian-gis-team/python-mapnik][upstream] New upstream version 0.0~20180411-fe47aa15e
Bas Couwenberg
gitlab at salsa.debian.org
Sat Apr 14 12:20:43 BST 2018
Bas Couwenberg pushed to branch upstream at Debian GIS Project / python-mapnik
Commits:
aaf44a8a by Bas Couwenberg at 2018-04-12T16:10:50+02:00
New upstream version 0.0~20180411-fe47aa15e
- - - - -
2 changed files:
- demo/python/rundemo.py
- src/mapnik_symbolizer.cpp
Changes:
=====================================
demo/python/rundemo.py
=====================================
--- a/demo/python/rundemo.py
+++ b/demo/python/rundemo.py
@@ -164,7 +164,7 @@ sym = mapnik.LineSymbolizer()
# FIXME - currently adding dash arrays is broken
# https://github.com/mapnik/mapnik/issues/2324
sym.stroke = mapnik.Color('black')
-sym.stroke_width = 1.0
+sym.stroke_width = 1
provlines_rule.symbols.append(sym)
provlines_style.rules.append(provlines_rule)
@@ -196,7 +196,7 @@ roads34_rule.filter = mapnik.Expression('([CLASS] = 3) or ([CLASS] = 4)')
sym = mapnik.LineSymbolizer()
sym.stroke = mapnik.Color(171,158,137)
-sym.stroke_width = 2.0
+sym.stroke_width = 2
sym.stroke_linecap = mapnik.stroke_linecap.ROUND_CAP
roads34_rule.symbols.append(sym)
@@ -219,7 +219,7 @@ roads2_rule_1.filter = mapnik.Expression('[CLASS] = 2')
sym = mapnik.LineSymbolizer()
sym.stroke = mapnik.Color(171,158,137)
-sym.stroke_width = 4.0
+sym.stroke_width = 4
sym.stroke_linecap = mapnik.stroke_linecap.ROUND_CAP
roads2_rule_1.symbols.append(sym)
roads2_style_1.rules.append(roads2_rule_1)
@@ -232,7 +232,7 @@ roads2_rule_2.filter = mapnik.Expression('[CLASS] = 2')
sym = mapnik.LineSymbolizer()
sym.stroke = mapnik.Color(255,250,115)
sym.stroke_linecap = mapnik.stroke_linecap.ROUND_CAP
-sym.stroke_width = 2.0
+sym.stroke_width = 2
roads2_rule_2.symbols.append(sym)
roads2_style_2.rules.append(roads2_rule_2)
@@ -255,7 +255,7 @@ roads1_rule_1.filter = mapnik.Expression('[CLASS] = 1')
sym = mapnik.LineSymbolizer()
sym.stroke = mapnik.Color(188,149,28)
sym.stroke_linecap = mapnik.stroke_linecap.ROUND_CAP
-sym.stroke_width = 7.0
+sym.stroke_width = 7
roads1_rule_1.symbols.append(sym)
roads1_style_1.rules.append(roads1_rule_1)
m.append_style('highway-border', roads1_style_1)
@@ -265,7 +265,7 @@ roads1_rule_2 = mapnik.Rule()
roads1_rule_2.filter = mapnik.Expression('[CLASS] = 1')
sym.stroke = mapnik.Color(242,191,36)
sym.stroke_linecap = mapnik.stroke_linecap.ROUND_CAP
-sym.stroke_width = 5.0
+sym.stroke_width = 5
roads1_rule_2.symbols.append(sym)
roads1_style_2.rules.append(roads1_rule_2)
=====================================
src/mapnik_symbolizer.cpp
=====================================
--- a/src/mapnik_symbolizer.cpp
+++ b/src/mapnik_symbolizer.cpp
@@ -47,9 +47,6 @@
#include <mapnik/group/group_symbolizer_properties.hpp>
#include <mapnik/util/variant.hpp>
-// stl
-#include <sstream>
-
using mapnik::symbolizer;
using mapnik::point_symbolizer;
using mapnik::line_symbolizer;
@@ -73,10 +70,61 @@ using mapnik::parse_path;
namespace {
+
+struct value_to_target
+{
+ value_to_target(mapnik::symbolizer_base & sym, std::string const& name)
+ : sym_(sym), name_(name) {}
+
+ void operator() (mapnik::value_integer const& val)
+ {
+ auto key = mapnik::get_key(name_);
+ switch (std::get<2>(get_meta(key)))
+ {
+ case mapnik::property_types::target_bool:
+ put(sym_, key, static_cast<mapnik::value_bool>(val));
+ break;
+ case mapnik::property_types::target_double:
+ put(sym_, key, static_cast<mapnik::value_double>(val));
+ break;
+ default:
+ put(sym_, key, val);
+ break;
+ }
+ }
+
+ void operator() (mapnik::value_double const& val)
+ {
+ auto key = mapnik::get_key(name_);
+ switch (std::get<2>(get_meta(key)))
+ {
+ case mapnik::property_types::target_bool:
+ put(sym_, key, static_cast<mapnik::value_bool>(val));
+ break;
+ case mapnik::property_types::target_integer:
+ put(sym_, key, static_cast<mapnik::value_integer>(val));
+ break;
+ default:
+ put(sym_, key, val);
+ break;
+ }
+ }
+
+ template <typename T>
+ void operator() (T const& val)
+ {
+ put(sym_, mapnik::get_key(name_), val);
+ }
+private:
+ mapnik::symbolizer_base & sym_;
+ std::string const& name_;
+
+};
+
using namespace boost::python;
void __setitem__(mapnik::symbolizer_base & sym, std::string const& name, mapnik::symbolizer_base::value_type const& val)
{
- put(sym, mapnik::get_key(name), val);
+ mapnik::util::apply_visitor(value_to_target(sym, name), val);
}
std::shared_ptr<mapnik::symbolizer_base::value_type> numeric_wrapper(const object& arg)
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-mapnik/commit/aaf44a8a9dfe45790a65ccb30bba630a1cc80dd6
---
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-mapnik/commit/aaf44a8a9dfe45790a65ccb30bba630a1cc80dd6
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20180414/8dc379f6/attachment-0001.html>
More information about the Pkg-grass-devel
mailing list