mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-10 00:08:20 -05:00
make menthod and variable naming consistent, some cleanup
This commit is contained in:
parent
71e57a7a25
commit
f53576dd96
@ -278,63 +278,49 @@ def combineVectorFields(layerA, layerB):
|
|||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
|
||||||
def duplicate_in_memory(layer, new_name='', add_to_registry=False):
|
def duplicateInMemory(layer, newName='', addToRegistry=False):
|
||||||
|
"""Return a memory copy of a layer
|
||||||
|
|
||||||
|
layer: QgsVectorLayer that shall be copied to memory.
|
||||||
|
new_name: The name of the copied layer.
|
||||||
|
add_to_registry: if True, the new layer will be added to the QgsMapRegistry
|
||||||
|
|
||||||
|
Returns an in-memory copy of a layer.
|
||||||
"""
|
"""
|
||||||
Return a memory copy of a layer
|
if newName is '':
|
||||||
|
newName = layer.name() + ' (Memory)'
|
||||||
:param layer: QgsVectorLayer that shall be copied to memory.
|
|
||||||
:type layer: QgsVectorLayer
|
|
||||||
|
|
||||||
:param new_name: The name of the copied layer.
|
|
||||||
:type new_name: str
|
|
||||||
|
|
||||||
:param add_to_registry: if True, the new layer will be added to
|
|
||||||
the QgsMapRegistry
|
|
||||||
:type: bool
|
|
||||||
|
|
||||||
:returns: An in-memory copy of a layer.
|
|
||||||
:rtype: QgsMapLayer
|
|
||||||
|
|
||||||
"""
|
|
||||||
if new_name is '':
|
|
||||||
new_name = layer.name() + ' TMP'
|
|
||||||
|
|
||||||
if layer.type() == QgsMapLayer.VectorLayer:
|
if layer.type() == QgsMapLayer.VectorLayer:
|
||||||
v_type = layer.geometryType()
|
geomType = layer.geometryType()
|
||||||
if v_type == QGis.Point:
|
if geomType == QGis.Point:
|
||||||
type_str = 'Point'
|
strType = 'Point'
|
||||||
elif v_type == QGis.Line:
|
elif geomType == QGis.Line:
|
||||||
type_str = 'Line'
|
strType = 'Line'
|
||||||
elif v_type == QGis.Polygon:
|
elif geomType == QGis.Polygon:
|
||||||
type_str = 'Polygon'
|
strType = 'Polygon'
|
||||||
else:
|
else:
|
||||||
raise RuntimeError('Layer is whether Point nor '
|
raise RuntimeError('Layer is whether Point nor Line nor Polygon')
|
||||||
'Line nor Polygon')
|
|
||||||
else:
|
else:
|
||||||
raise RuntimeError('Layer is not a VectorLayer')
|
raise RuntimeError('Layer is not a VectorLayer')
|
||||||
|
|
||||||
crs = layer.crs().authid().lower()
|
crs = layer.crs().authid().lower()
|
||||||
my_uuid = str(uuid.uuid4())
|
myUuid = str(uuid.uuid4())
|
||||||
uri = '%s?crs=%s&index=yes&uuid=%s' % (type_str, crs, my_uuid)
|
uri = '%s?crs=%s&index=yes&uuid=%s' % (strType, crs, myUuid)
|
||||||
mem_layer = QgsVectorLayer(uri, new_name, 'memory')
|
memLayer = QgsVectorLayer(uri, newName, 'memory')
|
||||||
mem_provider = mem_layer.dataProvider()
|
memProvider = memLayer.dataProvider()
|
||||||
|
|
||||||
provider = layer.dataProvider()
|
provider = layer.dataProvider()
|
||||||
v_fields = provider.fields()
|
fields = provider.fields().toList()
|
||||||
|
memProvider.addAttributes(fields)
|
||||||
fields = []
|
memLayer.updateFields()
|
||||||
for i in v_fields:
|
|
||||||
fields.append(i)
|
|
||||||
|
|
||||||
mem_provider.addAttributes(fields)
|
|
||||||
|
|
||||||
for ft in provider.getFeatures():
|
for ft in provider.getFeatures():
|
||||||
mem_provider.addFeatures([ft])
|
memProvider.addFeatures([ft])
|
||||||
|
|
||||||
if add_to_registry:
|
if addToRegistry:
|
||||||
if mem_layer.isValid():
|
if memLayer.isValid():
|
||||||
QgsMapLayerRegistry.instance().addMapLayer(mem_layer)
|
QgsMapLayerRegistry.instance().addMapLayer(memLayer)
|
||||||
else:
|
else:
|
||||||
raise RuntimeError('Layer invalid')
|
raise RuntimeError('Layer invalid')
|
||||||
|
|
||||||
return mem_layer
|
return memLayer
|
||||||
Loading…
x
Reference in New Issue
Block a user