Le etichette basate su espressioni in Atlas con script non si aggiornano


9

Provo a seguire a livello di codice caricare compositore dal modello e generare atlante usando pyQgis per automatizzare il compositore di stampa atlante usando pyqgis:

specifico nel codice atlante dire:

    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)

questo codice funziona per il mio compito e prendo nuove mappe di 100 atlanti feutures ma nel mio template.qptho alcune etichette con codice come questo:

QGIS [%concat( "OBJECTID" )%]

che OBJECTIDè lo stesso per tutti i nuovi 100 atlante feutures mappe. Qualche idea sul perché? Se uso l'esportazione manuale dell'atlante, allora per ogni OBJECTIDcambio di mappa .


Ho più dettagli il vero Non funziona nulla di correlato all'atlante dei livelli nel mio template.qptho alcune regole di stili di base o regole di etichette di base come questa:

intersects($atlasgeometry, $geometry ) 

o

$id = $atlasfeatureid

questo è il alcuni in 100 mappe:

etichetta

Penso che il caricamento programmatore del compositore dal modello e la generazione dell'atlante usando pyQgis esportino uno ad uno le mie caratteristiche dal mio livello di atlante e l'atlante nel mio modello rimanga falso.

qualche idea ?


2
Se sei ancora interessato a risolvere questo problema, puoi pubblicare il codice che stai utilizzando per eseguire il rendering dell'atlante?
lucciola arancione

Risposte:


1

Difficile da testare senza una demo.

Cosa succede se sei più esplicito nell'etichetta così:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.