如何使用PyQt在QGIS中创建分类符号系统

问题描述 投票:0回答:1

我想在某些点上使用红星符号,而在其他点上使用绿色圆圈符号,这取决于我数据中称为星号的列。

此,https://docs.qgis.org/3.4/en/docs/pyqgis_developer_cookbook/vector.html#categorized-symbol-renderer

谈论“分类符号渲染器”只是根本不提供任何细节。

pyqt qgis
1个回答
0
投票

我的列名是“ star”,如果值是0,我想使用圆圈符号,如果其他值是星号,则要使用星号。

这花了很长时间才弄清楚,因为我找不到任何示例,而编写这几行代码的文档有些痛苦,这里是我最终弄清楚的文档:https://qgis.org/pyqgis/master/core/QgsRendererCategory.html

circle_symbol = QgsMarkerSymbol.createSimple({'color': 'green', 'size': '3', 'outline_color': 'black'})
star_symbol = QgsMarkerSymbol.createSimple({'color': '#ff0000', 'size': '5', 'outline_color': '#ff0000', 'name' : 'star'})
c1 = QgsRendererCategory(0,circle_symbol,"No Star",True)
c2 = QgsRendererCategory(None,star_symbol,"Star Note",True)
renderer = QgsCategorizedSymbolRenderer("star", [c1,c2])

myQgisVectorLayer.setRenderer(renderer)
© www.soinside.com 2019 - 2024. All rights reserved.