[Qgis-developer] Using QgsCategorizedSymbolRendererV2

hubbatov hubbatov at mail.ru
Thu Oct 31 01:14:42 PDT 2013


QgsSymbolV2 *defaultSymbol =
QgsSymbolV2::defaultSymbol(layer->geometryType());

QgsCategorizedSymbolRendererV2* renderer = new
QgsCategorizedSymbolRendererV2("", cropCategories(defaultSymbol));
renderer->setClassAttribute(fieldWithCropId);
renderer->setSourceSymbol(defaultSymbol);
layer->setRendererV2(renderer);



foreach (FieldAreaEntity* ent, m_loaded_areas) {
	QgsFeature feature;


layer->dataProvider()->getFeatures(QgsFeatureRequest(ent->featureId())).nextFeature(feature);

	int catIndex =
renderer->categoryIndexForValue(feature.attribute(fieldWithCropId).toString());
	QgsSymbolV2* symbol = layer->rendererV2()->symbolForFeature(feature);

	qDebug() 
                << "Renderer:" << layer->rendererV2()->type()
		<< "Source Symbol" <<
static_cast<QgsCategorizedSymbolRendererV2*>(layer->rendererV2())->sourceSymbol()				 
                << "feature:" << feature.id()
		<< "category:" << catIndex
		<< "symbol:" << symbol
		<< "feature value:" << feature.attribute(fieldWithCropId).toString();
}

OUTPUT:

"CATEGORIZED: idx cropId
{c1ca7354-2c2c-11e3-a07b-08002704c18f}::{c1ca7354-2c2c-11e3-a07b-08002704c18f}::FILL
SYMBOL (1 layers) color 6,218,153,255
{c2009944-2a82-11e3-b55c-08002704c18f}::{c2009944-2a82-11e3-b55c-08002704c18f}::FILL
SYMBOL (1 layers) color 255,170,127,255
{fe8b3eb4-2a82-11e3-a479-08002704c18f}::{fe8b3eb4-2a82-11e3-a479-08002704c18f}::FILL
SYMBOL (1 layers) color 170,255,255,255
{2a3776e4-0fdb-11e3-984c-08002704c18f}::{2a3776e4-0fdb-11e3-984c-08002704c18f}::FILL
SYMBOL (1 layers) color 3,141,139,255
{875ae144-16f2-11e3-8021-08002704c18f}::{875ae144-16f2-11e3-8021-08002704c18f}::FILL
SYMBOL (1 layers) color 255,0,0,255
{2a3742e6-0fdb-11e3-a61a-08002704c18f}::{2a3742e6-0fdb-11e3-a61a-08002704c18f}::FILL
SYMBOL (1 layers) color 255,85,127,255
{2a379296-0fdb-11e3-b0bc-08002704c18f}::{2a379296-0fdb-11e3-b0bc-08002704c18f}::FILL
SYMBOL (1 layers) color 255,255,0,255
{16826b08-2a8f-11e3-8120-08002704c18f}::{16826b08-2a8f-11e3-8120-08002704c18f}::FILL
SYMBOL (1 layers) color 85,170,0,255
{013bf5c0-2a8f-11e3-853b-08002704c18f}::{013bf5c0-2a8f-11e3-853b-08002704c18f}::FILL
SYMBOL (1 layers) color 81,143,96,255
" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 33 category:
6 symbol: 0x0 feature value: "{2a379296-0fdb-11e3-b0bc-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 34 category:
5 symbol: 0x0 feature value: "{2a3742e6-0fdb-11e3-a61a-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 35 category:
5 symbol: 0x0 feature value: "{2a3742e6-0fdb-11e3-a61a-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 36 category:
6 symbol: 0x0 feature value: "{2a379296-0fdb-11e3-b0bc-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 37 category:
6 symbol: 0x0 feature value: "{2a379296-0fdb-11e3-b0bc-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 38 category:
5 symbol: 0x0 feature value: "{2a3742e6-0fdb-11e3-a61a-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 39 category:
6 symbol: 0x0 feature value: "{2a379296-0fdb-11e3-b0bc-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 40 category:
1 symbol: 0x0 feature value: "{c2009944-2a82-11e3-b55c-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 41 category:
5 symbol: 0x0 feature value: "{2a3742e6-0fdb-11e3-a61a-08002704c18f}" 
Renderer: "categorizedSymbol" Source Symbol 0x36ab2b0 feature: 42 category:
5 symbol: 0x0 feature value: "{2a3742e6-0fdb-11e3-a61a-08002704c18f}" 


So, why symbolForFeature is not set?



--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Using-QgsCategorizedSymbolRendererV2-tp5086683p5086778.html
Sent from the Quantum GIS - Developer mailing list archive at Nabble.com.


More information about the Qgis-developer mailing list