Exemplo n.º 1
0
 def leesUitXML(self, xml):
     xmlGeometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))
     if xmlGeometrie is not None:
         gmlNode = xmlGeometrie.find('./' + tagVolledigeNS("gml:Polygon", xmlGeometrie.nsmap))
         if gmlNode is not None:
             gmlStr = etree.tostring(gmlNode)
             self._geometrie = ogr.CreateGeometryFromGML(str(gmlStr))
Exemplo n.º 2
0
    def leesUitXML(self, xml):
        self.polygonAttr = None
        point = None
        try:
            geometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))
            point = geometrie.find(
                './' + tagVolledigeNS("gml:Point", geometrie.nsmap))
            if point is not None:
                pos = ','.join([
                    na.text for na in point.iterfind(
                        './' + tagVolledigeNS("gml:pos", point.nsmap))
                ])
                self._waarde = "POINT(" + pos + ")"
            else:
                # Polygoon (wordt later omgezet naar punt)
                polygon = geometrie.find(
                    './' + tagVolledigeNS("gml:Polygon", geometrie.nsmap))
                if polygon:
                    self.polygonAttr = BAGpolygoon(3, self._naam, self._tag)
                    self.polygonAttr.leesUitXML(xml)

        except:
            Log.log.error(
                "ik kan hier echt geen POINT van maken: %s (en zet dit op 0,0,0)"
                % str(point.text))
            self._waarde = "POINT(0 0 0)"
Exemplo n.º 3
0
    def leesUitXML(self, xml):
        self.polygonAttr = None
        point = None
        try:
            xmlGeometrie = xml.find('./' +
                                    tagVolledigeNS(self._tag, xml.nsmap))

            if xmlGeometrie is not None:
                gmlNode = xmlGeometrie.find(
                    './' + tagVolledigeNS("gml:Point", xml.nsmap))
                if gmlNode is not None:
                    gmlStr = etree.tostring(gmlNode)
                    self._geometrie = ogr.CreateGeometryFromGML(str(gmlStr))
                else:
                    # Forceer punt uit Polygoon
                    gmlNode = xmlGeometrie.find(
                        './' + tagVolledigeNS("gml:Polygon", xml.nsmap))
                    if gmlNode is not None:
                        gmlStr = etree.tostring(gmlNode)
                        self._geometrie = ogr.CreateGeometryFromGML(
                            str(gmlStr))
                        self._geometrie = self._geometrie.Centroid()
        except:
            Log.log.error(
                "ik kan hier echt geen POINT van maken: %s (en zet dit op 0,0,0)"
                % str(point.text))
Exemplo n.º 4
0
    def leesUitXML(self, xml):
        gmlNode = None
        # Attribuut vinden, bijv. bag_LVC:woonplaatsGeometrie
        xmlGeometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))
        if xmlGeometrie is not None:
            # Probeer eerst een MultiSurface te vinden
            gmlNode = xmlGeometrie.find('./' + tagVolledigeNS("gml:MultiSurface", xml.nsmap))
            if gmlNode is None:
                # Geen MultiSurface: probeer een Polygon te vinden
                gmlNode = xmlGeometrie.find('./' + tagVolledigeNS("gml:Polygon", xml.nsmap))
                if gmlNode is not None:
                    gmlStr = etree.tostring(gmlNode)
                    polygon = ogr.CreateGeometryFromGML(str(gmlStr))
                    self._geometrie = ogr.Geometry(ogr.wkbMultiPolygon)
                    self._geometrie.AddGeometryDirectly(polygon)

            else:
                # MultiSurface
                gmlStr = etree.tostring(gmlNode)
                self._geometrie = ogr.CreateGeometryFromGML(str(gmlStr))
                if self._geometrie is None:
                     Log.log.warn("Null MultiSurface in BAGmultiPolygoon: tag=%s parent=%s" % (self._tag, self._parentObj.identificatie()))

        if self._geometrie is None:
            Log.log.warn("Null geometrie in BAGmultiPolygoon: tag=%s identificatie=%s" % (self._tag, self._parentObj.identificatie()))
