QGIS 3 için, QgsMapLayerRegistry
işlevselliği taşındı QgsProject
.
Bu nedenle, harita katmanlarını yinelemek için bu yapıyı kullanmalısınız:
layers = QgsProject.instance().mapLayers()
.mapLayers()
olarak yapılandırılmış bir sözlük döndürür {layer_x_id: layer_x, layer_y_id: layer_y, ....}
. Sonra aşağıdaki gibi katmanları yineleyebilirsiniz:
for layer_id, layer in layers.items():
print(layer.name())
Çünkü .mapLayers()
getiriler bir sözlük ( dict
), ayrıca kullanabilirsiniz .values()
sadece bir sözlük olan getiri yöntemi list
bu durumda katmanları içeren. Sonra aşağıdaki gibi katmanları yineleyebilirsiniz:
layers = QgsProject.instance().mapLayers().values()
for layer in layers:
print(layer.name())
İsterseniz, bu şekilde yineleyebilirsiniz:
layers = QgsProject.instance().mapLayers() # dictionary
for layer in layers.values():
print(layer.name())