37    QDomElement layerElem;
 
   39      layerElem = doc.createElement( QStringLiteral( 
"CoverageOfferingBrief" ) );
 
   41      layerElem = doc.createElement( QStringLiteral( 
"CoverageOffering" ) );
 
   44    QDomElement nameElem = doc.createElement( QStringLiteral( 
"name" ) );
 
   45    QString name = layer->
name();
 
   48    name = name.replace( 
' ', 
'_' );
 
   49    const QDomText nameText = doc.createTextNode( name );
 
   50    nameElem.appendChild( nameText );
 
   51    layerElem.appendChild( nameElem );
 
   54    QDomElement labelElem = doc.createElement( QStringLiteral( 
"label" ) );
 
   56    if ( title.isEmpty() )
 
   58      title = layer->
name();
 
   60    const QDomText labelText = doc.createTextNode( title );
 
   61    labelElem.appendChild( labelText );
 
   62    layerElem.appendChild( labelElem );
 
   66    if ( !abstract.isEmpty() )
 
   68      QDomElement descriptionElem = doc.createElement( QStringLiteral( 
"description" ) );
 
   69      const QDomText descriptionText = doc.createTextNode( abstract );
 
   70      descriptionElem.appendChild( descriptionText );
 
   71      layerElem.appendChild( descriptionElem );
 
   77    const int wgs84precision = 6;
 
   87      QgsDebugError( QStringLiteral( 
"Transform error caught: %1. Using original layer extent." ).arg( e.
what() ) );
 
   90    QDomElement lonLatElem = doc.createElement( QStringLiteral( 
"lonLatEnvelope" ) );
 
   91    lonLatElem.setAttribute( QStringLiteral( 
"srsName" ), QStringLiteral( 
"urn:ogc:def:crs:OGC:1.3:CRS84" ) );
 
   92    QDomElement lowerPosElem = doc.createElement( QStringLiteral( 
"gml:pos" ) );
 
   94    lowerPosElem.appendChild( lowerPosText );
 
   95    lonLatElem.appendChild( lowerPosElem );
 
   96    QDomElement upperPosElem = doc.createElement( QStringLiteral( 
"gml:pos" ) );
 
   98    upperPosElem.appendChild( upperPosText );
 
   99    lonLatElem.appendChild( upperPosElem );
 
  100    layerElem.appendChild( lonLatElem );
 
  108    QDomElement domainSetElem = doc.createElement( QStringLiteral( 
"domainSet" ) );
 
  109    layerElem.appendChild( domainSetElem );
 
  111    QDomElement spatialDomainElem = doc.createElement( QStringLiteral( 
"spatialDomain" ) );
 
  112    domainSetElem.appendChild( spatialDomainElem );
 
  122    QDomElement envelopeElem = doc.createElement( QStringLiteral( 
"gml:Envelope" ) );
 
  123    envelopeElem.setAttribute( QStringLiteral( 
"srsName" ), layerCrs.
authid() );
 
  124    QDomElement lowerCornerElem = doc.createElement( QStringLiteral( 
"gml:pos" ) );
 
  126    lowerCornerElem.appendChild( lowerCornerText );
 
  127    envelopeElem.appendChild( lowerCornerElem );
 
  128    QDomElement upperCornerElem = doc.createElement( QStringLiteral( 
"gml:pos" ) );
 
  130    upperCornerElem.appendChild( upperCornerText );
 
  131    envelopeElem.appendChild( upperCornerElem );
 
  132    spatialDomainElem.appendChild( envelopeElem );
 
  134    QDomElement rectGridElem = doc.createElement( QStringLiteral( 
"gml:RectifiedGrid" ) );
 
  135    rectGridElem.setAttribute( QStringLiteral( 
"dimension" ), 2 );
 
  136    QDomElement limitsElem = doc.createElement( QStringLiteral( 
"gml:limits" ) );
 
  137    rectGridElem.appendChild( limitsElem );
 
  138    QDomElement gridEnvElem = doc.createElement( QStringLiteral( 
"gml:GridEnvelope" ) );
 
  139    limitsElem.appendChild( gridEnvElem );
 
  140    QDomElement lowElem = doc.createElement( QStringLiteral( 
"gml:low" ) );
 
  141    const QDomText lowText = doc.createTextNode( QStringLiteral( 
"0 0" ) );
 
  142    lowElem.appendChild( lowText );
 
  143    gridEnvElem.appendChild( lowElem );
 
  144    QDomElement highElem = doc.createElement( QStringLiteral( 
"gml:high" ) );
 
  145    const QDomText highText = doc.createTextNode( QString::number( layer->
width() ) + 
" " + QString::number( layer->
height() ) );
 
  146    highElem.appendChild( highText );
 
  147    gridEnvElem.appendChild( highElem );
 
  148    spatialDomainElem.appendChild( rectGridElem );
 
  150    QDomElement xAxisElem = doc.createElement( QStringLiteral( 
"gml:axisName" ) );
 
  151    const QDomText xAxisText = doc.createTextNode( QStringLiteral( 
"x" ) );
 
  152    xAxisElem.appendChild( xAxisText );
 
  153    rectGridElem.appendChild( xAxisElem );
 
  155    QDomElement yAxisElem = doc.createElement( QStringLiteral( 
"gml:axisName" ) );
 
  156    const QDomText yAxisText = doc.createTextNode( QStringLiteral( 
"y" ) );
 
  157    yAxisElem.appendChild( yAxisText );
 
  158    rectGridElem.appendChild( yAxisElem );
 
  160    QDomElement originElem = doc.createElement( QStringLiteral( 
"gml:origin" ) );
 
  161    QDomElement originPosElem = doc.createElement( QStringLiteral( 
"gml:pos" ) );
 
  162    originElem.appendChild( originPosElem );
 
  164    originPosElem.appendChild( originPosText );
 
  165    rectGridElem.appendChild( originElem );
 
  167    QDomElement xOffsetElem = doc.createElement( QStringLiteral( 
"gml:offsetVector" ) );
 
  168    const QDomText xOffsetText = doc.createTextNode( QString::number( layer->
rasterUnitsPerPixelX() ) + 
" 0" );
 
  169    xOffsetElem.appendChild( xOffsetText );
 
  170    rectGridElem.appendChild( xOffsetElem );
 
  172    QDomElement yOffsetElem = doc.createElement( QStringLiteral( 
"gml:offsetVector" ) );
 
  173    const QDomText yOffsetText = doc.createTextNode( 
"0 " + QString::number( layer->
rasterUnitsPerPixelY() ) );
 
  174    yOffsetElem.appendChild( yOffsetText );
 
  175    rectGridElem.appendChild( yOffsetElem );
 
  178    QDomElement rangeSetElem = doc.createElement( QStringLiteral( 
"rangeSet" ) );
 
  179    layerElem.appendChild( rangeSetElem );
 
  188    QDomElement RangeSetElem = doc.createElement( QStringLiteral( 
"RangeSet" ) );
 
  189    rangeSetElem.appendChild( RangeSetElem );
 
  191    QDomElement rsNameElem = doc.createElement( QStringLiteral( 
"name" ) );
 
  192    const QDomText rsNameText = doc.createTextNode( QStringLiteral( 
"Bands" ) );
 
  193    rsNameElem.appendChild( rsNameText );
 
  194    RangeSetElem.appendChild( rsNameElem );
 
  196    QDomElement rsLabelElem = doc.createElement( QStringLiteral( 
"label" ) );
 
  197    const QDomText rsLabelText = doc.createTextNode( QStringLiteral( 
"Bands" ) );
 
  198    rsLabelElem.appendChild( rsLabelText );
 
  199    RangeSetElem.appendChild( rsLabelElem );
 
  201    QDomElement axisDescElem = doc.createElement( QStringLiteral( 
"axisDescription" ) );
 
  202    RangeSetElem.appendChild( axisDescElem );
 
  204    QDomElement AxisDescElem = doc.createElement( QStringLiteral( 
"AxisDescription" ) );
 
  205    axisDescElem.appendChild( AxisDescElem );
 
  207    QDomElement adNameElem = doc.createElement( QStringLiteral( 
"name" ) );
 
  208    const QDomText adNameText = doc.createTextNode( QStringLiteral( 
"bands" ) );
 
  209    adNameElem.appendChild( adNameText );
 
  210    AxisDescElem.appendChild( adNameElem );
 
  212    QDomElement adLabelElem = doc.createElement( QStringLiteral( 
"label" ) );
 
  213    const QDomText adLablelText = doc.createTextNode( QStringLiteral( 
"bands" ) );
 
  214    adLabelElem.appendChild( adLablelText );
 
  215    AxisDescElem.appendChild( adLabelElem );
 
  217    QDomElement adValuesElem = doc.createElement( QStringLiteral( 
"values" ) );
 
  218    for ( 
int idx = 0; idx < layer->
bandCount(); ++idx )
 
  220      QDomElement adValueElem = doc.createElement( QStringLiteral( 
"singleValue" ) );
 
  221      const QDomText adValueText = doc.createTextNode( QString::number( idx + 1 ) );
 
  222      adValueElem.appendChild( adValueText );
 
  223      adValuesElem.appendChild( adValueElem );
 
  225    AxisDescElem.appendChild( adValuesElem );
 
  229    QDomElement sCRSElem = doc.createElement( QStringLiteral( 
"supportedCRSs" ) );
 
  230    QDomElement rCRSElem = doc.createElement( QStringLiteral( 
"requestResponseCRSs" ) );
 
  231    const QDomText rCRSText = doc.createTextNode( layerCrs.
authid() );
 
  232    rCRSElem.appendChild( rCRSText );
 
  233    sCRSElem.appendChild( rCRSElem );
 
  234    QDomElement nCRSElem = doc.createElement( QStringLiteral( 
"nativeCRSs" ) );
 
  235    const QDomText nCRSText = doc.createTextNode( layerCrs.
authid() );
 
  236    nCRSElem.appendChild( nCRSText );
 
  237    sCRSElem.appendChild( nCRSElem );
 
  238    layerElem.appendChild( sCRSElem );
 
  242    QDomElement sFormatsElem = doc.createElement( QStringLiteral( 
"supportedFormats" ) );
 
  243    sFormatsElem.setAttribute( QStringLiteral( 
"nativeFormat" ), QStringLiteral( 
"raw binary" ) );
 
  244    QDomElement formatsElem = doc.createElement( QStringLiteral( 
"formats" ) );
 
  245    const QDomText formatsText = doc.createTextNode( QStringLiteral( 
"GeoTIFF" ) );
 
  246    formatsElem.appendChild( formatsText );
 
  247    sFormatsElem.appendChild( formatsElem );
 
  248    layerElem.appendChild( sFormatsElem );