Label berbasis ekspresi di skrip Atlas gagal diperbarui


9

Saya mencoba mengikuti pemrograman memuat komposer dari template dan menghasilkan atlas menggunakan pyQgis untuk mengotomatiskan komposer atlas print menggunakan pyqgis:

spesifik dalam kode atlas katakan:

    myAtlasMap = myComposition.getComposerMapById(0)
    myAtlas = QgsAtlasComposition(myComposition)
    myAtlas.setCoverageLayer(atlas_desktop)
    myAtlas.setComposerMap(myAtlasMap)
    myAtlas.setFixedScale(True)
    myAtlas.fixedScale()
    myAtlas.setHideCoverage(False)
    myAtlas.setFilterFeatures(True)

kode ini berfungsi untuk tugas saya dan saya mengambil 100 peta atlas feutures baru tetapi di saya template.qptsaya memiliki beberapa label dengan kode seperti ini:

QGIS [%concat( "OBJECTID" )%]

itu OBJECTIDsama untuk semua 100 peta atlas feutures baru. Ada yang tahu kenapa? Jika saya menggunakan ekspor atlas manual, maka untuk setiap OBJECTIDperubahan peta .


Saya memiliki lebih banyak rincian yang benar Tidak bekerja apa pun yang terkait dengan lapisan atlas di saya, template.qptsaya memiliki beberapa aturan gaya dasar atau aturan label dasar seperti ini:

intersects($atlasgeometry, $geometry ) 

atau

$id = $atlasfeatureid

itu adalah beberapa di 100 peta:

label

Saya pikir sehingga secara programer memuat komposer dari template dan menghasilkan atlas menggunakan pyQgis hanya mengekspor satu per satu fitur saya dari lapisan atlas saya dan atlas di template saya tetap False.

ada ide ?


2
Jika Anda masih tertarik untuk menyelesaikan masalah ini, bisakah Anda memposting kode yang Anda gunakan untuk membuat atlas?
firefly-orange

Jawaban:


1

Sulit untuk diuji tanpa demo.

Apa yang terjadi jika Anda lebih eksplisit di label jadi:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.