24  const double scaleFactor = std::pow( 10.0, places );
 
   25  return ( std::ceil( number * scaleFactor ) / scaleFactor );
 
 
   30  const double scaleFactor = std::pow( 10.0, places );
 
   31  return ( std::floor( number * scaleFactor ) / scaleFactor );
 
 
   36  return project.
readBoolEntry( QStringLiteral( 
"WMSServiceCapabilities" ), QStringLiteral( 
"/" ), 
false );
 
 
   41  QString title = project.
readEntry( QStringLiteral( 
"WMSServiceTitle" ), QStringLiteral( 
"/" ) );
 
   42  if ( title.isEmpty() )
 
   44    title = project.
title();
 
   46  if ( title.isEmpty() )
 
   48    title = QObject::tr( 
"Untitled" );
 
 
   55  return project.
readEntry( QStringLiteral( 
"WMSServiceAbstract" ), QStringLiteral( 
"/" ) );
 
 
   60  QStringList keywordList;
 
   61  const QStringList list = project.
readListEntry( QStringLiteral( 
"WMSKeywordList" ), QStringLiteral( 
"/" ), QStringList() );
 
   62  if ( !list.isEmpty() )
 
   64    for ( 
int i = 0; i < list.size(); ++i )
 
   66      const QString keyword = list.at( i );
 
   67      if ( !keyword.isEmpty() )
 
   69        keywordList.append( keyword );
 
 
   78  QString wmsOnlineResource = project.
readEntry( QStringLiteral( 
"WMSOnlineResource" ), QStringLiteral( 
"/" ) );
 
   84    return wmsOnlineResourceProperty.
valueAsString( context, wmsOnlineResource );
 
   87  return wmsOnlineResource;
 
 
   92  return project.
readEntry( QStringLiteral( 
"WMSContactOrganization" ), QStringLiteral( 
"/" ) );
 
 
   97  return project.
readEntry( QStringLiteral( 
"WMSContactPosition" ), QStringLiteral( 
"/" ) );
 
 
  102  return project.
readEntry( QStringLiteral( 
"WMSContactPerson" ), QStringLiteral( 
"/" ) );
 
 
  107  return project.
readEntry( QStringLiteral( 
"WMSContactMail" ), QStringLiteral( 
"/" ) );
 
 
  112  return project.
readEntry( QStringLiteral( 
"WMSContactPhone" ), QStringLiteral( 
"/" ) );
 
 
  117  return project.
readEntry( QStringLiteral( 
"WMSFees" ), QStringLiteral( 
"/" ) );
 
 
  122  return project.
readEntry( QStringLiteral( 
"WMSAccessConstraints" ), QStringLiteral( 
"/" ) );
 
 
  127  return project.
readNumEntry( QStringLiteral( 
"WMSMaxWidth" ), QStringLiteral( 
"/" ), -1 );
 
 
  132  return project.
readNumEntry( QStringLiteral( 
"WMSMaxHeight" ), QStringLiteral( 
"/" ), -1 );
 
 
  137  return project.
readBoolEntry( QStringLiteral( 
"WMSUseLayerIDs" ), QStringLiteral( 
"/" ), 
false );
 
 
  142  return project.
readNumEntry( QStringLiteral( 
"WMSImageQuality" ), QStringLiteral( 
"/" ), -1 );
 
 
  147  return project.
readNumEntry( QStringLiteral( 
"WMSTileBuffer" ), QStringLiteral( 
"/" ), 0 );
 
 
  152  return project.
readNumEntry( QStringLiteral( 
"WMSMaxAtlasFeatures" ), QStringLiteral( 
"/" ), 1 );
 
 
  157  return project.
readDoubleEntry( QStringLiteral( 
"WMSDefaultMapUnitsPerMm" ), QStringLiteral( 
"/" ), 1 );
 
 
  162  const QString sia2045 = project.
readEntry( QStringLiteral( 
"WMSInfoFormatSIA2045" ), QStringLiteral( 
"/" ), 
"" );
 
  164  return sia2045.compare( QLatin1String( 
"enabled" ), Qt::CaseInsensitive ) == 0
 
  165         || sia2045.compare( QLatin1String( 
"true" ), Qt::CaseInsensitive ) == 0;
 
 
  170  const QString wktGeom = project.
