view backend/contrib/shpimporter/km.py @ 8716:b5ac17a10d22

(issue1754) Only create new Recommendations I belive that this was the original intent of this function otherwise why create a list of newRecommendations at all if we always recreate all Recommendations again. With the side effect that old recommendations had no master artifact the created artifacts of already existing artifacts did not have enough information to live and were not shown in the client so this problem was hidden.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 27 Apr 2015 11:45:31 +0200
parents 5f48541cd544
children
line wrap: on
line source
try:
    from osgeo import ogr
except ImportError:
    import ogr

from importer import Importer

TABLE_NAME="river_axes_km"
PATH="Geodaesie/Flussachse+km"
NAME="KMS"


class KM(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 == ogr.wkbPoint or geomType == ogr.wkbPoint25D


    def isShapeRelevant(self, name, path):
        return name.lower() == "km"


    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.IsDoubleFieldSet(feat, "landkm"):
            newFeat.SetField("fedstate_km", feat.GetFieldAsDouble("landkm"))

        if self.IsDoubleFieldSet(feat, "km"):
            newFeat.SetField("km", feat.GetFieldAsDouble("km"))
        elif self.IsDoubleFieldSet(feat, "KM"):
            newFeat.SetField("km", feat.GetFieldAsDouble("KM"))
        else:
            return None

        return newFeat

http://dive4elements.wald.intevation.org