36 #ifdef HAVE_SERVER_PYTHON_PLUGINS 40 const QDomDocument *describeDocument =
nullptr;
42 #ifdef HAVE_SERVER_PYTHON_PLUGINS 44 if ( cacheManager && cacheManager->
getCachedDocument( &doc, project, request, accessControl ) )
46 describeDocument = &doc;
56 describeDocument = &doc;
61 response.
setHeader(
"Content-Type",
"text/xml; charset=utf-8" );
62 response.
write( describeDocument->toByteArray() );
75 #ifdef HAVE_SERVER_PYTHON_PLUGINS 82 QDomElement coveDescElement = doc.createElement( QStringLiteral(
"CoverageDescription" ) );
83 coveDescElement.setAttribute( QStringLiteral(
"xmlns" ),
WCS_NAMESPACE );
84 coveDescElement.setAttribute( QStringLiteral(
"xmlns:xsi" ), QStringLiteral(
"http://www.w3.org/2001/XMLSchema-instance" ) );
85 coveDescElement.setAttribute( QStringLiteral(
"xsi:schemaLocation" ),
WCS_NAMESPACE +
" http://schemas.opengis.net/wcs/1.0.0/describeCoverage.xsd" );
86 coveDescElement.setAttribute( QStringLiteral(
"xmlns:gml" ),
GML_NAMESPACE );
87 coveDescElement.setAttribute( QStringLiteral(
"xmlns:xlink" ), QStringLiteral(
"http://www.w3.org/1999/xlink" ) );
88 coveDescElement.setAttribute( QStringLiteral(
"version" ), QStringLiteral(
"1.0.0" ) );
89 coveDescElement.setAttribute( QStringLiteral(
"updateSequence" ), QStringLiteral(
"0" ) );
90 doc.appendChild( coveDescElement );
95 QMap<QString, QString>::const_iterator cove_name_it = parameters.constFind( QStringLiteral(
"COVERAGE" ) );
96 if ( cove_name_it != parameters.constEnd() )
98 coveNames = cove_name_it.value();
100 if ( coveNames.isEmpty() )
102 QMap<QString, QString>::const_iterator cove_name_it = parameters.constFind( QStringLiteral(
"IDENTIFIER" ) );
103 if ( cove_name_it != parameters.constEnd() )
105 coveNames = cove_name_it.value();
109 QStringList coveNameList;
110 if ( !coveNames.isEmpty() )
112 coveNameList = coveNames.split(
',' );
113 for (
int i = 0; i < coveNameList.size(); ++i )
115 coveNameList.replace( i, coveNameList.at( i ).trimmed() );
120 for (
int i = 0; i < wcsLayersId.size(); ++i )
131 #ifdef HAVE_SERVER_PYTHON_PLUGINS 137 QString name = layer->
name();
140 name = name.replace(
' ',
'_' );
142 if ( coveNameList.size() == 0 || coveNameList.contains( name ) )
145 coveDescElement.appendChild(
getCoverageOffering( doc, const_cast<QgsRasterLayer *>( rLayer ), project ) );
virtual void setHeader(const QString &key, const QString &value)=0
Set Header entry Add Header entry to the response Note that it is usually an error to set Header afte...
Base class for all map layer types.
QgsMapLayerType type() const
Returns the type of the layer.
const QString WCS_NAMESPACE
QString shortName() const
Returns the short name of the layer used by QGIS Server to identify the layer.
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
void writeDescribeCoverage(QgsServerInterface *serverIface, const QgsProject *project, const QString &version, const QgsServerRequest &request, QgsServerResponse &response)
Output WCS DescribeCoverage response.
QDomDocument createDescribeCoverageDocument(QgsServerInterface *serverIface, const QgsProject *project, const QString &version, const QgsServerRequest &request)
Create describe coverage document.
virtual void write(const QString &data)
Write string This is a convenient method that will write directly to the underlying I/O device...
const QString GML_NAMESPACE
QgsServerRequest::Parameters parameters() const
Returns a map of query parameters with keys converted to uppercase.
SERVER_EXPORT QStringList wcsLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published in WCS.
A helper class that centralizes caches accesses given by all the server cache filter plugins...
Reads and writes project states.
bool getCachedDocument(QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Returns cached document (or 0 if document not in cache) like capabilities.
QgsServerRequest Class defining request interface passed to services QgsService::executeRequest() met...
bool layerReadPermission(const QgsMapLayer *layer) const
Returns the layer read right.
QgsServerInterface Class defining interfaces exposed by QGIS Server and made available to plugins...
QDomElement getCoverageOffering(QDomDocument &doc, const QgsRasterLayer *layer, const QgsProject *project, bool brief)
CoverageOffering or CoverageOfferingBrief element.
bool setCachedDocument(const QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Updates or inserts the document in cache like capabilities.
virtual QgsServerCacheManager * cacheManager() const =0
Gets the registered server cache filters.
A helper class that centralizes restrictions given by all the access control filter plugins...
QgsMapLayer * mapLayer(const QString &layerId) const
Retrieve a pointer to a registered layer by layer ID.
QgsServerResponse Class defining response interface passed to services QgsService::executeRequest() m...
virtual QgsAccessControl * accessControls() const =0
Gets the registered access control filters.
QMap< QString, QString > Parameters