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))
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)"
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))
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()))
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)
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 + ")"
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 + ")"
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 + ")"
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 + ")"
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)
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)
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)"
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))
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
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
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)
def getValues(parent, tag): return [node.text for node in parent.iterfind('./'+tagVolledigeNS(tag, parent.nsmap))]
def getValues(parent, tag): return [node.text for node in parent.iterfind('./' + tagVolledigeNS(tag, parent.nsmap))]