如何以编程方式使用 PyQt 在 QGIS 中创建分类符号

How do I create a categorized symbology in QGIS with PyQt, programmatically

我希望某些点使用红星符号,而其他点使用绿色圆圈符号,具体取决于我数据中称为星号的列。

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

谈论 "Categorized Symbol Renderer" 根本没有给出任何关于如何制作它的细节。

我的列名称是“星号”,如果值为 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)
myQgisVectorLayer.triggerRepaint()