diff flys-backend/contrib/shpimporter/axis.py @ 5379:61bf64b102bc mapgenfix

Merge with default branch
author Christian Lins <christian.lins@intevation.de>
date Fri, 22 Mar 2013 11:25:54 +0100
parents f52bb7178eda
children
line wrap: on
line diff
--- a/flys-backend/contrib/shpimporter/axis.py	Wed Mar 06 14:14:15 2013 +0100
+++ b/flys-backend/contrib/shpimporter/axis.py	Fri Mar 22 11:25:54 2013 +0100
@@ -1,7 +1,10 @@
-import ogr
+try:
+    from osgeo import ogr
+except ImportError:
+    import ogr
 
 from importer import Importer
-import shpimporter
+import utils
 
 NAME="Axis"
 TABLE_NAME="river_axes"
@@ -23,16 +26,20 @@
 
 
     def isGeometryValid(self, geomType):
-        return geomType == 2
-
+        return geomType in [ogr.wkbLineString,
+                            ogr.wkbLineString25D,
+                            ogr.wkbMultiLineString25D,
+                            ogr.wkbMultiLineString]
 
     def isShapeRelevant(self, name, path):
-        return name == "achse" or name.find("achse") >= 0
+        return "km.shp" not in path.lower()
 
 
     def createNewFeature(self, featureDef, feat, **args):
         newFeat = ogr.Feature(featureDef)
-        newFeat.SetGeometry(feat.GetGeometryRef())
+        geometry = feat.GetGeometryRef()
+        geometry.SetCoordinateDimension(3)
+        newFeat.SetGeometry(geometry)
         newFeat.SetField("name", args['name'])
 
         if self.IsFieldSet(feat, "river_id"):
@@ -40,13 +47,10 @@
         else:
             riverId = self.river_id
 
-        if self.IsFieldSet(feat, "kind"):
-            kind = feat.GetField("kind")
+        newFeat.SetField("river_id", riverId)
+        if args.get("name", "").lower() == "achse":
+            newFeat.SetField("kind_id", 1) # 1 is Current
         else:
-            kind = 0
+            newFeat.SetField("kind_id", 2) # 2 Is Other
 
-        newFeat.SetField("river_id", riverId)
-        newFeat.SetField("kind", kind)
-
-        return newFeat
-
+        return utils.convertToMultiLine(newFeat)

http://dive4elements.wald.intevation.org