view flys-backend/contrib/shpimporter/lines.py @ 4269:0c766c475805

Add Panel and Tree UI classes for dispayling the measurement station info The new ui classes are using the new extracted base class InfoPanel and InfoTree which are in common with the gauge info.
author Björn Ricks <bjoern.ricks@intevation.de>
date Fri, 26 Oct 2012 12:22:06 +0200
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