From 6cdbb10e3acfbb8e274da7f1c479bc972b5ddfcd Mon Sep 17 00:00:00 2001 From: David Decotigny Date: Sun, 30 Aug 2009 00:11:48 +0200 Subject: [PATCH] generating csv --- ocitysmap/map_canvas.py | 4 ++++ ocitysmap/street_index.py | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ocitysmap/map_canvas.py b/ocitysmap/map_canvas.py index c77770d..1ccedf0 100644 --- a/ocitysmap/map_canvas.py +++ b/ocitysmap/map_canvas.py @@ -287,6 +287,10 @@ class MapCanvas: if file_type == 'xml': mapnik.save_map(self._map, output_filename) return + + elif file_type == 'csv': + l.debug('not rendering map as csv (not supported)') + return elif file_type in ('png', 'png24'): # 24-bits, the default if (title is None) or (cairo is None): diff --git a/ocitysmap/street_index.py b/ocitysmap/street_index.py index 0205a63..55e1ddd 100644 --- a/ocitysmap/street_index.py +++ b/ocitysmap/street_index.py @@ -1,7 +1,7 @@ # -*- coding: utf-8; mode: Python -*- import logging, traceback -import sys, os, tempfile, pgdb, re, math, cairo, locale, gzip +import sys, os, tempfile, pgdb, re, math, cairo, locale, gzip, csv import ConfigParser from coords import BoundingBox @@ -469,6 +469,23 @@ class OCitySMap: generator = IndexPageGenerator(self.streets) + if file_type == 'xml': + l.debug('not rendering index as xml (not supported)') + return + + elif file_type == 'csv': + try: + writer = csv.writer(open(output_filename, 'w')) + except Exception,ex: + l.warning('error while opening destination file %s: %s' + % (output_filename, ex)) + else: + writer.writerow(['#', 'MapOSMatic', 'ISO-8859-1']) + for street in self.streets: + s = [e.encode('latin1', 'replace') for e in street] + writer.writerow(s) + return + if file_type in ('png', 'png24'): cairo_factory = \ lambda w,h: cairo.ImageSurface(cairo.FORMAT_RGB24, w, h)