def combineVectorFields(layerA, layerB): """Create single field map from two input field maps. """ fields = [] fieldsA = layerA.pendingFields() fields.extend(fieldsA) namesA = [unicode(f.name()).lower() for f in fieldsA] fieldsB = layerB.pendingFields() for field in fieldsB: name = unicode(field.name()).lower() if name in namesA: idx = 2 newName = name + '_' + unicode(idx) while newName in namesA: idx += 1 newName = name + '_' + unicode(idx) field = QgsField(newName, field.type(), field.typeName()) fields.append(field) return fields
def combineVectorFields(layerA, layerB): """Create single field map from two input field maps. """ fields = [] fieldsA = layerA.fields() fields.extend(fieldsA) namesA = [str(f.name()).lower() for f in fieldsA] fieldsB = layerB.fields() for field in fieldsB: name = str(field.name()).lower() if name in namesA: idx = 2 newName = name + '_' + str(idx) while newName in namesA: idx += 1 newName = name + '_' + str(idx) field = QgsField(newName, field.type(), field.typeName()) fields.append(field) return fields
def combineFields(fieldsA, fieldsB): """Create single field map from two input field maps. """ fields = [] fields.extend(fieldsA) namesA = [str(f.name()).lower() for f in fieldsA] for field in fieldsB: name = str(field.name()).lower() if name in namesA: idx = 2 newName = name + '_' + str(idx) while newName in namesA: idx += 1 newName = name + '_' + str(idx) field = QgsField(newName, field.type(), field.typeName()) fields.append(field) real_fields = QgsFields() for f in fields: real_fields.append(f) return real_fields