Os rótulos baseados em expressão no Atlas com script não são atualizados


9

Eu tento seguir Programaticamente carregar o compositor do modelo e gerar atlas usando pyQgis para automatizar o atlas print compositer usando pyqgis:

específico no código do atlas diz:

    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)

esse código funciona para a minha tarefa e tomo novos mapas de 100 atlas, mas no meu template.qpteu tenho alguns rótulos com código como este:

QGIS [%concat( "OBJECTID" )%]

que OBJECTIDé o mesmo para os mapas de todos os novos 100 atlas Feutures. Alguma idéia do porquê? Se eu usar a exportação manual de atlas, faça qualquer OBJECTIDalteração no mapa .


Eu tenho mais detalhes do verdadeiro Não funciona nada relacionado ao atlas de camada no meu template.qpteu tenho algumas regras de estilos de base ou regras de rótulos de base como este:

intersects($atlasgeometry, $geometry ) 

ou

$id = $atlasfeatureid

isso é o que há em 100 mapas:

rótulo

Eu acho que para carregar programaticamente o compositor do modelo e gerar atlas usando pyQgis, basta exportar um a um meus recursos da minha camada de atlas e o atlas do meu modelo permanecer falso.

qualquer ideia ?


2
Se você ainda estiver interessado em resolver esse problema, pode postar o código que está usando para renderizar o atlas?
Firefly-orange #

Respostas:


1

Difícil de testar sem uma demonstração.

O que acontece se você for mais explícito no rótulo, portanto:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.