Mercurial > dive4elements > river
diff flys-backend/contrib/shpimporter/lines.py @ 2877:f0a67bc0e777 2.7
merged flys-backend/2.7
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:31 +0200 |
parents | b0132e1b9719 |
children | 59ca5dab2782 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-backend/contrib/shpimporter/lines.py Fri Sep 28 12:14:31 2012 +0200 @@ -0,0 +1,51 @@ +import ogr + +from importer import Importer + +TABLE_NAME="lines" +PATH="Geodaesie/Linien" + + +class Line(Importer): + + def getPath(self, base): + return "%s/%s" % (base, PATH) + + + def getTablename(self): + return TABLE_NAME + + + def isGeometryValid(self, geomType): + return geomType == 2 or geomType == -2147483646 + + + def isShapeRelevant(self, name, path): + return True + + + def createNewFeature(self, featureDef, feat, **args): + newFeat = ogr.Feature(featureDef) + geometry = feat.GetGeometryRef() + geometry.SetCoordinateDimension(2) + + newFeat.SetGeometry(geometry) + newFeat.SetField("name", args['name']) + + if self.IsFieldSet(feat, "river_id"): + newFeat.SetField("river_id", feat.GetField("river_id")) + else: + newFeat.SetField("river_id", self.river_id) + + if self.IsFieldSet(feat, "TYP"): + newFeat.SetField("kind", feat.GetFieldAsDouble("TYP")) + else: + newFeat.SetField("kind", "DAMM") + + if self.IsFieldSet(feat, "Z"): + newFeat.SetField("z", feat.GetFieldAsDouble("Z")) + else: + newFeat.SetField("z", 9999) + + return newFeat +