readEntry( QStringLiteral( 
"WMSAddWktGeometry" ), QStringLiteral( 
"/" ), 
"" );
 
  172  return wktGeom.compare( QLatin1String( 
"enabled" ), Qt::CaseInsensitive ) == 0
 
  173         || wktGeom.compare( QLatin1String( 
"true" ), Qt::CaseInsensitive ) == 0;
 
 
  178  const QString useFormSettings = project.
readEntry( QStringLiteral( 
"WMSFeatureInfoUseAttributeFormSettings" ), QStringLiteral( 
"/" ), 
"" );
 
  179  return useFormSettings.compare( QLatin1String( 
"enabled" ), Qt::CaseInsensitive ) == 0
 
  180         || useFormSettings.compare( QLatin1String( 
"true" ), Qt::CaseInsensitive ) == 0;
 
 
  185  const QString segmGeom = project.
readEntry( QStringLiteral( 
"WMSSegmentizeFeatureInfoGeometry" ), QStringLiteral( 
"/" ), 
"" );
 
  187  return segmGeom.compare( QLatin1String( 
"enabled" ), Qt::CaseInsensitive ) == 0
 
  188         || segmGeom.compare( QLatin1String( 
"true" ), Qt::CaseInsensitive ) == 0;
 
 
  193  const QString legendGroups = project.
readEntry( QStringLiteral( 
"WMSAddLayerGroupsLegendGraphic" ), QStringLiteral( 
"/" ), 
"" );
 
  194  return legendGroups.compare( QLatin1String( 
"enabled" ), Qt::CaseInsensitive ) == 0
 
  195         || legendGroups.compare( QLatin1String( 
"true" ), Qt::CaseInsensitive ) == 0;
 
 
  200  return project.
readBoolEntry( QStringLiteral( 
"WMSSkipNameForGroup" ), QStringLiteral( 
"/" ), 
false );
 
 
  205  return project.
readNumEntry( QStringLiteral( 
"WMSPrecision" ), QStringLiteral( 
"/" ), 6 );
 
 
  210  return project.
readEntry( QStringLiteral( 
"WMSFeatureInfoDocumentElement" ), QStringLiteral( 
"/" ), 
"" );
 
 
  215  return project.
readEntry( QStringLiteral( 
"WMSFeatureInfoDocumentElementNS" ), QStringLiteral( 
"/" ), 
"" );
 
 
  220  return project.
readEntry( QStringLiteral( 
"WMSFeatureInfoSchema" ), QStringLiteral( 
"/" ), 
"" );
 
 
  225  QHash<QString, QString> aliasMap;
 
  228  const QStringList aliasLayerStringList = project.
readListEntry( QStringLiteral( 
"WMSFeatureInfoAliasLayers" ), QStringLiteral( 
"/value" ), QStringList() );
 
  229  if ( aliasLayerStringList.isEmpty() )
 
  235  const QStringList layerAliasStringList = project.
readListEntry( QStringLiteral( 
"WMSFeatureInfoLayerAliases" ), QStringLiteral( 
"/value" ), QStringList() );
 
  236  if ( layerAliasStringList.isEmpty() )
 
  241  const int nMapEntries = std::min( aliasLayerStringList.size(), layerAliasStringList.size() );
 
  242  for ( 
int i = 0; i < nMapEntries; ++i )
 
  244    aliasMap.insert( aliasLayerStringList.at( i ), layerAliasStringList.at( i ) );
 
 
  252  return project.
readBoolEntry( QStringLiteral( 
"WMSInspire" ), QStringLiteral( 
"/activated" ) );
 
 
  257  return project.
readEntry( QStringLiteral( 
"WMSInspire" ), QStringLiteral( 
"/language" ) );
 
 
  262  return project.
readEntry( QStringLiteral( 
"WMSInspire" ), QStringLiteral( 
"/metadataUrl" ) );
 
 
  267  return project.
readEntry( QStringLiteral( 
"WMSInspire" ), QStringLiteral( 
"/metadataUrlType" ) );
 
 
  272  return project.
readEntry( QStringLiteral( 
"WMSInspire" ), QStringLiteral( 
"/temporalReference" ) );
 
 
  277  return project.