Exemplo n.º 5
0
 def leesUitXML(self, xml):
     xmlGeometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))
     if xmlGeometrie is not None:
         xmlPolygoon = xmlGeometrie.find(
             './' + tagVolledigeNS("gml:Polygon", xmlGeometrie.nsmap))
         if xmlPolygoon is not None:
             self._waarde = "POLYGON" + self._leesXMLpolygoon(xmlPolygoon)
Exemplo n.º 6
0
 def leesUitXML(self, xml):
     wktGeometrie = ""
     xmlGeometrie = xml.find('./'+tagVolledigeNS(self._tag, xml.nsmap))
     for xmlPolygoon in xmlGeometrie.iterfind('./'+tagVolledigeNS("gml:Polygon", xmlGeometrie.nsmap)):
         if wktGeometrie <> "":
             wktGeometrie += ","
         wktGeometrie += self._leesXMLpolygoon(xmlPolygoon)
     self._waarde = "MULTIPOLYGON(" + wktGeometrie + ")"
Exemplo n.º 7
0
 def leesUitXML(self, xml):
     wktGeometrie = ""
     xmlGeometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))
     for xmlPolygoon in xmlGeometrie.iterfind(
             './' + tagVolledigeNS("gml:Polygon", xmlGeometrie.nsmap)):
         if wktGeometrie <> "":
             wktGeometrie += ","
         wktGeometrie += self._leesXMLpolygoon(xmlPolygoon)
     self._waarde = "MULTIPOLYGON(" + wktGeometrie + ")"
Exemplo n.º 8
0
    def _leesXMLpolygoon(self, xmlPolygoon):
        xmlExterior = xmlPolygoon.find('./'+tagVolledigeNS("gml:exterior", xmlPolygoon.nsmap))
        if xmlExterior is not None:
            wktExterior = "(" + self._leesXMLposList(xmlExterior) + ")"
        else:
            wktExterior = ""

        wktInteriors = ""
        for xmlInterior in xmlPolygoon.iterfind('./'+tagVolledigeNS("gml:interior", xmlPolygoon.nsmap)):
            wktInteriors += ",(" + self._leesXMLposList(xmlInterior) + ")"

        return "(" + wktExterior + wktInteriors + ")"
Exemplo n.º 9
0
    def _leesXMLpolygoon(self, xmlPolygoon):
        xmlExterior = xmlPolygoon.find(
            './' + tagVolledigeNS("gml:exterior", xmlPolygoon.nsmap))
        if xmlExterior is not None:
            wktExterior = "(" + self._leesXMLposList(xmlExterior) + ")"
        else:
            wktExterior = ""

        wktInteriors = ""
        for xmlInterior in xmlPolygoon.iterfind(
                './' + tagVolledigeNS("gml:interior", xmlPolygoon.nsmap)):
            wktInteriors += ",(" + self._leesXMLposList(xmlInterior) + ")"

        return "(" + wktExterior + wktInteriors + ")"
Exemplo n.º 10
0
    def leesUitXML(self, xml):
        xmlGeometrie = xml.find('./'+tagVolledigeNS(self._tag, xml.nsmap))
        geometrie = xmlGeometrie.find('./'+tagVolledigeNS("gml:Point", xml.nsmap))
        if geometrie:
            self._geoattr = BAGpoint(3, self._naam, self._tag)
        else:
            geometrie = xml.find('./'+tagVolledigeNS("gml:Polygon", xml.nsmap))
            if geometrie:
                self._geoattr = BAGpolygoon(3, self._naam, self._tag)

        if not self._geoattr:
            Log.log.error("Geen punt of vlak geometrie gevonden")
            return

        self._geoattr._parentObj = self._parentObj
        self._geoattr.leesUitXML(xml)
Exemplo n.º 11
0
    def leesUitXML(self, xml):
        xmlGeometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))
        geometrie = xmlGeometrie.find('./' +
                                      tagVolledigeNS("gml:Point", xml.nsmap))
        if geometrie:
            self._geoattr = BAGpoint(3, self._naam, self._tag)
        else:
            geometrie = xml.find('./' +
                                 tagVolledigeNS("gml:Polygon", xml.nsmap))
            if geometrie:
                self._geoattr = BAGpolygoon(3, self._naam, self._tag)

        if not self._geoattr:
            Log.log.error("Geen punt of vlak geometrie gevonden")
            return

        self._geoattr._parentObj = self._parentObj
        self._geoattr.leesUitXML(xml)
