Para QGIS 3, QgsMapLayerRegistry
la funcionalidad se ha movido a QgsProject
.
Entonces, para iterar sobre las capas del mapa, debe usar esa estructura:
layers = QgsProject.instance().mapLayers()
.mapLayers()
devuelve un diccionario estructurado como {layer_x_id: layer_x, layer_y_id: layer_y, ....}
. Luego puede iterar sobre capas como:
for layer_id, layer in layers.items():
print(layer.name())
Como .mapLayers()
devuelve un diccionario ( dict
), también puede usar el .values()
método de diccionario que devuelve solo un list
que contiene capas en ese caso. Luego puede iterar sobre capas como:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
Si lo prefiere, puede iterar de esta manera:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())