QGIS二次开发:矢量图层分类渲染(QgsCategorizedSymbolRenderer)


QgsCategorizedSymbolRenderer 分类渲染器

QGIS矢量图层可以根据指定字段,渲染不同颜色:

//字段索引
int fieldIdx = pLayer->fields().indexOf("Type");

//该字段对应的所有属性值
QSet set = pLayer->uniqueValues(fieldIdx);
QVariantList list = unique.toList();

//不同值渲染不同色
QgsCategoryList categories = QgsCateforizedSymbolRenderer::createCategories(list, QgsSymbol::defaultSymbol(pLayer->geometryType()), pLayer, "Type");
for(auto iter=categories.begin(); iter!=categories.end(); ++iter)
{
  iter->symbol()->setColor(yourColor);
}

//
初始化渲染器,并赋给图层 std::unique_ptr renderer = qgis::make_unique("Type", categories);
pLayer
->setRenderer(renderer->clone());

转载链接:qgis二次开发矢量图层根据指定字段绘制类别_kingcrab0710的博客-CSDN博客_qgis二次开发绘图