readEntry( QStringLiteral( 
"WMSInspire" ), QStringLiteral( 
"/metadataDate" ) );
 
 
  282  return project.
readListEntry( QStringLiteral( 
"WMSRestrictedComposers" ), QStringLiteral( 
"/" ), QStringList() );
 
 
  288  const QStringList wmsCrsList = project.
readListEntry( QStringLiteral( 
"WMSCrsList" ), QStringLiteral( 
"/" ), QStringList() );
 
  289  if ( !wmsCrsList.isEmpty() )
 
  291    for ( 
int i = 0; i < wmsCrsList.size(); ++i )
 
  293      const QString 
crs = wmsCrsList.at( i );
 
  294      if ( !
crs.isEmpty() )
 
  296        crsList.append( 
crs );
 
  300  if ( crsList.isEmpty() )
 
  302    const QStringList valueList = project.
readListEntry( QStringLiteral( 
"WMSEpsgList" ), QStringLiteral( 
"/" ), QStringList() );
 
  304    for ( 
int i = 0; i < valueList.size(); ++i )
 
  306      const int epsgNr = valueList.at( i ).toInt( &conversionOk );
 
  309        crsList.append( QStringLiteral( 
"EPSG:%1" ).arg( epsgNr ) );
 
  313  if ( crsList.isEmpty() )
 
  316    const QString projectCrsId = project.
crs().
authid();
 
  317    crsList.append( projectCrsId );
 
  318    if ( projectCrsId.compare( QLatin1String( 
"EPSG:4326" ), Qt::CaseInsensitive ) != 0 )
 
  320      crsList.append( QStringLiteral( 
"EPSG:%1" ).arg( 4326 ) );
 
  322    if ( projectCrsId.compare( QLatin1String( 
"EPSG:3857" ), Qt::CaseInsensitive ) != 0 )
 
  324      crsList.append( QStringLiteral( 
"EPSG:%1" ).arg( 3857 ) );
 
 
  332  const QString serviceUpper = service.toUpper();
 
  333  QString url = settings.
serviceUrl( serviceUpper );
 
  334  if ( !url.isEmpty() )
 
  340  if ( serviceUpper == QLatin1String( 
"WMS" ) )
 
  344  else if ( serviceUpper == QLatin1String( 
"WFS" ) )
 
  348  else if ( serviceUpper == QLatin1String( 
"WCS" ) )
 
  352  else if ( serviceUpper == QLatin1String( 
"WMTS" ) )
 
  356  url = request.
header( header );
 
  357  if ( !url.isEmpty() )
 
  362  if ( !url.isEmpty() )
 
  371  if ( !forwarded.isEmpty() )
 
  373    forwarded = forwarded.split( QLatin1Char( 
',' ) )[0];
 
  374    const QStringList elements = forwarded.split( 
';' );
 
  375    for ( 
const QString &element : elements )
 
  377      QStringList splited_element = element.trimmed().split( QLatin1Char( 
'=' ) );
 
  378      if ( splited_element[0] == 
"host" )
 
  380        host = splited_element[1];
 
  382      if ( splited_element[0] == 
"proto" )
 
  384        proto = splited_element[1];
 
  389  if ( host.isEmpty() )
 
  395  if ( host.isEmpty() )
 
  400  QUrl urlQUrl = request.
baseUrl();
 
  401  if ( !proto.isEmpty() )
 
  403    urlQUrl.setScheme( proto );
 
  406  if ( !host.isEmpty() )
 
  408    QStringList hostPort = host.split( QLatin1Char( 
':' ) );
 
  409    if ( hostPort.length() == 1 )
 
  411      urlQUrl.setHost( hostPort[0] );
 
  412      urlQUrl.setPort( -1 );
 
  414    if ( hostPort.length() == 2 )
 
  416      urlQUrl.setHost( hostPort[0] );
 
  417      urlQUrl.setPort( hostPort[1].toInt() );
 
  422  const QUrlQuery query { request.
originalUrl().query() };
 
  423  const QList<QPair<QString, QString>> constItems { query.queryItems() };
 
  425  for ( 
const QPair<QString, QString> &item : std::as_const( constItems ) )
 
  427    if ( 0 == item.first.compare( QLatin1String( 
"MAP" ), Qt::CaseSensitivity::CaseInsensitive ) )
 
  434  if ( !map.isEmpty() )
 
  437    query.setQueryItems( { { 
"MAP", map } } );
 
  438    urlQUrl.setQuery( query );
 
  442    urlQUrl.setQuery( NULL );
 
  445  return urlQUrl.url();
 
 
  450  QString url = project.
