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()शब्दकोश की विधि का उपयोग भी कर सकते हैं, 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())