Daha çox

Fərqli QGis təbəqələrimdəki bütün obyektlərin siyahısını necə əldə etmək olar

Fərqli QGis təbəqələrimdəki bütün obyektlərin siyahısını necə əldə etmək olar


Fərqli açılmış təbəqələrimdəki obyektlərin siyahısını almaq üçün QGis-də necə edə biləcəyimizi bilmək istərdim: n .SHP sənədlərimiz və ya PostgreSQL Baxışlarımız var (hamısı ən azı "obyekt növü" sütunu və "obyekt id" "sütun) bir xəritə yaratmaq üçün bir QGis Layihəsində açıldı. Xəritə tamamlandıqdan sonra .QGS sənədimi bir serverdə saxlamaq istəyirəm və sonra (Python proqramı ilə) 3 sütundan (obyekt növü, obyekt id, .QGS sənədimin yolu) bir .CSV faylı əldə etməyimi istəyirəm. ) - ya da birbaşa PostgreSQL-ə məlumat yazmaq daha yaxşıdır.

Kimsə bunu QGis-də necə asanlıqla edə bilər?


Başlamadan əvvəl "hədəf", bir fayl və ya verilənlər bazası nə olacağına qərar vermək istəyəcəksiniz. Psixopg2 postgres verilənlər bazalarını idarə etməyi də çox asanlaşdırsa da, bir fayl kiçik bir qədər sadədir.

f ilə açıq ('/ home / you / data / out.csv', 'w') ilə:

Əvvəlcə qatların siyahısını almaq istəyirsən

map_layers = QgsMapLayerRegistry.instance (). mapLayers ()

Sonra hər təbəqədəki hər xüsusiyyət üzərində təkrarlamaq istəyirsən

map_layers.values ​​() içindəki qat üçün: layer.getFeatures () içindəki feat üçün:

Və nəhayət, istədiyinizi fayla yazın:

f.write ('{}, {}, {}  n'.format (feat [' object_type '], feat [' object_id '], wor_file ??))