@@ -103,7 +103,6 @@ void QgsConfigParser::appendExGeographicBoundingBox( QDomElement& layerElem,
103
103
QDomText nBoundLatitudeText = doc.createTextNode ( QString::number ( wgs84BoundingRect.yMaximum () ) );
104
104
nBoundLatitudeElement.appendChild ( nBoundLatitudeText );
105
105
ExGeoBBoxElement.appendChild ( nBoundLatitudeElement );
106
- layerElem.appendChild ( ExGeoBBoxElement );
107
106
108
107
// BoundingBox element
109
108
QDomElement bBoxElement = doc.createElement ( " BoundingBox" );
@@ -116,7 +115,18 @@ void QgsConfigParser::appendExGeographicBoundingBox( QDomElement& layerElem,
116
115
bBoxElement.setAttribute ( " miny" , QString::number ( layerExtent.yMinimum () ) );
117
116
bBoxElement.setAttribute ( " maxx" , QString::number ( layerExtent.xMaximum () ) );
118
117
bBoxElement.setAttribute ( " maxy" , QString::number ( layerExtent.yMaximum () ) );
119
- layerElem.appendChild ( bBoxElement );
118
+
119
+ QDomElement lastCRSElem = layerElem.lastChildElement ( " CRS" );
120
+ if ( !lastCRSElem.isNull () )
121
+ {
122
+ layerElem.insertAfter ( ExGeoBBoxElement, lastCRSElem );
123
+ layerElem.insertAfter ( bBoxElement, ExGeoBBoxElement );
124
+ }
125
+ else
126
+ {
127
+ layerElem.appendChild ( ExGeoBBoxElement );
128
+ layerElem.appendChild ( bBoxElement );
129
+ }
120
130
}
121
131
122
132
QStringList QgsConfigParser::createCRSListForLayer ( QgsMapLayer* theMapLayer ) const
@@ -242,6 +252,9 @@ void QgsConfigParser::appendCRSElementsToLayer( QDomElement& layerElement, QDomD
242
252
return ;
243
253
}
244
254
255
+ // insert the CRS elements after the title element to be in accordance with the WMS 1.3 specification
256
+ QDomElement titleElement = layerElement.firstChildElement ( " Title" );
257
+
245
258
// In case the number of advertised CRS is constrained
246
259
QSet<QString> crsSet = supportedOutputCrsSet ();
247
260
@@ -255,7 +268,7 @@ void QgsConfigParser::appendCRSElementsToLayer( QDomElement& layerElement, QDomD
255
268
QDomElement crsElement = doc.createElement ( " CRS" );
256
269
QDomText crsText = doc.createTextNode ( *crsIt );
257
270
crsElement.appendChild ( crsText );
258
- layerElement.appendChild ( crsElement );
271
+ layerElement.insertAfter ( crsElement, titleElement );
259
272
}
260
273
}
261
274
0 commit comments