@@ -61,8 +61,21 @@ namespace QgsWms
6161 {
6262 Q_UNUSED ( project );
6363
64- // Get the request
6564 QgsServerRequest::Parameters params = request.parameters ();
65+ QString versionString = params.value ( " VERSION" );
66+ if ( versionString.isEmpty () )
67+ {
68+ // WMTVER needs to be supported by WMS 1.1.1 for backwards compatibility with WMS 1.0.0
69+ versionString = params.value ( " WMTVER" );
70+ }
71+
72+ // Set the default version
73+ if ( versionString.isEmpty () )
74+ {
75+ versionString = mVersion ;
76+ }
77+
78+ // Get the request
6679 QString req = params.value ( QStringLiteral ( " REQUEST" ) );
6780 if ( req.isEmpty () )
6881 {
@@ -72,66 +85,59 @@ namespace QgsWms
7285 }
7386
7487 if (( QSTR_COMPARE ( mVersion , " 1.1.1" ) && QSTR_COMPARE ( req, " capabilities" ) )
75- || QSTR_COMPARE ( req, " GetCapabilites " ) )
88+ || QSTR_COMPARE ( req, " GetCapabilities " ) )
7689 {
77- // TODO GetCapabilities
78- writeGetCapabilities ( mServerIface , mVersion , request, response, false );
90+ writeGetCapabilities ( mServerIface , versionString, request, response, false );
7991 }
8092 else if QSTR_COMPARE ( req, " GetProjectSettings" )
8193 {
82- // Ensure that we are supporting 1.3.0
83- if ( mVersion .compare ( " 1.3.0" ) != 0 )
84- {
85- writeError ( response, QStringLiteral ( " OperationNotSupported" ),
86- QStringLiteral ( " GetProjectSettings is not supported" ) );
87- return ;
88- }
89- writeGetCapabilities ( mServerIface , mVersion , request, response, true );
90- // TODO GetProjectSettings
94+ // getProjectSettings extends WMS 1.3.0 capabilities
95+ versionString = QStringLiteral ( " 1.3.0" );
96+ writeGetCapabilities ( mServerIface , versionString, request, response, true );
9197 }
9298 else if QSTR_COMPARE ( req, " GetMap" )
9399 {
94100 QString format = params.value ( QStringLiteral ( " FORMAT" ) );
95101 if QSTR_COMPARE ( format, " application/dxf" )
96102 {
97- writeAsDxf ( mServerIface , mVersion , request, response );
103+ writeAsDxf ( mServerIface , versionString , request, response );
98104 }
99105 else
100106 {
101- writeGetMap ( mServerIface , mVersion , request, response );
107+ writeGetMap ( mServerIface , versionString , request, response );
102108 }
103109 }
104110 else if QSTR_COMPARE ( req, " GetFeatureInfo" )
105111 {
106- writeGetFeatureInfo ( mServerIface , mVersion , request, response );
112+ writeGetFeatureInfo ( mServerIface , versionString , request, response );
107113 }
108114 else if QSTR_COMPARE ( req, " GetContext" )
109115 {
110- writeGetContext ( mServerIface , mVersion , request, response );
116+ writeGetContext ( mServerIface , versionString , request, response );
111117 }
112118 else if QSTR_COMPARE ( req, " GetSchemaExtension" )
113119 {
114- writeGetSchemaExtension ( mServerIface , mVersion , request, response );
120+ writeGetSchemaExtension ( mServerIface , versionString , request, response );
115121 }
116122 else if QSTR_COMPARE ( req, " GetStyle" )
117123 {
118- writeGetStyle ( mServerIface , mVersion , request, response );
124+ writeGetStyle ( mServerIface , versionString , request, response );
119125 }
120126 else if QSTR_COMPARE ( req, " GetStyles" )
121127 {
122- writeGetStyles ( mServerIface , mVersion , request, response );
128+ writeGetStyles ( mServerIface , versionString , request, response );
123129 }
124130 else if QSTR_COMPARE ( req, " DescribeLayer" )
125131 {
126- writeDescribeLayer ( mServerIface , mVersion , request, response );
132+ writeDescribeLayer ( mServerIface , versionString , request, response );
127133 }
128134 else if ( QSTR_COMPARE ( req, " GetLegendGraphic" ) || QSTR_COMPARE ( req, " GetLegendGraphics" ) )
129135 {
130- writeGetLegendGraphics ( mServerIface , mVersion , request, response );
136+ writeGetLegendGraphics ( mServerIface , versionString , request, response );
131137 }
132138 else if QSTR_COMPARE ( req, " GetPrint" )
133139 {
134- writeDescribeLayer ( mServerIface , mVersion , request, response );
140+ writeGetPrint ( mServerIface , versionString , request, response );
135141 }
136142 else
137143 {
@@ -159,7 +165,6 @@ class QgsWmsModule: public QgsServiceModule
159165 {
160166 QgsDebugMsg ( " WMSModule::registerSelf called" );
161167 registry.registerService ( new QgsWms::Service ( " 1.3.0" , serverIface ) );
162- registry.registerService ( new QgsWms::Service ( " 1.1.1" , serverIface ) );
163168 }
164169};
165170
0 commit comments