diff options
Diffstat (limited to 'chimere/utils.py')
-rw-r--r-- | chimere/utils.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/chimere/utils.py b/chimere/utils.py index 1240914..1aa639a 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2012-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2012-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -333,7 +333,7 @@ class ShapefileManager(ImportManager): - number of item updated ; - error detail on error """ - from models import Marker, Route + from models import Marker, Route, Polygon new_item, updated_item, msg = 0, 0, '' tmpdir = tempfile.mkdtemp() sources, msg = self.get_source_file(['.shp', '.dbf', '.prj', '.shx'], @@ -379,11 +379,20 @@ class ShapefileManager(ImportManager): lbl_name = lyr.fields[1] elif id_name: lbl_name = id_name - if lyr.geom_type not in ('Point', 'LineString'): + if lyr.geom_type not in ('Point', 'LineString', 'Polygon'): return (0, 0, _(u"Type of geographic item (%s) of this shapefile " u"is not managed by Chimère.") % lyr.geom_type) - geom_key = 'point' if lyr.geom_type == 'Point' else 'route' - geom_cls = Marker if lyr.geom_type == 'Point' else Route + geom_key = '' + geom_cls = None + if lyr.geom_type == 'Point': + geom_key = 'point' + geom_cls = Marker + elif lyr.geom_type == 'Polygon': + geom_key = 'polygon' + geom_cls = Polygon + else: + geom_key = 'route' + geom_cls = Route # indexes = [] for idx, feat in enumerate(lyr): name = unicode(idx) |