Skip to content

Commit 8431d0c

Browse files
committedJul 23, 2018
Use wms parameters in wms service
1 parent a946c52 commit 8431d0c

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed
 

‎src/server/services/wms/qgswms.cpp

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "qgswmsgetfeatureinfo.h"
3232
#include "qgswmsdescribelayer.h"
3333
#include "qgswmsgetlegendgraphics.h"
34+
#include "qgswmsparameters.h"
3435

3536
#define QSTR_COMPARE( str, lit )\
3637
(str.compare( QStringLiteral( lit ), Qt::CaseInsensitive ) == 0)
@@ -69,83 +70,85 @@ namespace QgsWms
6970
void executeRequest( const QgsServerRequest &request, QgsServerResponse &response,
7071
const QgsProject *project ) override
7172
{
72-
QgsServerRequest::Parameters params = request.parameters();
73-
QString versionString = params.value( "VERSION" );
74-
if ( versionString.isEmpty() )
73+
const QgsWmsParameters parameters( QUrlQuery( request.url() ) );
74+
75+
QString version = parameters.version();
76+
if ( version.isEmpty() )
7577
{
76-
//WMTVER needs to be supported by WMS 1.1.1 for backwards compatibility with WMS 1.0.0
77-
versionString = params.value( "WMTVER" );
78+
// WMTVER needs to be supported by WMS 1.1.1 for backwards
79+
// compatibility with WMS 1.0.0
80+
version = parameters.wmtver();
7881
}
7982

8083
// Set the default version
81-
const bool valid = versionString.compare( "1.1.1" ) == 0 || versionString.compare( "1.3.0" ) == 0;
82-
if ( versionString.isEmpty() || !valid )
84+
if ( version.isEmpty() || !parameters.versionIsValid( version ) )
8385
{
84-
versionString = mVersion;
86+
version = mVersion;
8587
}
8688

8789
// Get the request
88-
QString req = params.value( QStringLiteral( "REQUEST" ) );
90+
const QString req = parameters.request();
8991
if ( req.isEmpty() )
9092
{
9193
throw QgsServiceException( QStringLiteral( "OperationNotSupported" ),
9294
QStringLiteral( "Please check the value of the REQUEST parameter" ) );
9395
}
9496

95-
if ( ( QSTR_COMPARE( mVersion, "1.1.1" ) && QSTR_COMPARE( req, "capabilities" ) )
96-
|| QSTR_COMPARE( req, "GetCapabilities" ) )
97+
if ( ( mVersion.compare( QStringLiteral( "1.1.1" ) ) == 0 \
98+
&& req.compare( QStringLiteral( "capabilities" ) ) == 0 )
99+
|| req.compare( QStringLiteral( "GetCapabilities" ) ) == 0 )
97100
{
98-
writeGetCapabilities( mServerIface, project, versionString, request, response, false );
101+
writeGetCapabilities( mServerIface, project, version, request, response, false );
99102
}
100103
else if ( QSTR_COMPARE( req, "GetProjectSettings" ) )
101104
{
102105
//getProjectSettings extends WMS 1.3.0 capabilities
103-
versionString = QStringLiteral( "1.3.0" );
104-
writeGetCapabilities( mServerIface, project, versionString, request, response, true );
106+
version = QStringLiteral( "1.3.0" );
107+
writeGetCapabilities( mServerIface, project, version, request, response, true );
105108
}
106109
else if ( QSTR_COMPARE( req, "GetMap" ) )
107110
{
108-
QString format = params.value( QStringLiteral( "FORMAT" ) );
111+
QString format = parameters.formatAsString();
109112
if QSTR_COMPARE( format, "application/dxf" )
110113
{
111-
writeAsDxf( mServerIface, project, versionString, request, response );
114+
writeAsDxf( mServerIface, project, version, request, response );
112115
}
113116
else
114117
{
115-
writeGetMap( mServerIface, project, versionString, request, response );
118+
writeGetMap( mServerIface, project, version, request, response );
116119
}
117120
}
118121
else if ( QSTR_COMPARE( req, "GetFeatureInfo" ) )
119122
{
120-
writeGetFeatureInfo( mServerIface, project, versionString, request, response );
123+
writeGetFeatureInfo( mServerIface, project, version, request, response );
121124
}
122125
else if ( QSTR_COMPARE( req, "GetContext" ) )
123126
{
124-
writeGetContext( mServerIface, project, versionString, request, response );
127+
writeGetContext( mServerIface, project, version, request, response );
125128
}
126129
else if ( QSTR_COMPARE( req, "GetSchemaExtension" ) )
127130
{
128-
writeGetSchemaExtension( mServerIface, versionString, request, response );
131+
writeGetSchemaExtension( mServerIface, version, request, response );
129132
}
130133
else if ( QSTR_COMPARE( req, "GetStyle" ) )
131134
{
132-
writeGetStyle( mServerIface, project, versionString, request, response );
135+
writeGetStyle( mServerIface, project, version, request, response );
133136
}
134137
else if ( QSTR_COMPARE( req, "GetStyles" ) )
135138
{
136-
writeGetStyles( mServerIface, project, versionString, request, response );
139+
writeGetStyles( mServerIface, project, version, request, response );
137140
}
138141
else if ( QSTR_COMPARE( req, "DescribeLayer" ) )
139142
{
140-
writeDescribeLayer( mServerIface, project, versionString, request, response );
143+
writeDescribeLayer( mServerIface, project, version, request, response );
141144
}
142145
else if ( QSTR_COMPARE( req, "GetLegendGraphic" ) || QSTR_COMPARE( req, "GetLegendGraphics" ) )
143146
{
144-
writeGetLegendGraphics( mServerIface, project, versionString, request, response );
147+
writeGetLegendGraphics( mServerIface, project, version, request, response );
145148
}
146149
else if ( QSTR_COMPARE( req, "GetPrint" ) )
147150
{
148-
writeGetPrint( mServerIface, project, versionString, request, response );
151+
writeGetPrint( mServerIface, project, version, request, response );
149152
}
150153
else
151154
{

0 commit comments

Comments
 (0)
Please sign in to comment.