我想在某些点上使用红星符号,而在其他点上使用绿色圆圈符号,这取决于我数据中称为星号的列。
此,https://docs.qgis.org/3.4/en/docs/pyqgis_developer_cookbook/vector.html#categorized-symbol-renderer
谈论“分类符号渲染器”只是根本不提供任何细节。
我的列名是“ 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)