Ejemplo n.º 1
0
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)])
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)