summaryrefslogtreecommitdiff
path: root/chimere/utils.py
diff options
context:
space:
mode:
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
commitdef3f037727637a4dae804deb3bb3b4db9158a7e (patch)
treebd6e4dd87f9eaf636c9aa4150618a2f3be8ea99c /chimere/utils.py
parent98e523350c4eeb2bfe2b1d31666c301724749305 (diff)
downloadChimère-def3f037727637a4dae804deb3bb3b4db9158a7e.tar.bz2
Chimère-def3f037727637a4dae804deb3bb3b4db9158a7e.zip
Polygon import in shapefiles
Diffstat (limited to 'chimere/utils.py')
-rw-r--r--chimere/utils.py19
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)