Mercurial > dive4elements > river
view backend/contrib/shpimporter/axis.py @ 6693:88bb0c794833
issue1391: Enable GaugeDischarge artifact to directly load a table by its ID
This allows us to use the GaugeDischargeArtifact for any discharge
tables that we have in our database. The name of the created facet
is taken from the ids string as is also usual in the WMS artifacts.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Mon, 29 Jul 2013 12:19:57 +0200 |
parents | 5aa05a7a34b7 |
children | f1aeb6a60380 |
line wrap: on
line source
try: from osgeo import ogr except ImportError: import ogr from importer import Importer import utils NAME="Axis" TABLE_NAME="river_axes" PATH="Geodaesie/Flussachse+km" class Axis(Importer): def getPath(self, base): return "%s/%s" % (base, PATH) def getTablename(self): return TABLE_NAME def getName(self): return NAME def isGeometryValid(self, geomType): return geomType in [ogr.wkbLineString, ogr.wkbLineString25D, ogr.wkbMultiLineString25D, ogr.wkbMultiLineString] def isShapeRelevant(self, name, path): return "km.shp" not in path.lower() def createNewFeature(self, featureDef, feat, **args): newFeat = ogr.Feature(featureDef) geometry = feat.GetGeometryRef() geometry.SetCoordinateDimension(3) newFeat.SetGeometry(geometry) newFeat.SetField("name", args['name']) if self.IsFieldSet(feat, "river_id"): riverId = feat.GetField("river_id") else: riverId = self.river_id newFeat.SetField("river_id", riverId) if args.get("name", "").lower() == "achse": newFeat.SetField("kind_id", 1) # 1 is Current else: newFeat.SetField("kind_id", 2) # 2 Is Other return utils.convertToMultiLine(newFeat)