void QgsServerProjectParser::combineExtentAndCrsOfGroupChildren( QDomElement& groupElem, QDomDocument& doc, bool considerMapExtent ) const { QgsRectangle combinedBBox; QSet<QString> combinedCRSSet; bool firstBBox = true; bool firstCRSSet = true; QDomNodeList layerChildren = groupElem.childNodes(); for ( int j = 0; j < layerChildren.size(); ++j ) { QDomElement childElem = layerChildren.at( j ).toElement(); if ( childElem.tagName() != "Layer" ) continue; QgsRectangle bbox = layerBoundingBoxInProjectCrs( childElem, doc ); if ( !bbox.isEmpty() ) { if ( firstBBox ) { combinedBBox = bbox; firstBBox = false; } else { combinedBBox.combineExtentWith( bbox ); } } //combine crs set QSet<QString> crsSet; if ( crsSetForLayer( childElem, crsSet ) ) { if ( firstCRSSet ) { combinedCRSSet = crsSet; firstCRSSet = false; } else { combinedCRSSet.intersect( crsSet ); } } } QgsConfigParserUtils::appendCrsElementsToLayer( groupElem, doc, combinedCRSSet.toList(), supportedOutputCrsList() ); QgsCoordinateReferenceSystem groupCRS = projectCrs(); if ( considerMapExtent ) { QgsRectangle mapRect = mapRectangle(); if ( !mapRect.isEmpty() ) { combinedBBox = mapRect; } } QgsConfigParserUtils::appendLayerBoundingBoxes( groupElem, doc, combinedBBox, groupCRS, combinedCRSSet.toList(), supportedOutputCrsList() ); }
void QgsProjectParser::combineExtentAndCrsOfGroupChildren( QDomElement& groupElem, QDomDocument& doc ) const { QgsRectangle combinedBBox; QSet<QString> combinedCRSSet; bool firstBBox = true; bool firstCRSSet = true; QDomNodeList layerChildren = groupElem.childNodes(); for ( int j = 0; j < layerChildren.size(); ++j ) { QDomElement childElem = layerChildren.at( j ).toElement(); if ( childElem.tagName() != "Layer" ) continue; QgsRectangle bbox = layerBoundingBoxInProjectCRS( childElem ); if ( !bbox.isEmpty() ) { if ( firstBBox ) { combinedBBox = bbox; firstBBox = false; } else { combinedBBox.combineExtentWith( &bbox ); } } //combine crs set QSet<QString> crsSet; if ( crsSetForLayer( childElem, crsSet ) ) { if ( firstCRSSet ) { combinedCRSSet = crsSet; firstCRSSet = false; } else { combinedCRSSet.intersect( crsSet ); } } } appendCRSElementsToLayer( groupElem, doc, combinedCRSSet.toList() ); const QgsCoordinateReferenceSystem& groupCRS = projectCRS(); appendLayerBoundingBoxes( groupElem, doc, combinedBBox, groupCRS ); }