Ko'proq

Xarita qatlami ro'yxatga olish kitobi bo'shligini qanday topish mumkin?

Xarita qatlami ro'yxatga olish kitobi bo'shligini qanday topish mumkin?


Mening skriptimda men nomlangan qatlamni ochmoqchimanmy_layeragar u xarita qatlami registrida bo'lsa. Buning uchun quyidagi koddan foydalanaman:

inputLayer = QgsMapLayerRegistry.instance (). mapLayersByName ("my_layer") [0]

Agar topilmasa, men uni ro'yxatga olish kitobiga fayldan qo'shaman. Ammo, agar reestrda qatlamlar bo'lmasa, u "chegaradan tashqarida" xatosini qaytaradi - mapLayersByName birinchi elementsiz bo'sh ro'yxat ishlab chiqaradi (mapLayersByName ("my_layer") [0]). Xatoga yo'l qo'ymaslik uchun qanday qilib? Buni ushlashning yagona imkoniyati bormi yoki oldin bo'sh ro'yxatga olish kitobini topsam bo'ladimi?

Men Python va PyQGIS bilan yangi tanishman, shuning uchun avvalgi qadamlarimda biron narsani o'tkazib yuborganim va ro'yxatga olish kitobida bir xil qatlam misollarini joylashtirmasdan qatlamni yuklashning yanada oqilona usuli borligi ehtimoldan yiroq emas. Agar shunday bo'lsa, men ushbu vazifani hal qilishning yanada oqilona usuli bilan va bo'sh xarita qatlami registrini qanday topish uslubi bilan qiziqaman (keyinchalik ikkalasi ham kerak bo'ladi deb o'ylayman).


Qatlamlar panelini varaqlashdan oldin siz qatlam mavjudligini yoki nomi bilan emasligini tekshirishingiz mumkin:

qatlamlar = QgsMapLayerRegistry.instance (). mapLayers (). qiymatlar () foundLayer = Qatlamdagi qatlam uchun yolg'on: agar layer.name () == 'my_layer': inputLayer = QgsMapLayerRegistry.instance (). mapLayersByName ("my_lay") 0] foundLayer = topilmasa rost, LayLayer: # fayldan qatlam qo'shish

Yoki siz mantiqdan tashqari harakat qilib ko'rishingiz mumkin

harakat qilib ko'ring: inputLayer = QgsMapLayerRegistry.instance (). mapLayersByName ("my_layer") [0] dan tashqari IndexError: chop etish 'qatlam xaritada emas fayldan qo'shish' # fayldan qo'shish

Videoni tomosha qiling: СССРнинг ПАРЧАЛАНИШИ Харитада! SSSR Parchalanish Xronologiyasi 1990-1991yillar #ТарихХаритада