readEntry( QStringLiteral( 
"WMSUrl" ), QStringLiteral( 
"/" ), 
"" );
 
  453    url = 
serviceUrl( QStringLiteral( 
"WMS" ), request, settings );
 
 
  460  return project.
readEntry( QStringLiteral( 
"WMSRootName" ), QStringLiteral( 
"/" ), 
"" );
 
 
  465  return project.
readListEntry( QStringLiteral( 
"WMSRestrictedLayers" ), QStringLiteral( 
"/" ), QStringList() );
 
 
  471  QStringList values = project.
readListEntry( QStringLiteral( 
"WMSExtent" ), QStringLiteral( 
"/" ), QStringList(), &ok );
 
  472  if ( !ok || values.size() != 4 )
 
  477  const double xmin = values[0].toDouble();
 
  478  const double ymin = values[1].toDouble();
 
  479  const double xmax = values[2].toDouble();
 
  480  const double ymax = values[3].toDouble();
 
 
  486  QString url = project.
readEntry( QStringLiteral( 
"WFSUrl" ), QStringLiteral( 
"/" ), 
"" );
 
  489    url = 
serviceUrl( QStringLiteral( 
"WFS" ), request, settings );
 
 
  496  return project.
readListEntry( QStringLiteral( 
"WFSLayers" ), QStringLiteral( 
"/" ) );
 
 
  501  return project.
readNumEntry( QStringLiteral( 
"WFSLayersPrecision" ), 
"/" + layerId, 6 );
 
 
  506  return project.
readListEntry( QStringLiteral( 
"WFSTLayers" ), QStringLiteral( 
"Update" ) );
 
 
  511  return project.
readListEntry( QStringLiteral( 
"WFSTLayers" ), QStringLiteral( 
"Insert" ) );
 
 
  516  return project.
readListEntry( QStringLiteral( 
"WFSTLayers" ), QStringLiteral( 
"Delete" ) );
 
 
  521  QString url = project.
readEntry( QStringLiteral( 
"WCSUrl" ), QStringLiteral( 
"/" ), 
"" );
 
  524    url = 
serviceUrl( QStringLiteral( 
"WCS" ), request, settings );
 
 
  531  return project.
readListEntry( QStringLiteral( 
"WCSLayers" ), QStringLiteral( 
"/" ) );
 
 
  536  QString url = project.
readEntry( QStringLiteral( 
"WMTSUrl" ), QStringLiteral( 
"/" ), 
"" );
 
  539    url = 
serviceUrl( QStringLiteral( 
"WMTS" ), request, settings );
 
 
  546  return project.
readBoolEntry( QStringLiteral( 
"RenderMapTile" ), QStringLiteral( 
"/" ), 
false );
 
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
 
int readNumEntry(const QString &scope, const QString &key, int def=0, bool *ok=nullptr) const
Reads an integer from the specified scope and key.
 
QString title() const
Returns the project's title.
 
QgsPropertyCollection dataDefinedServerProperties() const
Returns the data defined properties used for overrides in user defined server parameters.
 
@ WMSOnlineResource
Alias.
 
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
QString readEntry(const QString &scope, const QString &key, const QString &def=QString(), bool *ok=nullptr) const
Reads a string from the specified scope and key.
 
bool readBoolEntry(const QString &scope, const QString &key, bool def=false, bool *ok=nullptr) const
Reads a boolean from the specified scope and key.
 
QgsCoordinateReferenceSystem crs
 
double readDoubleEntry(const QString &scope, const QString &key, double def=0, bool *ok=nullptr) const
Reads a double from the specified scope and key.
 
QStringList readListEntry(const QString &scope, const QString &key, const QStringList &def=QStringList(), bool *ok=nullptr) const
Reads a string list from the specified scope and key.
 
