脚本化Atlas中基于表达式的标签无法更新


9

我尝试遵循以编程方式从模板加载作曲家,并使用pyQgis生成图集,以使用pyqgis自动化图集打印作曲家:

具体在图集代码中说:

    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)

此代码适用于我的任务,我使用了100张新的Atlas功能图,但在我的template.qpt代码中有一些这样的标签:

QGIS [%concat( "OBJECTID" )%]

OBJECTID是所有新的100册feutures地图相同。知道为什么吗?如果我使用手动地图集导出,则可以进行任何地图OBJECTID更改。


我有更多详细信息,在我template.qpt有一些基本样式规则或基本标签规则的情况下,true不起作用与图层图集相关的任何内容:

intersects($atlasgeometry, $geometry ) 

要么

$id = $atlasfeatureid

那就是100张地图中的一些:

标签

我认为,以编程方式从模板加载composer并使用pyQgis生成图集只是从我的图集层中逐一导出我的特征,而模板中的图集保持为False。

任何的想法 ?


2
如果您仍然有兴趣解决此问题,请张贴您用来渲染图集的代码吗?
萤火虫橙

Answers:


1

没有演示就很难测试。

如果您在标签中更明确地显示,会发生什么情况:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.