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