def createNewLayer(self): self.tagFieldMap = dict() fields = QgsFields() self.fieldNames = [] # hardcoded fields fields.append(QgsField("filepath", QVariant.String, "", 255)) self.fieldNames.append("filepath") fields.append(QgsField("filename", QVariant.String, "", 255)) self.fieldNames.append("filename") for tag in self.tagsList: tagName = tag.replace("EXIF:", "") fName = utils.createUniqueFieldName(tagName, self.fieldNames) fields.append(QgsField(fName, QVariant.String, "", 80)) self.fieldNames.append(fName) self.tagFieldMap[tagName] = fName crs = QgsCoordinateReferenceSystem(4326) shapeWriter = QgsVectorFileWriter(self.outFileName, self.outEncoding, fields, QGis.WKBPoint, crs) del shapeWriter layer = QgsVectorLayer(self.outFileName, QFileInfo(self.outFileName).baseName(), "ogr") return layer
def openExistingLayer(self): layer = QgsVectorLayer(self.outFileName, QFileInfo(self.outFileName).baseName(), "ogr") fMap = layer.dataProvider().fieldNameMap() fNames = fMap.keys() self.fieldNames = ["filepath", "filename"] self.tagFieldMap = dict() for tag in self.tagsList: tagName = tag.replace("EXIF:", "") fName = utils.createUniqueFieldName(tagName, self.fieldNames) if fName in fNames: self.tagFieldMap[tagName] = fName self.fieldNames.append(fName) return layer