diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-03-10 23:30:08 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-03-10 23:30:08 +0100 |
commit | def3f037727637a4dae804deb3bb3b4db9158a7e (patch) | |
tree | bd6e4dd87f9eaf636c9aa4150618a2f3be8ea99c /chimere/utils.py | |
parent | 98e523350c4eeb2bfe2b1d31666c301724749305 (diff) | |
download | Chimère-def3f037727637a4dae804deb3bb3b4db9158a7e.tar.bz2 Chimère-def3f037727637a4dae804deb3bb3b4db9158a7e.zip |
Polygon import in shapefiles
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) |