QgsProperty property(int key) const final
Returns a matching property from the collection, if one exists.
 
A store for object properties.
 
QString expressionString() const
Returns the expression used for the property value.
 
QString valueAsString(const QgsExpressionContext &context, const QString &defaultString=QString(), bool *ok=nullptr) const
Calculates the current value of the property and interprets it as a string.
 
bool isActive() const
Returns whether the property is currently active.
 
A rectangle specified with double values.
 
static QString wmsFeatureInfoSchema(const QgsProject &project)
Returns the schema URL for XML GetFeatureInfo request.
 
static int wmsTileBuffer(const QgsProject &project)
Returns the tile buffer in pixels for WMS images defined in a QGIS project.
 
static QString wcsServiceUrl(const QgsProject &project, const QgsServerRequest &request=QgsServerRequest(), const QgsServerSettings &settings=QgsServerSettings())
Returns the WCS service url.
 
static QString wmsRootName(const QgsProject &project)
Returns the WMS root layer name defined in a QGIS project.
 
static bool wmsInfoFormatSia2045(const QgsProject &project)
Returns if the info format is SIA20145.
 
static bool wmsSkipNameForGroup(const QgsProject &project)
Returns if name attribute should be skipped for groups in WMS capabilities document.
 
static QString wmsInspireMetadataUrl(const QgsProject &project)
Returns the Inspire metadata URL.
 
static QString wmtsServiceUrl(const QgsProject &project, const QgsServerRequest &request=QgsServerRequest(), const QgsServerSettings &settings=QgsServerSettings())
Returns the WMTS service url.
 
static int wmsFeatureInfoPrecision(const QgsProject &project)
Returns the geometry precision for GetFeatureInfo request.
 
static double ceilWithPrecision(double number, int places)
Returns a double greater than number to the specified number of places.
 
static QString wmsFeatureInfoDocumentElementNs(const QgsProject &project)
Returns the document element namespace for XML GetFeatureInfo request.
 
static QStringList wmsRestrictedComposers(const QgsProject &project)
Returns the restricted composer list.
 
static QgsRectangle wmsExtent(const QgsProject &project)
Returns the WMS Extent restriction.
 
static bool wmsUseLayerIds(const QgsProject &project)
Returns if layer ids are used as name in WMS.
 
static bool wmsFeatureInfoSegmentizeWktGeometry(const QgsProject &project)
Returns if the geometry has to be segmentize in GetFeatureInfo request.
 
static QString owsServiceAccessConstraints(const QgsProject &project)
Returns the owsService access constraints defined in project.
 
static QStringList wfsLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published in WFS.
 
static bool wmsRenderMapTiles(const QgsProject &project)
Returns true if WMS requests should use the QgsMapSettings::RenderMapTile flag, so that no visible ar...
 
static QString owsServiceOnlineResource(const QgsProject &project)
Returns the owsService online resource defined in project.
 
static QString owsServiceFees(const QgsProject &project)
Returns the owsService fees defined in project.
 
static QStringList owsServiceKeywords(const QgsProject &project)
Returns the owsService keywords defined in project.
 
static QString owsServiceContactPosition(const QgsProject &project)
Returns the owsService contact position defined in project.
 
static QStringList wfstUpdateLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published as WFS-T with update capabilities.
 
static bool wmsFeatureInfoUseAttributeFormSettings(const QgsProject &project)
Returns if feature form settings should be considered for the format of the feature info response.
 
static QString serviceUrl(const QString &service, const QgsServerRequest &request, const QgsServerSettings &settings)
Returns the service url defined in the environment variable or with HTTP header.
 
static QStringList wfstInsertLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published as WFS-T with insert capabilities.
 
static QString wmsInspireTemporalReference(const QgsProject &project)
Returns the Inspire temporal reference.
 
static QStringList wmsOutputCrsList(const QgsProject &project)
Returns the WMS output CRS list.
 
static QString wmsInspireMetadataDate(const QgsProject &project)
Returns the Inspire metadata date.
 
static QString owsServiceContactOrganization(const QgsProject &project)
Returns the owsService contact organization defined in project.
 
static QHash< QString, QString > wmsFeatureInfoLayerAliasMap(const QgsProject &project)
Returns the mapping between layer name and wms layer name for GetFeatureInfo request.
 
static bool wmsFeatureInfoAddWktGeometry(const QgsProject &project)
Returns if the geometry is displayed as Well Known Text in GetFeatureInfo request.
 
static QString wmsServiceUrl(const QgsProject &project, const QgsServerRequest &request=QgsServerRequest(), const QgsServerSettings &settings=QgsServerSettings())
Returns the WMS service url.
 
static QStringList wmsRestrictedLayers(const QgsProject &project)
Returns the restricted layer name list.
 
static int wmsImageQuality(const QgsProject &project)
Returns the quality for WMS images defined in a QGIS project.
 
static QString wmsInspireLanguage(const QgsProject &project)
Returns the Inspire language.
 
static QString wmsInspireMetadataUrlType(const QgsProject &project)
Returns the Inspire metadata URL type.
 
static double wmsDefaultMapUnitsPerMm(const QgsProject &project)
Returns the default number of map units per millimeters in case of the scale is not given.
 
static bool owsServiceCapabilities(const QgsProject &project)
Returns if owsService capabilities are enabled.
 
static bool wmsInspireActivate(const QgsProject &project)
Returns if Inspire is activated.
 
static int wmsMaxWidth(const QgsProject &project)
Returns the maximum width for WMS images defined in a QGIS project.
 
static QString owsServiceTitle(const QgsProject &project)
Returns the owsService title defined in project.
 
static QString owsServiceContactMail(const QgsProject &project)
Returns the owsService contact mail defined in project.
 
static QString owsServiceAbstract(const QgsProject &project)
Returns the owsService abstract defined in project.
 
static double floorWithPrecision(double number, int places)
Returns a double less than number to the specified number of places.
 
static QStringList wfstDeleteLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published as WFS-T with delete capabilities.
 
static QString wfsServiceUrl(const QgsProject &project, const QgsServerRequest &request=QgsServerRequest(), const QgsServerSettings &settings=QgsServerSettings())
Returns the WFS service url.
 
static int wmsMaxHeight(const QgsProject &project)
Returns the maximum height for WMS images defined in a QGIS project.
 
static QStringList wcsLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published in WCS.
 
static bool wmsAddLegendGroupsLegendGraphic(const QgsProject &project)
Returns if legend groups should be in the legend graphic response if GetLegendGraphic is called on a ...
 
static QString wmsFeatureInfoDocumentElement(const QgsProject &project)
Returns the document element name for XML GetFeatureInfo request.
 
static int wmsMaxAtlasFeatures(const QgsProject &project)
Returns the maximum number of atlas features which can be printed in a request.
 
static QString owsServiceContactPhone(const QgsProject &project)
Returns the owsService contact phone defined in project.
 
static int wfsLayerPrecision(const QgsProject &project, const QString &layerId)
Returns the Layer precision defined in a QGIS project for the WFS GetFeature.
 
static QString owsServiceContactPerson(const QgsProject &project)
Returns the owsService contact person defined in project.
 
Defines requests passed to QgsService classes.
 
virtual QString header(const QString &name) const
Returns the header value.
 
QUrl baseUrl() const
Returns the base URL of QGIS server.
 
QUrl originalUrl() const
Returns the request url as seen by the web server, by default this is equal to the url seen by QGIS s...
 
RequestHeader
The internal HTTP Header used for the request as enum.
 
@ X_QGIS_WMS_SERVICE_URL
The QGIS WMS service URL.
 
@ X_QGIS_WCS_SERVICE_URL
The QGIS WCS service URL.
 
@ X_QGIS_WFS_SERVICE_URL
The QGIS WFS service URL.
 
@ X_FORWARDED_PROTO
Https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto.
 
@ X_QGIS_WMTS_SERVICE_URL
The QGIS WMTS service URL.
 
@ X_QGIS_SERVICE_URL
The QGIS service URL.
 
@ X_FORWARDED_HOST
Https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host.
 
@ FORWARDED
Https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded, https://tools....
 
@ HOST
Https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host.
 
Provides a way to retrieve settings by prioritizing according to environment variables,...
 
QString serviceUrl(const QString &service) const
Returns the service URL from the setting.
 
const QgsCoordinateReferenceSystem & crs