Skip to content

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed
 

‎src/providers/wms/qgswmsprovider.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,7 +1107,8 @@ void QgsWmsProvider::parseStyle(QDomElement const & e, QgsWmsStyleProperty& styl
11071107
}
11081108

11091109

1110-
void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& layerProperty)
1110+
void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& layerProperty,
1111+
QgsWmsLayerProperty *parentProperty)
11111112
{
11121113
#ifdef QGISDEBUG
11131114
// std::cout << "QgsWmsProvider::parseLayer: entering." << std::endl;
@@ -1149,7 +1150,7 @@ void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& laye
11491150
subLayerProperty.crs = layerProperty.crs;
11501151
// TODO
11511152

1152-
parseLayer(e1, subLayerProperty);
1153+
parseLayer(e1, subLayerProperty, &layerProperty );
11531154

11541155
layerProperty.layer.push_back(subLayerProperty);
11551156

@@ -1271,6 +1272,19 @@ void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& laye
12711272
// std::cout << "QgsWmsProvider::parseLayer: srs is: '" << layerProperty.srs << "'." << std::endl;
12721273
// std::cout << "QgsWmsProvider::parseLayer: bbox is: '" << layerProperty.latlonbbox.stringRep() << "'." << std::endl;
12731274

1275+
// inherit SRS and BoundingBox if not defined but available in parent
1276+
if ( parentProperty )
1277+
{
1278+
if ( layerProperty.crs.size() == 0 )
1279+
{
1280+
layerProperty.crs = parentProperty->crs;
1281+
}
1282+
if ( layerProperty.boundingBox.size() == 0 )
1283+
{
1284+
layerProperty.boundingBox = parentProperty->boundingBox;
1285+
}
1286+
}
1287+
12741288
// Store the extent so that it can be combined with others later
12751289
// in calculateExtent()
12761290
// For now use extent in the first SRS defined for the layer

‎src/providers/wms/qgswmsprovider.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,8 @@ public slots:
576576

577577
//! parse the WMS Layer XML element
578578
// TODO: Make recursable
579-
void parseLayer(QDomElement const & e, QgsWmsLayerProperty& layerProperty);
579+
void parseLayer(QDomElement const & e, QgsWmsLayerProperty& layerProperty,
580+
QgsWmsLayerProperty *parentProperty=0);
580581

581582
//! calculates the combined extent of the layers selected by layersDrawn
582583
void calculateExtent();

0 commit comments

Comments
 (0)
Please sign in to comment.