view flys-backend/contrib/shpimporter/lines.py @ 4496:d8992459b408

Add method to return the facets of an artifact This methos should be used to get the facets of an artifact instead of accessing the facets member variable directly.
author Björn Ricks <bjoern.ricks@intevation.de>
date Wed, 14 Nov 2012 11:11:04 +0100
parents 59ca5dab2782
children
line wrap: on
line source
import ogr

from importer import Importer

TABLE_NAME="lines"
PATH="Geodaesie/Linien"
NAME="Lines"


class Line(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 == 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

http://dive4elements.wald.intevation.org