Para o QGIS 3, QgsMapLayerRegistry
a funcionalidade do foi movida para QgsProject
.
Portanto, para iterar sobre as camadas do mapa, você deve usar essa estrutura:
layers = QgsProject.instance().mapLayers()
.mapLayers()
retorna um dicionário estruturado como {layer_x_id: layer_x, layer_y_id: layer_y, ....}
. Em seguida, você pode iterar sobre camadas como:
for layer_id, layer in layers.items():
print(layer.name())
Como .mapLayers()
retorna um dicionário ( dict
), você também pode usar o .values()
método do dicionário, que retorna apenas um list
que contém camadas nesse caso. Em seguida, você pode iterar sobre camadas como:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
Se preferir, você pode iterar desta maneira:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())