27 const QVariant::Type type,
28 const QVariant defaultValue )
50 const QStringList corners =
mValue.toString().split(
',' );
51 if ( corners.size() == 5 )
53 value.resize( value.size() - corners[4].size() - 1 );
57 param.
mValue = QVariant( value );
64 const QString msg = QString(
"%1 ('%2') cannot be converted into rectangle" ).arg(
name(
mName ),
toString() );
75 QString val =
mValue.toString();
84 if ( rx.indexIn( val, 0 ) == -1 )
91 while ( ( pos = rx.indexIn( val, pos ) ) != -1 )
93 theList << rx.cap( 1 );
94 pos += rx.matchedLength();
110 const QMetaEnum metaEnum( QMetaEnum::fromType<QgsWfsParameter::Name>() );
111 return metaEnum.valueToKey( name );
116 const QMetaEnum metaEnum( QMetaEnum::fromType<QgsWfsParameter::Name>() );
131 save( pOutputFormat );
137 save( pPropertyName );
142 save( pMaxFeatures );
171 save( pGeometryName );
180 bool QgsWfsParameters::loadParameter(
const QString &key,
const QString &
value )
187 mWfsParameters[name].mValue =
value;
188 if ( ! mWfsParameters[name].isValid() )
190 mWfsParameters[name].raiseError();
201 mWfsParameters[ parameter.
mName ] = parameter;
206 log(
"WFS Request parameters:" );
207 for (
auto parameter : mWfsParameters.toStdMap() )
209 const QString value = parameter.second.
toString();
211 if ( ! value.isEmpty() )
214 log( QStringLiteral(
" - %1 : %2" ).arg( name, value ) );
219 log( QStringLiteral(
" - VERSION : %1" ).arg(
version() ) );
231 if ( fStr.isEmpty() )
240 if ( fStr.compare( QLatin1String(
"text/xml; subtype=gml/2.1.2" ), Qt::CaseInsensitive ) == 0 )
242 else if ( fStr.compare( QLatin1String(
"text/xml; subtype=gml/3.1.1" ), Qt::CaseInsensitive ) == 0 )
244 else if ( fStr.compare( QLatin1String(
"application/vnd.geo+json" ), Qt::CaseInsensitive ) == 0 ||
246 fStr.compare( QLatin1String(
"application/vnd.geo json" ), Qt::CaseInsensitive ) == 0 ||
247 fStr.compare( QLatin1String(
"application/geo+json" ), Qt::CaseInsensitive ) == 0 ||
248 fStr.compare( QLatin1String(
"application/geo json" ), Qt::CaseInsensitive ) == 0 ||
249 fStr.compare( QLatin1String(
"application/json" ), Qt::CaseInsensitive ) == 0 ||
250 fStr.compare( QLatin1String(
"geojson" ), Qt::CaseInsensitive ) == 0
253 else if ( fStr.compare( QLatin1String(
"gml2" ), Qt::CaseInsensitive ) == 0 )
255 else if ( fStr.compare( QLatin1String(
"gml3" ), Qt::CaseInsensitive ) == 0 )
258 if ( f == Format::NONE &&
259 request().compare( QLatin1String(
"describefeaturetype" ), Qt::CaseInsensitive ) == 0 &&
260 fStr.compare( QLatin1String(
"xmlschema" ), Qt::CaseInsensitive ) == 0 )
274 if ( rtStr.isEmpty() )
275 return ResultType::RESULTS;
278 if ( rtStr.compare( QLatin1String(
"hits" ), Qt::CaseInsensitive ) == 0 )
279 rt = ResultType::HITS;
358 if ( vStr.isEmpty() )
366 void QgsWfsParameters::log(
const QString &msg )
const
QString request() const
Returns REQUEST parameter as a string or an empty string if not defined.
A rectangle specified with double values.
QString geometryNameAsString() const
Returns GEOMETRYNAME parameter as a string.
QString typeName() const
Returns the type of the parameter as a string.
QgsWfsParameters()
Constructor for WFS parameters with default values only.
int toInt() const
Converts the parameter into an integer.
Format outputFormat() const
Returns format.
QString startIndex() const
Returns STARTINDEX parameter as a string.
QString value(const QString &key) const
Returns the value of a parameter.
QString outputFormatAsString() const
Returns OUTPUTFORMAT parameter as a string.
static void raiseError(const QString &msg)
Raises an exception in case of an invalid parameters.
void dump() const
Dumps parameters.
void load(const QUrlQuery &query)
Loads new parameters.
QStringList sortBy() const
Returns SORTBY parameter as list.
QStringList expFilters() const
Returns EXP_FILTER parameter as list.
QgsProjectVersion versionAsNumber() const
Returns VERSION parameter if defined or its default value.
WFS parameter received from the client.
QgsRectangle bboxAsRectangle() const
Returns BBOX as a rectangle if defined and valid.
QStringList featureIds() const
Returns FEATUREID parameter as list.
QStringList filters() const
Returns FILTER parameter as list.
QString bbox() const
Returns BBOX if defined or an empty string.
QgsWfsParameter(const QgsWfsParameter::Name name=QgsWfsParameter::UNKNOWN, const QVariant::Type type=QVariant::String, const QVariant defaultValue=QVariant(""))
Constructor for QgsWfsParameter.
int startIndexAsInt() const
Returns STARTINDEX parameter as an int or its default value if not defined.
QgsRectangle toRectangle(bool &ok) const
Converts the parameter into a rectangle.
A class to describe the version of a project.
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary).
QString version() const
Returns VERSION parameter as a string or an empty string if not defined.
QUrlQuery urlQuery() const
Returns a url query with underlying parameters.
void raiseError() const
Raises an error in case of an invalid conversion.
Format
Output format for the response.
QString resultTypeAsString() const
Returns RESULTTYPE parameter as a string.
QString srsName() const
Returns SRSNAME parameter as a string.
QgsWfsParameter::Name mName
QStringList propertyNames() const
Returns PROPERTYNAME parameter as list.
int toInt(bool &ok) const
Converts the parameter into an integer.
QString maxFeatures() const
Returns MAXFEATURES parameter as a string.
QgsRectangle toRectangle() const
Converts the parameter into a rectangle.
ResultType resultType() const
Returns resultType.
QgsServerParameters provides an interface to retrieve and manipulate global parameters received from ...
QString toString(bool defaultValue=false) const
Converts the parameter into a string.
QStringList typeNames() const
Returns TYPENAME parameter as list.
ResultType
Type of results.
Name
Available parameters for WFS requests.
QStringList toStringListWithExp(const QString &exp="\([^()]+)\") const
Converts the parameter into a list of string.
int maxFeaturesAsInt() const
Returns MAXFEATURES parameter as an int or its default value if not defined.
Provides an interface to retrieve and manipulate WFS parameters received from the client...
static QString name(const QgsWfsParameter::Name)
Converts a parameter's name into its string representation.
Definition of a parameter with basic conversion methods.