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


QgsCategorizedSymbolRenderer 分类渲染器

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

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

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

//不同值渲染不同色
QgsCategoryList cats = QgsCateforizedSymbolRenderer::createCategories(list, QgsSymbol::defaultSymbol(pLayer->geometryType()), pLayer, "Type");
for(auto iter=cats.begin(); iter!=cats.end(); ++iter)
{
  //iter->symbol()->setColor(yourColor);
  QgsSimpleMarkerSymbolLayer* symLayer = new QgsSimpleMarkerSymbolLayer( QgsSimpleMarkerSymbolLayerBase::Shape::Square );
  symLayer->setSize( 1 );
  symLayer->setFillColor( Qt::white );
  symLayer->setStrokeColor( Qt::red );
  iter->symbol->changeSymbolLayer( 0, symLayer );
}

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

 

 

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

QGis C++ 开发之图层分类显示 - 袁龙 - 博客园 (cnblogs.com)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM