def test_stroke_dash_arrays(): s = mapnik2.Stroke() s.add_dash(1,2) s.add_dash(3,4) s.add_dash(5,6) eq_(s.get_dashes(), [(1,2),(3,4),(5,6)])
def test_linesymbolizer_init(): l = mapnik2.LineSymbolizer() eq_(l.stroke.width, 1) eq_(l.stroke.opacity, 1) eq_(l.stroke.color, mapnik2.Color('black')) eq_(l.stroke.line_cap, mapnik2.line_cap.BUTT_CAP) eq_(l.stroke.line_join, mapnik2.line_join.MITER_JOIN) l = mapnik2.LineSymbolizer(mapnik2.Color('blue'), 5.0) eq_(l.stroke.width, 5) eq_(l.stroke.opacity, 1) eq_(l.stroke.color, mapnik2.Color('blue')) eq_(l.stroke.line_cap, mapnik2.line_cap.BUTT_CAP) eq_(l.stroke.line_join, mapnik2.line_join.MITER_JOIN) s = mapnik2.Stroke(mapnik2.Color('blue'), 5.0) l = mapnik2.LineSymbolizer(s) eq_(l.stroke.width, 5) eq_(l.stroke.opacity, 1) eq_(l.stroke.color, mapnik2.Color('blue')) eq_(l.stroke.line_cap, mapnik2.line_cap.BUTT_CAP) eq_(l.stroke.line_join, mapnik2.line_join.MITER_JOIN)
def stroke_to_mapnik(stroke): m_stroke = mapnik.Stroke() for css in stroke.CssParameter: if css.get('name') == 'stroke': m_stroke.color = mapnik.Color(css.text) elif css.get('name') == 'stroke-width': m_stroke.width = float(css.text) elif css.get('name') == 'stroke-opacity': m_stroke.opacity = float(css.text) elif css.get('name') == 'stroke-dasharray': dashes = map(float, css.text.strip().split(' ')) assert len(dashes) % 2 == 0, dashes for i in xrange(0, len(dashes), 2): m_stroke.add_dash(dashes[i], dashes[i + 1]) elif css.get('name') == 'stroke-linecap': m_stroke.line_cap = get_cap(css.text) elif css.get('name') == 'stroke-join': m_stroke.line_join = get_join(css.text) elif css.get('name') == 'stroke-linejoin': m_stroke.line_join = get_join(css.text) elif css.get('name') == 'stroke-dashoffset': m_stroke.dash_offset = float(css.text) else: raise Exception('unhanded: ' + css.get('name')) return m_stroke
def test_stroke_init(): s = mapnik2.Stroke() eq_(s.width, 1) eq_(s.opacity, 1) eq_(s.color, mapnik2.Color('black')) eq_(s.line_cap, mapnik2.line_cap.BUTT_CAP) eq_(s.line_join, mapnik2.line_join.MITER_JOIN) eq_(s.gamma,1.0) s = mapnik2.Stroke(mapnik2.Color('blue'), 5.0) s.gamma = .5 eq_(s.width, 5) eq_(s.opacity, 1) eq_(s.color, mapnik2.Color('blue')) eq_(s.gamma, .5) eq_(s.line_cap, mapnik2.line_cap.BUTT_CAP) eq_(s.line_join, mapnik2.line_join.MITER_JOIN)
def to_mapnik(self): stroke = mapnik.Stroke(mapnik.Color(str(self.color)), self.width) stroke.opacity = self.opacity or stroke.opacity stroke.line_cap = self.cap or stroke.line_cap stroke.line_join = self.join or stroke.line_join if self.dashes: stroke.add_dash(*self.dashes.values) sym = mapnik.LineSymbolizer(stroke) return sym
def test_stroke_pickle(): s = mapnik2.Stroke(mapnik2.Color('black'),4.5) eq_(s.width, 4.5) eq_(s.color, mapnik2.Color('black')) s.add_dash(1,2) s.add_dash(3,4) s.add_dash(5,6) s2 = pickle.loads(pickle.dumps(s,pickle.HIGHEST_PROTOCOL)) eq_(s.color, s2.color) eq_(s.width, s2.width) eq_(s.opacity, s2.opacity) eq_(s.get_dashes(), s2.get_dashes()) eq_(s.line_cap, s2.line_cap) eq_(s.line_join, s2.line_join)
ondrain_lyr = mapnik2.Layer('Ontario Hydrography') ondrain_lyr.srs = "+proj=lcc +ellps=GRS80 +lat_0=49 +lon_0=-95 +lat+1=49 +lat_2=77 +datum=NAD83 +units=m +no_defs" ondrain_lyr.datasource = mapnik2.Shapefile(file='../data/ontdrainage') ondrain_lyr.styles.append('drainage') m.layers.append(ondrain_lyr) # Provincial boundaries provlines_lyr = mapnik2.Layer('Provincial borders') provlines_lyr.srs = "+proj=lcc +ellps=GRS80 +lat_0=49 +lon_0=-95 +lat+1=49 +lat_2=77 +datum=NAD83 +units=m +no_defs" provlines_lyr.datasource = mapnik2.Shapefile(file='../data/boundaries_l') # Here we define a "dash dot dot dash" pattern for the provincial boundaries. provlines_stk = mapnik2.Stroke() provlines_stk.add_dash(8, 4) provlines_stk.add_dash(2, 2) provlines_stk.add_dash(2, 2) provlines_stk.color = mapnik2.Color('black') provlines_stk.width = 1.0 provlines_style = mapnik2.Style() provlines_rule = mapnik2.Rule() provlines_rule.symbols.append(mapnik2.LineSymbolizer(provlines_stk)) provlines_style.rules.append(provlines_rule) m.append_style('provlines', provlines_style) provlines_lyr.styles.append('provlines') m.layers.append(provlines_lyr)