Для QGIS 3 QgsMapLayerRegistryфункціональність переміщена QgsProject.
Отже, для ітерації над шарами карти слід використовувати цю структуру:
layers = QgsProject.instance().mapLayers()
.mapLayers()повертає словник, структурований як {layer_x_id: layer_x, layer_y_id: layer_y, ....}. Потім ви можете перебирати шари на зразок:
for layer_id, layer in layers.items():
print(layer.name())
Оскільки .mapLayers()повертає словник ( dict), ви також можете використовувати .values()метод словника, який повертає просто a, listщо містить шари в цьому випадку. Потім ви можете перебирати шари на зразок:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
Якщо ви хочете, ви можете повторити наступним чином:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())