QGIS API Documentation  3.17.0-Master (a84647cf30)
qgswfsutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgswfsutils.h
3 
4  Define WFS service utility functions
5  ------------------------------------
6  begin : December 20 , 2016
7  copyright : (C) 2007 by Marco Hugentobler ( parts from qgswfshandler)
8  (C) 2012 by RenĂ©-Luc D'Hont ( parts from qgswmshandler)
9  (C) 2014 by Alessandro Pasotti ( parts from qgswfshandler)
10  (C) 2017 by David Marteau
11  email : marco dot hugentobler at karto dot baug dot ethz dot ch
12  a dot pasotti at itopen dot it
13  david dot marteau at 3liz dot com
14  ***************************************************************************/
15 
16 /***************************************************************************
17  * *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or *
21  * (at your option) any later version. *
22  * *
23  ***************************************************************************/
24 #ifndef QGSWFSUTILS_H
25 #define QGSWFSUTILS_H
26 
27 #include "qgsmodule.h"
28 #include "qgsfeaturerequest.h"
29 #include "qgswfsserviceexception.h"
30 
36 namespace QgsWfs
38 {
39 
43  QString implementationVersion();
44 
48  QString serviceUrl( const QgsServerRequest &request, const QgsProject *project );
49 
53  QString layerTypeName( const QgsMapLayer *layer );
54 
58  QgsVectorLayer *layerByTypeName( const QgsProject *project, const QString &typeName );
59 
63  QgsFeatureRequest parseFilterElement( const QString &typeName, QDomElement &filterElem, QgsProject *project = nullptr );
64 
68  QgsFeatureRequest parseFilterElement( const QString &typeName, QDomElement &filterElem, QStringList &serverFids, const QgsProject *project = nullptr, const QgsMapLayer *layer = nullptr );
69 
70  // Define namespaces used in WFS documents
71  const QString WFS_NAMESPACE = QStringLiteral( "http://www.opengis.net/wfs" );
72  const QString GML_NAMESPACE = QStringLiteral( "http://www.opengis.net/gml" );
73  const QString OGC_NAMESPACE = QStringLiteral( "http://www.opengis.net/ogc" );
74  const QString QGS_NAMESPACE = QStringLiteral( "http://www.qgis.org/gml" );
75 
76  // Define clean tagName regExp
77  const QRegExp cleanTagNameRegExp( "(?![\\w\\d\\.-])." );
78 
79 } // namespace QgsWfs
80 
81 #endif
82 
83 
Base class for all map layer types.
Definition: qgsmaplayer.h:84
const QString QGS_NAMESPACE
Definition: qgswfsutils.h:74
QgsVectorLayer * layerByTypeName(const QgsProject *project, const QString &typeName)
Retrieve a layer by typename.
Definition: qgswfsutils.cpp:80
QString layerTypeName(const QgsMapLayer *layer)
Returns typename from vector layer.
Definition: qgswfsutils.cpp:71
QString serviceUrl(const QgsServerRequest &request, const QgsProject *project)
Service URL string.
Definition: qgswfsutils.cpp:37
const QString & typeName
WMS implementation.
Definition: qgswfs.cpp:35
const QString GML_NAMESPACE
Definition: qgswfsutils.h:72
This class wraps a request for features to a vector layer (or directly its vector data provider)...
const QString WFS_NAMESPACE
Definition: qgswfsutils.h:71
Encapsulates a QGIS project, including sets of map layers and their styles, layouts, annotations, canvases, etc.
Definition: qgsproject.h:98
QString implementationVersion()
Returns the highest version supported by this implementation.
Definition: qgswfsutils.cpp:32
const QString OGC_NAMESPACE
Definition: qgswfsutils.h:73
QgsServerRequest Class defining request interface passed to services QgsService::executeRequest() met...
const QRegExp cleanTagNameRegExp("(?![\\\-]).")
Represents a vector layer which manages a vector based data sets.
QgsFeatureRequest parseFilterElement(const QString &typeName, QDomElement &filterElem, QgsProject *project)
Transform a Filter element to a feature request.