@@ -139,11 +139,70 @@ QStringList QgsServerProjectUtils::wmsRestrictedComposers( const QgsProject &pro
139
139
return project.readListEntry ( QStringLiteral ( " WMSRestrictedComposers" ), QStringLiteral ( " /" ), QStringList () );
140
140
}
141
141
142
+ QStringList QgsServerProjectUtils::wmsOutputCrsList ( const QgsProject &project )
143
+ {
144
+ QStringList crsList = project.readListEntry ( QStringLiteral ( " WMSCrsList" ), QStringLiteral ( " /" ), QStringList () );
145
+ if ( crsList.isEmpty () )
146
+ {
147
+ QStringList valueList = project.readListEntry ( QStringLiteral ( " WMSEpsgList" ), QStringLiteral ( " /" ), QStringList () );
148
+ bool conversionOk;
149
+ for ( int i = 0 ; i < valueList.size (); ++i )
150
+ {
151
+ int epsgNr = valueList.at ( i ).toInt ( &conversionOk );
152
+ if ( conversionOk )
153
+ {
154
+ crsList.append ( QStringLiteral ( " EPSG:%1" ).arg ( epsgNr ) );
155
+ }
156
+ }
157
+ }
158
+ if ( crsList.isEmpty () )
159
+ {
160
+ // no CRS restriction defined in the project. Provide project CRS, wgs84 and pseudo mercator
161
+ QString projectCrsId = project.crs ().authid ();
162
+ crsList.append ( projectCrsId );
163
+ if ( projectCrsId.compare ( QLatin1String ( " EPSG:4326" ), Qt::CaseInsensitive ) != 0 )
164
+ {
165
+ crsList.append ( QStringLiteral ( " EPSG:%1" ).arg ( 4326 ) );
166
+ }
167
+ if ( projectCrsId.compare ( QLatin1String ( " EPSG:3857" ), Qt::CaseInsensitive ) != 0 )
168
+ {
169
+ crsList.append ( QStringLiteral ( " EPSG:%1" ).arg ( 3857 ) );
170
+ }
171
+ }
172
+ return crsList;
173
+ }
174
+
142
175
QString QgsServerProjectUtils::wmsServiceUrl ( const QgsProject &project )
143
176
{
144
177
return project.readEntry ( QStringLiteral ( " WMSUrl" ), QStringLiteral ( " /" ), " " );
145
178
}
146
179
180
+ QString QgsServerProjectUtils::wmsRootName ( const QgsProject &project )
181
+ {
182
+ return project.readEntry ( QStringLiteral ( " WMSRootName" ), QStringLiteral ( " /" ), " " );
183
+ }
184
+
185
+ QStringList QgsServerProjectUtils::wmsRestrictedLayers ( const QgsProject &project )
186
+ {
187
+ return project.readListEntry ( QStringLiteral ( " WMSRestrictedLayers" ), QStringLiteral ( " /" ), QStringList () );
188
+ }
189
+
190
+ QgsRectangle QgsServerProjectUtils::wmsExtent ( const QgsProject &project )
191
+ {
192
+ bool ok = false ;
193
+ QStringList values = project.readListEntry ( QStringLiteral ( " WMSExtent" ), QStringLiteral ( " /" ), QStringList (), &ok );
194
+ if ( !ok || values.size () != 4 )
195
+ {
196
+ return QgsRectangle ();
197
+ }
198
+ // order of value elements must be xmin, ymin, xmax, ymax
199
+ double xmin = values[ 0 ].toDouble ();
200
+ double ymin = values[ 1 ].toDouble ();
201
+ double xmax = values[ 2 ].toDouble ();
202
+ double ymax = values[ 3 ].toDouble ();
203
+ return QgsRectangle ( xmin, ymin, xmax, ymax );
204
+ }
205
+
147
206
QString QgsServerProjectUtils::wfsServiceUrl ( const QgsProject &project )
148
207
{
149
208
return project.readEntry ( QStringLiteral ( " WFSUrl" ), QStringLiteral ( " /" ), " " );
0 commit comments