result = mwmarkup.parse_googlemap(sledrun_page.old_text)
if not result is None:
center, zoom, coords, paths = result
+ # Points
for coord in coords:
lon, lat, point_type, label = coord
point_types = {u'Gasthaus': u'hut', u'Haltestelle': u'busstop', u'Parkplatz': u'carpark', u'Achtung': u'warning'}
if not point_type is None:
- if not point_types.has_key(point_type): raise RuntimeError('Unknown point type {0}'.format(point_type))
+ if not point_types.has_key(point_type): raise RuntimeError(u'Unknown point type {0}'.format(point_type))
point_type = point_types[point_type]
- sql = 'insert into wrmappointcache (page_id, type, point, label) values (%s, %s, POINT(%s, %s), %s)'
+ sql = u'insert into wrmappointcache (page_id, type, point, label) values (%s, %s, POINT(%s, %s), %s)'
connection.execute(sql, (sledrun_page.page_id, point_type, lon, lat, None))
+ # Paths
+ for path_type, coords in paths:
+ path_type = path_type.lower()
+ path_types = {u'6#ff014e9a': u'sledrun', u'6#ffe98401': u'walkup', u'6#ff7f7fff': u'alternative', u'3#ff000000': u'lift'}
+ if not path_types.has_key(path_type): raise RuntimeError(u'Unknown path type {0}'.format(path_type))
+ path_type = path_types[path_type]
+ path = u", ".join(["{0} {1}".format(lon, lat) for lon, lat, symbol, title in coords])
+ path = u'LineString({0})'.format(path)
+ sql = u'insert into wrmappathcache (path, page_id, type) values (GeomFromText(%s), %s, %s)'
+ connection.execute(sql, (path, sledrun_page.page_id, path_type))
except RuntimeError as e:
error_msg = u"Error at sledrun '{0}': {1}".format(sledrun_page.page_title, unicode(e))
transaction.rollback()