Exemplo n.º 12
0
    def leesUitXML(self, xml):
        self.polygonAttr = None
        point = None
        try:
            geometrie = xml.find('./'+tagVolledigeNS(self._tag, xml.nsmap))
            point = geometrie.find('./'+tagVolledigeNS("gml:Point", geometrie.nsmap))
            if point is not None:
                pos = ','.join([ na.text for na in point.iterfind('./'+tagVolledigeNS("gml:pos", point.nsmap)) ])
                self._waarde = "POINT(" + pos + ")"
            else:
                # Polygoon (wordt later omgezet naar punt)
                polygon = geometrie.find('./'+tagVolledigeNS("gml:Polygon", geometrie.nsmap))
                if polygon:
                    self.polygonAttr = BAGpolygoon(3, self._naam, self._tag)
                    self.polygonAttr.leesUitXML(xml)

        except:
            Log.log.error("ik kan hier echt geen POINT van maken: %s (en zet dit op 0,0,0)" % str(point.text))
            self._waarde = "POINT(0 0 0)"
Exemplo n.º 13
0
    def leesUitXML(self, xml):
        self.polygonAttr = None
        point = None
        try:
            xmlGeometrie = xml.find('./' + tagVolledigeNS(self._tag, xml.nsmap))

            if xmlGeometrie is not None:
                gmlNode = xmlGeometrie.find('./' + tagVolledigeNS("gml:Point", xml.nsmap))
                if gmlNode is not None:
                    gmlStr = etree.tostring(gmlNode)
                    self._geometrie = ogr.CreateGeometryFromGML(str(gmlStr))
                else:
                    # Forceer punt uit Polygoon
                    gmlNode = xmlGeometrie.find('./' + tagVolledigeNS("gml:Polygon", xml.nsmap))
                    if gmlNode is not None:
                        gmlStr = etree.tostring(gmlNode)
                        self._geometrie = ogr.CreateGeometryFromGML(str(gmlStr))
                        self._geometrie = self._geometrie.Centroid()
        except:
            Log.log.error("ik kan hier echt geen POINT van maken: %s (en zet dit op 0,0,0)" % str(point.text))
Exemplo n.º 14
0
 def _leesXMLposList(self, xml):
     wktPosList = ""
     puntTeller = 0
     for xmlPosList in xml.iterfind('.//'+tagVolledigeNS("gml:LinearRing/gml:posList", xml.nsmap)):
         for coordinaat in xmlPosList.text.split(" "):
             if not coordinaat or not coordinaat.strip():
                 continue
             puntTeller += 1
             if puntTeller > self.dimensie():
                 wktPosList += ","
                 puntTeller = 1
             wktPosList += " " + coordinaat
     return wktPosList
Exemplo n.º 15
0
 def _leesXMLposList(self, xml):
     wktPosList = ""
     puntTeller = 0
     for xmlPosList in xml.iterfind(
             './/' +
             tagVolledigeNS("gml:LinearRing/gml:posList", xml.nsmap)):
         for coordinaat in xmlPosList.text.split(" "):
             if not coordinaat or not coordinaat.strip():
                 continue
             puntTeller += 1
             if puntTeller > self.dimensie():
                 wktPosList += ","
                 puntTeller = 1
             wktPosList += " " + coordinaat
     return wktPosList
Exemplo n.º 16
0
 def leesUitXML(self, xml):
     xmlGeometrie = xml.find('./'+tagVolledigeNS(self._tag, xml.nsmap))
     if xmlGeometrie is not None:
         xmlPolygoon = xmlGeometrie.find('./'+tagVolledigeNS("gml:Polygon", xmlGeometrie.nsmap))
         if xmlPolygoon is not None:
             self._waarde = "POLYGON" + self._leesXMLpolygoon(xmlPolygoon)
Exemplo n.º 17
0
def getValues(parent, tag):
    return [node.text for node in parent.iterfind('./'+tagVolledigeNS(tag, parent.nsmap))]
Exemplo n.º 18
0
def getValues(parent, tag):
    return [node.text for node in parent.iterfind('./' + tagVolledigeNS(tag, parent.nsmap))]