【发布时间】:2022-06-16 11:29:46
【问题描述】:
我有一个在地图上显示计算结果的 QGIS 项目。有几个向量层,每个向量层都有 >100 个计算字段。所有这些层/字段的数据可视化方式都非常相似。我尝试编写一个复制模板层的脚本,并根据所选字段名称更改符号系统的表达式。
下面是我尝试访问的属性的屏幕截图(如果我要使用 UI 更改它们)。
如何在 PyQGIS 中访问/更改分级符号系统的线宽和线偏移的表达式?
【问题讨论】:
标签: pyqgis
我有一个在地图上显示计算结果的 QGIS 项目。有几个向量层,每个向量层都有 >100 个计算字段。所有这些层/字段的数据可视化方式都非常相似。我尝试编写一个复制模板层的脚本,并根据所选字段名称更改符号系统的表达式。
下面是我尝试访问的属性的屏幕截图(如果我要使用 UI 更改它们)。
如何在 PyQGIS 中访问/更改分级符号系统的线宽和线偏移的表达式?
【问题讨论】:
标签: pyqgis
以防其他人遇到此问题。 我使用解决方法解决了它。我将源层的样式保存到 qml 文件中,对于重复的层,我创建 qml 文件的临时副本,对 qml 文件进行搜索和替换并将其应用到新层使用 newLayer.loadNamedStyle(pathToTheTempQmlFile)
【讨论】:
希望这会有所帮助:
rule=layer.renderer().rootRule().children()[0]
rule.setFilterExpression('whatever')
参见:[https://qgis.org/pyqgis/3.22/core/QgsRuleBasedRenderer.html#qgis.core.QgsRuleBasedRenderer.Rule]
【讨论】: