Les étiquettes basées sur l'expression dans Atlas scripté ne parviennent pas à mettre à jour

9

J'essaie de suivre le compositeur par programme à partir du modèle et de générer un atlas à l'aide de pyQgis pour automatiser le compositeur d'impression d'atlas à l'aide de pyqgis:

spécifique dans le code de l'atlas 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)

ce code fonctionne pour ma tâche et je prends de nouvelles cartes 100 atlas feutures mais dans mon template.qptj'ai quelques étiquettes avec du code comme ceci:

QGIS [%concat( "OBJECTID" )%]

il en OBJECTIDva de même pour les 100 nouvelles cartes atlas feutures. Une idée pourquoi? Si j'utilise l'exportation manuelle d'atlas, alors pour tout OBJECTIDchangement de carte .


J'ai plus de détails le vrai ne fonctionne rien lié à l'atlas des couches dans mon template.qptj'ai quelques règles de styles de base ou des règles d'étiquettes de base comme ceci:

intersects($atlasgeometry, $geometry ) 

ou

$id = $atlasfeatureid

ce sont les quelques cartes sur 100:

étiquette

Je pense que pour charger le compositeur par programme à partir du modèle et générer un atlas à l'aide de pyQgis, il suffit d'exporter une à une mes fonctionnalités de ma couche d'atlas et l'atlas de mon modèle reste faux.

une idée ?

Mar
la source
2
Si vous souhaitez toujours résoudre ce problème, pouvez-vous publier le code que vous utilisez pour rendre l'atlas?
Firefly-orange

Réponses:

1

Difficile à tester sans démo.

Que se passe-t-il si vous êtes plus explicite dans l'étiquette donc:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
HeikkiVesanto
la source