Etykiety oparte na wyrażeniach w skrypcie Atlas nie aktualizują się


9

Próbuję śledzić programowo ładowanie kompozytora z szablonu i generowanie atlasu za pomocą pyQgis, aby zautomatyzować kompozytora wydruku atlasu za pomocą pyqgis:

specyficzne w kodzie atlasu mówią:

    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)

ten kod działa dla mojego zadania i biorę nowe mapy feutures 100 atlasu, ale w mojej template.qptmam kilka etykiet z kodem takim jak ten:

QGIS [%concat( "OBJECTID" )%]

że OBJECTIDjest taki sam dla wszystkich nowych mapach 100 Atlas feutures. Masz pomysł, dlaczego? Jeśli korzystam z ręcznego eksportu atlasu, to dla każdej OBJECTIDzmiany mapy .


Mam więcej szczegółów prawda Nie działa nic związanego z atlasem warstw w moim template.qptMam pewne reguły stylów bazowych lub reguły etykiet bazowych, takie jak to:

intersects($atlasgeometry, $geometry ) 

lub

$id = $atlasfeatureid

to niektóre ze 100 map:

etykieta

Myślę, że programowo załaduj kompozytora z szablonu i wygeneruj atlas za pomocą pyQgis, po prostu wyeksportuj jeden po drugim moje funkcje z mojej warstwy atlasu, a atlas w moim szablonie pozostanie fałszywy.

dowolny pomysł ?


2
Jeśli nadal jesteś zainteresowany rozwiązaniem tego problemu, czy możesz opublikować kod, którego używasz do renderowania atlasu?
firefly-orange,

Odpowiedzi:


1

Ciężko przetestować bez wersji demonstracyjnej.

Co się stanie, jeśli wyraźniej określisz etykietę:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.