From def3f037727637a4dae804deb3bb3b4db9158a7e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 10 Mar 2016 23:30:08 +0100 Subject: Polygon import in shapefiles --- chimere/utils.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'chimere/utils.py') 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 +# Copyright (C) 2012-2016 Étienne Loks # 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) -- cgit v1.2.3