comparison 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
comparison
equal deleted inserted replaced
5175:cfc5540a4eec 5379:61bf64b102bc
1 import ogr 1 try:
2 from osgeo import ogr
3 except ImportError:
4 import ogr
2 5
3 from importer import Importer 6 from importer import Importer
4 import shpimporter 7 import utils
5 8
6 NAME="Axis" 9 NAME="Axis"
7 TABLE_NAME="river_axes" 10 TABLE_NAME="river_axes"
8 PATH="Geodaesie/Flussachse+km" 11 PATH="Geodaesie/Flussachse+km"
9 12
21 def getName(self): 24 def getName(self):
22 return NAME 25 return NAME
23 26
24 27
25 def isGeometryValid(self, geomType): 28 def isGeometryValid(self, geomType):
26 return geomType == 2 29 return geomType in [ogr.wkbLineString,
27 30 ogr.wkbLineString25D,
31 ogr.wkbMultiLineString25D,
32 ogr.wkbMultiLineString]
28 33
29 def isShapeRelevant(self, name, path): 34 def isShapeRelevant(self, name, path):
30 return name == "achse" or name.find("achse") >= 0 35 return "km.shp" not in path.lower()
31 36
32 37
33 def createNewFeature(self, featureDef, feat, **args): 38 def createNewFeature(self, featureDef, feat, **args):
34 newFeat = ogr.Feature(featureDef) 39 newFeat = ogr.Feature(featureDef)
35 newFeat.SetGeometry(feat.GetGeometryRef()) 40 geometry = feat.GetGeometryRef()
41 geometry.SetCoordinateDimension(3)
42 newFeat.SetGeometry(geometry)
36 newFeat.SetField("name", args['name']) 43 newFeat.SetField("name", args['name'])
37 44
38 if self.IsFieldSet(feat, "river_id"): 45 if self.IsFieldSet(feat, "river_id"):
39 riverId = feat.GetField("river_id") 46 riverId = feat.GetField("river_id")
40 else: 47 else:
41 riverId = self.river_id 48 riverId = self.river_id
42 49
43 if self.IsFieldSet(feat, "kind"): 50 newFeat.SetField("river_id", riverId)
44 kind = feat.GetField("kind") 51 if args.get("name", "").lower() == "achse":
52 newFeat.SetField("kind_id", 1) # 1 is Current
45 else: 53 else:
46 kind = 0 54 newFeat.SetField("kind_id", 2) # 2 Is Other
47 55
48 newFeat.SetField("river_id", riverId) 56 return utils.convertToMultiLine(newFeat)
49 newFeat.SetField("kind", kind)
50
51 return newFeat
52

http://dive4elements.wald.intevation.org