本文整理汇总了C++中QgsSymbolLayerV2List::size方法的典型用法代码示例。如果您正苦于以下问题:C++ QgsSymbolLayerV2List::size方法的具体用法?C++ QgsSymbolLayerV2List::size怎么用?C++ QgsSymbolLayerV2List::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QgsSymbolLayerV2List
的用法示例。
在下文中一共展示了QgsSymbolLayerV2List::size方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
QgsFeatureRendererV2* QgsSingleSymbolRendererV2::createFromSld( QDomElement& element, QGis::GeometryType geomType )
{
// XXX this renderer can handle only one Rule!
// get the first Rule element
QDomElement ruleElem = element.firstChildElement( "Rule" );
if ( ruleElem.isNull() )
{
QgsDebugMsg( "no Rule elements found!" );
return NULL;
}
QString label, description;
QgsSymbolLayerV2List layers;
// retrieve the Rule element child nodes
QDomElement childElem = ruleElem.firstChildElement();
while ( !childElem.isNull() )
{
if ( childElem.localName() == "Name" )
{
// <se:Name> tag contains the rule identifier,
// so prefer title tag for the label property value
if ( label.isEmpty() )
label = childElem.firstChild().nodeValue();
}
else if ( childElem.localName() == "Description" )
{
// <se:Description> can contains a title and an abstract
QDomElement titleElem = childElem.firstChildElement( "Title" );
if ( !titleElem.isNull() )
{
label = titleElem.firstChild().nodeValue();
}
QDomElement abstractElem = childElem.firstChildElement( "Abstract" );
if ( !abstractElem.isNull() )
{
description = abstractElem.firstChild().nodeValue();
}
}
else if ( childElem.localName() == "Abstract" )
{
// <sld:Abstract> (v1.0)
description = childElem.firstChild().nodeValue();
}
else if ( childElem.localName() == "Title" )
{
// <sld:Title> (v1.0)
label = childElem.firstChild().nodeValue();
}
else if ( childElem.localName().endsWith( "Symbolizer" ) )
{
// create symbol layers for this symbolizer
QgsSymbolLayerV2Utils::createSymbolLayerV2ListFromSld( childElem, geomType, layers );
}
childElem = childElem.nextSiblingElement();
}
if ( layers.size() == 0 )
return NULL;
// now create the symbol
QgsSymbolV2 *symbol;
switch ( geomType )
{
case QGis::Line:
symbol = new QgsLineSymbolV2( layers );
break;
case QGis::Polygon:
symbol = new QgsFillSymbolV2( layers );
break;
case QGis::Point:
symbol = new QgsMarkerSymbolV2( layers );
break;
default:
QgsDebugMsg( QString( "invalid geometry type: found %1" ).arg( geomType ) );
return NULL;
}
// and finally return the new renderer
return new QgsSingleSymbolRendererV2( symbol );
}
示例2: if
QgsFeatureRendererV2* QgsSingleSymbolRendererV2::createFromSld( QDomElement& element, QGis::GeometryType geomType )
{
// XXX this renderer can handle only one Rule!
// get the first Rule element
QDomElement ruleElem = element.firstChildElement( "Rule" );
if ( ruleElem.isNull() )
{
QgsDebugMsg( "no Rule elements found!" );
return NULL;
}
QString label, description;
QgsSymbolLayerV2List layers;
// retrieve the Rule element child nodes
QDomElement childElem = ruleElem.firstChildElement();
while ( !childElem.isNull() )
{
if ( childElem.localName() == "Name" )
{
label = childElem.firstChild().nodeValue();
}
else if ( childElem.localName() == "Description" || childElem.localName() == "Abstract" )
{
description = childElem.firstChild().nodeValue();
}
else if ( childElem.localName().endsWith( "Symbolizer" ) )
{
// create symbol layers for this symbolizer
QgsSymbolLayerV2Utils::createSymbolLayerV2ListFromSld( childElem, geomType, layers );
}
childElem = childElem.nextSiblingElement();
}
// now create the symbol
QgsSymbolV2 *symbol = 0;
if ( layers.size() > 0 )
{
switch ( geomType )
{
case QGis::Line:
symbol = new QgsLineSymbolV2( layers );
break;
case QGis::Polygon:
symbol = new QgsFillSymbolV2( layers );
break;
case QGis::Point:
symbol = new QgsMarkerSymbolV2( layers );
break;
default:
QgsDebugMsg( QString( "invalid geometry type: found %1" ).arg( geomType ) );
return NULL;
}
}
// and finally return the new renderer
return new QgsSingleSymbolRendererV2( symbol );
}