X-Git-Url: https://git.rvb.name/pyrungps.git/blobdiff_plain/8031e085646c31a307fe8ec64bf8993991a302ce..1690b8b7c8ccfdf60be2b33b314e6c26bdef86e6:/generate_image.py diff --git a/generate_image.py b/generate_image.py index a4deaac..12169ca 100644 --- a/generate_image.py +++ b/generate_image.py @@ -1,9 +1,6 @@ #!/usr/bin/env python -try: - import mapnik2 as mapnik -except: - import mapnik +import mapnik import sys, os @@ -30,7 +27,10 @@ if not hasattr(mapnik,'mapnik_version') and not mapnik.mapnik_version() >= 600: def render_map(mapfile,map_uri,gpx_file,imgx,imgy): - xml = etree.parse(gpx_file) + with open(gpx_file,'r') as f: + data = f.read() + + xml = etree.fromstring(data) gpx = pygpx.GPX() gpx.ReadTree(xml) @@ -64,16 +64,19 @@ def render_map(mapfile,map_uri,gpx_file,imgx,imgy): style = mapnik.Style() rule = mapnik.Rule() - point_symbolizer = mapnik.MarkersSymbolizer() - point_symbolizer.allow_overlap = True - point_symbolizer.opacity = 0.8 # semi-transparent - rule.symbols.append(point_symbolizer) + line_symbolizer = mapnik.LineSymbolizer() + + line_symbolizer.stroke = mapnik.Color('rgb(0,0,127)') + line_symbolizer.stroke_width = 4.0 + line_symbolizer.stroke_opacity = 0.5 + + rule.symbols.append(line_symbolizer) style.rules.append(rule) m.append_style('GPS_tracking_points', style) layer = mapnik.Layer('GPS_tracking_points') - layer.datasource = mapnik.Ogr(file=gpx_file, layer='track_points') + layer.datasource = mapnik.Ogr(file=gpx_file, layer='tracks') layer.styles.append('GPS_tracking_points') m.layers.append(layer) @@ -89,6 +92,7 @@ def render_all(db,mapfile,imgx,imgy): from os.path import dirname conn = sqlite3.connect(db) + conn.text_factory = str cur = conn.cursor() updcur = conn.cursor() @@ -132,7 +136,7 @@ def main(): if options.mapfile: mapfile = options.mapfile else: - mapfile = "/etc/mapnik-osm-carto-data/veloroad-transparent.xml" + mapfile = "/etc/mapnik-osm-carto-data/veloroad-imposm.xml" if options.outfile: map_uri = options.outfile @@ -142,11 +146,11 @@ def main(): if options.x: imgx = int(options.x) else: - imgx= 400 + imgx= 640 if options.y: imgy = int(options.y) else: - imgy= 400 + imgy= 640 if options.db: render_all(options.db,mapfile,imgx,imgy)