PyQt4 Qgis memory layer als .shp schreiben
Verfasst: Mittwoch 23. März 2011, 18:13
Hallo,
Ich arbeite gerade an einem Plugin für das georeferencing Program QGIS 1.6 mit integriertem Python 2.5 und PyQt4.
Mein Problem liegt wahrscheinlich nicht direkt an Python, aber vielleicht doch an meinem Verständnis der Sprache...
In dem Plugin habe ich einen Vector Layer, und erstelle einen weiteren in memory.
Nachdem ich den neuen Layer bearbeitet habe, möchte ich ihn mit HIlfe von QgsVectorFileWrite.writeAsShapefile als abspeichern. Allerdings funktioniert das nicht (trotz Vergleichen mit etlichen Beispielen und docs). Ich erhalte keine Fehlermeldung, außer meiner QMessageBox.warning und die Datei wird nicht gespeichert. Hat vielelicht jemand Erfahrungen damit? Oder sieht einen Fehler im Skript?
Vielen vielen Dank für jegliche Hinweise!
Ich arbeite gerade an einem Plugin für das georeferencing Program QGIS 1.6 mit integriertem Python 2.5 und PyQt4.
Mein Problem liegt wahrscheinlich nicht direkt an Python, aber vielleicht doch an meinem Verständnis der Sprache...
In dem Plugin habe ich einen Vector Layer, und erstelle einen weiteren in memory.
Code: Alles auswählen
newLayer = QgsVectorLayer("Point", newLayer_name, "memory")
Vielen vielen Dank für jegliche Hinweise!
Code: Alles auswählen
# make sure layer doesn't already exist
QgsVectorFileWriter.deleteShapeFile(self.newLayer_filePath)
# use properties of original layer
encoding = self.provider.encoding()
geom = self.provider.geometryType()
fields = self.newProvider.fields()
crs = self.provider.crs()
self.newProvider.select(self.newProvider.attributeIndexes())
writer = QgsVectorFileWriter.writeAsShapefile(self.newLayer, self.newLayer_dir, "CP1250", crs)
if writer == QgsVectorFileWriter.NoError:
QMessageBox.warning(None, 'myfile', "the newLayer was saved as " + self.newLayer_dir)
else:
QMessageBox.warning(None, myfile, 'error when saving newLayer')
# flush writer to disk
del writer