diff --git a/src/server/services/wcs/qgswcsutils.cpp b/src/server/services/wcs/qgswcsutils.cpp index a5faca6d8289..a2a243ea31b0 100644 --- a/src/server/services/wcs/qgswcsutils.cpp +++ b/src/server/services/wcs/qgswcsutils.cpp @@ -150,28 +150,29 @@ namespace QgsWcs QDomElement xAxisElem = doc.createElement( QStringLiteral( "gml:axisName" ) ); QDomText xAxisText = doc.createTextNode( QStringLiteral( "x" ) ); xAxisElem.appendChild( xAxisText ); - spatialDomainElem.appendChild( xAxisElem ); + rectGridElem.appendChild( xAxisElem ); QDomElement yAxisElem = doc.createElement( QStringLiteral( "gml:axisName" ) ); QDomText yAxisText = doc.createTextNode( QStringLiteral( "y" ) ); yAxisElem.appendChild( yAxisText ); - spatialDomainElem.appendChild( yAxisElem ); + rectGridElem.appendChild( yAxisElem ); QDomElement originElem = doc.createElement( QStringLiteral( "gml:origin" ) ); QDomElement originPosElem = doc.createElement( QStringLiteral( "gml:pos" ) ); + originElem.appendChild( originPosElem ); QDomText originPosText = doc.createTextNode( qgsDoubleToString( QgsServerProjectUtils::floorWithPrecision( layerBBox.xMinimum(), precision ), precision ) + " " + qgsDoubleToString( QgsServerProjectUtils::floorWithPrecision( layerBBox.yMinimum(), precision ), precision ) ); originPosElem.appendChild( originPosText ); - spatialDomainElem.appendChild( originElem ); + rectGridElem.appendChild( originElem ); QDomElement xOffsetElem = doc.createElement( QStringLiteral( "gml:offsetVector" ) ); QDomText xOffsetText = doc.createTextNode( QString::number( layer->rasterUnitsPerPixelX() ) + " 0" ); xOffsetElem.appendChild( xOffsetText ); - spatialDomainElem.appendChild( xOffsetElem ); + rectGridElem.appendChild( xOffsetElem ); QDomElement yOffsetElem = doc.createElement( QStringLiteral( "gml:offsetVector" ) ); QDomText yOffsetText = doc.createTextNode( "0 " + QString::number( layer->rasterUnitsPerPixelY() ) ); yOffsetElem.appendChild( yOffsetText ); - spatialDomainElem.appendChild( yOffsetElem ); + rectGridElem.appendChild( yOffsetElem ); //GML property containing one RangeSet GML object. QDomElement rangeSetElem = doc.createElement( QStringLiteral( "rangeSet" ) ); @@ -192,6 +193,11 @@ namespace QgsWcs rsNameElem.appendChild( rsNameText ); RangeSetElem.appendChild( rsNameElem ); + QDomElement rsLabelElem = doc.createElement( QStringLiteral( "label" ) ); + QDomText rsLabelText = doc.createTextNode( QStringLiteral( "Bands" ) ); + rsLabelElem.appendChild( rsLabelText ); + RangeSetElem.appendChild( rsLabelElem ); + QDomElement axisDescElem = doc.createElement( QStringLiteral( "axisDescription" ) ); RangeSetElem.appendChild( axisDescElem ); @@ -203,10 +209,15 @@ namespace QgsWcs adNameElem.appendChild( adNameText ); AxisDescElem.appendChild( adNameElem ); + QDomElement adLabelElem = doc.createElement( QStringLiteral( "label" ) ); + QDomText adLablelText = doc.createTextNode( QStringLiteral( "bands" ) ); + adLabelElem.appendChild( adLablelText ); + AxisDescElem.appendChild( adLabelElem ); + QDomElement adValuesElem = doc.createElement( QStringLiteral( "values" ) ); for ( int idx = 0; idx < layer->bandCount(); ++idx ) { - QDomElement adValueElem = doc.createElement( QStringLiteral( "value" ) ); + QDomElement adValueElem = doc.createElement( QStringLiteral( "singleValue" ) ); QDomText adValueText = doc.createTextNode( QString::number( idx + 1 ) ); adValueElem.appendChild( adValueText ); adValuesElem.appendChild( adValueElem ); diff --git a/tests/testdata/qgis_server/wcs_describecoverage.txt b/tests/testdata/qgis_server/wcs_describecoverage.txt index 38b10a83945a..40a164cb6617 100644 --- a/tests/testdata/qgis_server/wcs_describecoverage.txt +++ b/tests/testdata/qgis_server/wcs_describecoverage.txt @@ -22,22 +22,26 @@ Content-Type: text/xml; charset=utf-8 3600 3600 + x + y + + -30 29.999999 + + 0.00833333 0 + 0 0.00833333 - x - y - - 0.00833333 0 - 0 0.00833333 Bands + bands + - 1 + 1