@@ -1107,7 +1107,8 @@ void QgsWmsProvider::parseStyle(QDomElement const & e, QgsWmsStyleProperty& styl
1107
1107
}
1108
1108
1109
1109
1110
- void QgsWmsProvider::parseLayer (QDomElement const & e, QgsWmsLayerProperty& layerProperty)
1110
+ void QgsWmsProvider::parseLayer (QDomElement const & e, QgsWmsLayerProperty& layerProperty,
1111
+ QgsWmsLayerProperty *parentProperty)
1111
1112
{
1112
1113
#ifdef QGISDEBUG
1113
1114
// std::cout << "QgsWmsProvider::parseLayer: entering." << std::endl;
@@ -1149,7 +1150,7 @@ void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& laye
1149
1150
subLayerProperty.crs = layerProperty.crs ;
1150
1151
// TODO
1151
1152
1152
- parseLayer (e1 , subLayerProperty);
1153
+ parseLayer (e1 , subLayerProperty, &layerProperty );
1153
1154
1154
1155
layerProperty.layer .push_back (subLayerProperty);
1155
1156
@@ -1271,6 +1272,19 @@ void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& laye
1271
1272
// std::cout << "QgsWmsProvider::parseLayer: srs is: '" << layerProperty.srs << "'." << std::endl;
1272
1273
// std::cout << "QgsWmsProvider::parseLayer: bbox is: '" << layerProperty.latlonbbox.stringRep() << "'." << std::endl;
1273
1274
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
+
1274
1288
// Store the extent so that it can be combined with others later
1275
1289
// in calculateExtent()
1276
1290
// For now use extent in the first SRS defined for the layer
0 commit comments