031-lines-colour.png - roads shown with coloured lines
Se far we have drawn lines using just the default settings: solid black lines one pixel wide. We can choose the colour and width of our lines relatively easily by specifying these when we create our LineSymbolizer.
#!/usr/bin/python# Load the Python mapnik libraries.importmapnik# Create a new map.m=mapnik.Map(480,320)# Set the background colour.m.background=mapnik.Color('ghostwhite')# Create a line symbolizer.line_symbolizer=mapnik.LineSymbolizer(mapnik.Color('green'),2)# Create a new rule and add the symbolizer.r=mapnik.Rule()r.symbols.append(line_symbolizer)# Create a new style and add the rule.s=mapnik.Style()s.rules.append(r)# Add the style to the map.m.append_style('basic_style',s)# Specify that our data is coming from a CSV file called "data-roads.csv".ds=mapnik.CSV(file='data-roads.csv')# Create a new layer for the map, called "main_map" and add the data# source and style to that layer.l=mapnik.Layer('main_map')l.datasource=dsl.styles.append('basic_style')# Add the layer to the map.m.layers.append(l)# Zoom to the part of the map we are interested in.m.zoom_to_box(mapnik.Box2d(0,0,480,320))# Save the map as a PNG image.mapnik.render_to_file(m,'031-lines-colour.png','png')
Detailed explanation of this program
There is just one significant differences between this program and the previous example. At line thirteen we pass two parameters when we create the LineSymbolizer: a Mapnik Color object and a number specifying the width in pixels of the lines to be drawn. We have chosen them to be green, and slightly thicker than the default.
Save this program in a file called 031-lines-colour.py and run it by typing:
python 031-lines-colour.py
You should see no error messages, and you should see a new file in your working directory called 031-lines-colour.png. This is a new map image, and should be a light-coloured rectangle 480 pixels wide by 320 pixels high, with a series of interconnected green lines, as shown above.