/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/qgsogcutils.h                                               *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/






class QgsOgcUtils
{
%Docstring(signature="appended")
The :py:class:`QgsOgcUtils` class provides various utility functions for
conversion between OGC (Open Geospatial Consortium) standards and QGIS
internal representations.

Currently supported standards:

- GML2 - Geography Markup Language (import, export)
%End

%TypeHeaderCode
#include "qgsogcutils.h"
%End
  public:

    struct Context
    {

      Context( const QgsMapLayer *layer = 0, const QgsCoordinateTransformContext &transformContext = QgsCoordinateTransformContext() );
%Docstring
Constructs a Context from ``layer`` and ``transformContext``
%End
      const QgsMapLayer *layer;
      QgsCoordinateTransformContext transformContext;
    };

    enum GMLVersion /BaseType=IntEnum/
    {
      GML_2_1_2,
      GML_3_1_0,
      GML_3_2_1,
    };

    static QgsGeometry geometryFromGML( const QString &xmlString, const QgsOgcUtils::Context &context = QgsOgcUtils::Context() );
%Docstring
Static method that creates geometry from GML

:param xmlString: xml representation of the geometry. GML elements are
                  expected to be in default namespace (\verbatim
                  {<Point>...</Point> \endverbatim) or in "gml"
                  namespace (\verbatim <gml:Point>...</gml:Point>
                  \endverbatim)
:param context: QgsOgcUtils context
%End

    static QgsGeometry geometryFromGML( const QDomNode &geometryNode, const QgsOgcUtils::Context &context = QgsOgcUtils::Context() );
%Docstring
Static method that creates geometry from GML
%End

    static QgsRectangle rectangleFromGMLBox( const QDomNode &boxNode );
%Docstring
Read rectangle from GML2 Box
%End

    static QgsRectangle rectangleFromGMLEnvelope( const QDomNode &envelopeNode );
%Docstring
Read rectangle from GML3 Envelope
%End

    static QDomElement geometryToGML( const QgsGeometry &geometry, QDomDocument &doc,
                                      QgsOgcUtils::GMLVersion gmlVersion,
                                      const QString &srsName,
                                      bool invertAxisOrientation,
                                      const QString &gmlIdBase,
                                      int precision = 17 );
%Docstring
Exports the geometry to GML

:return: QDomElement
%End

    static QDomElement geometryToGML( const QgsGeometry &geometry, QDomDocument &doc, const QString &format, int precision = 17 );
%Docstring
Exports the geometry to GML2 or GML3

:return: QDomElement
%End

    static QDomElement geometryToGML( const QgsGeometry &geometry, QDomDocument &doc, int precision = 17 );
%Docstring
Exports the geometry to GML2

:return: QDomElement
%End

    static QDomElement rectangleToGMLBox( QgsRectangle *box, QDomDocument &doc, int precision = 17 );
%Docstring
Exports the rectangle to GML2 Box

:return: QDomElement
%End

    static QDomElement rectangleToGMLBox( QgsRectangle *box, QDomDocument &doc,
                                          const QString &srsName,
                                          bool invertAxisOrientation,
                                          int precision = 17 );
%Docstring
Exports the rectangle to GML2 Box

:return: QDomElement
%End

    static QDomElement rectangleToGMLEnvelope( QgsRectangle *env, QDomDocument &doc, int precision = 17 );
%Docstring
Exports the rectangle to GML3 Envelope

:return: QDomElement
%End

    static QDomElement rectangleToGMLEnvelope( QgsRectangle *env, QDomDocument &doc,
        const QString &srsName,
        bool invertAxisOrientation,
        int precision = 17 );
%Docstring
Exports the rectangle to GML3 Envelope

:return: QDomElement
%End


    static QColor colorFromOgcFill( const QDomElement &fillElement );
%Docstring
Parse XML with OGC fill into QColor
%End

    static QgsExpression *expressionFromOgcFilter( const QDomElement &element, QgsVectorLayer *layer = 0 ) /Factory/;
%Docstring
Parse XML with OGC filter into QGIS expression
%End

    static QDomElement expressionToOgcFilter( const QgsExpression &exp, QDomDocument &doc, QString *errorMessage = 0 );
%Docstring
Creates OGC filter XML element. Supports minimum standard filter
according to the OGC filter specs (=,!=,<,>,<=,>=,AND,OR,NOT)

:return: valid \verbatim <Filter> \endverbatim QDomElement on success,
         otherwise null QDomElement
%End

    enum FilterVersion /BaseType=IntEnum/
    {
      FILTER_OGC_1_0,
      FILTER_OGC_1_1,
      FILTER_FES_2_0
    };

    static QgsExpression *expressionFromOgcFilter( const QDomElement &element, FilterVersion version, QgsVectorLayer *layer = 0 ) /Factory/;
%Docstring
Returns an expression from a WFS filter embedded in a document.

:param element: The WFS Filter
:param version: The WFS version
:param layer: Layer to use to retrieve field values from literal filters

.. versionadded:: 3.4
%End


    static QDomElement expressionToOgcExpression( const QgsExpression &exp, QDomDocument &doc, QString *errorMessage = 0,
        bool requiresFilterElement = false );
%Docstring
Creates an OGC expression XML element from the ``exp`` expression with
default values for the geometry name, srs name, honourAsisOrientation
and invertAxisOrientation.

:return: valid OGC expression QDomElement on success or a valid
         \verbatim <Filter> \endverbatim QDomElement when
         ``requiresFilterElement`` is set. otherwise null QDomElement
%End

    static QDomElement elseFilterExpression( QDomDocument &doc );
%Docstring
Creates an ElseFilter from ``doc``

:return: valid OGC ElseFilter QDomElement

.. versionadded:: 3.28
%End

    static QDomElement expressionToOgcExpression( const QgsExpression &exp,
        QDomDocument &doc,
        QgsOgcUtils::GMLVersion gmlVersion,
        FilterVersion filterVersion,
        const QString &geometryName,
        const QString &srsName,
        bool honourAxisOrientation,
        bool invertAxisOrientation,
        QString *errorMessage = 0,
        bool requiresFilterElement = false,
        const QMap<QString, QString> &fieldNameToXPathMap = QMap<QString, QString>(),
        const QMap<QString, QString> &namespacePrefixToUriMap = QMap<QString, QString>() );
%Docstring
Creates an OGC expression XML element from the ``exp`` expression.

:return: valid OGC expression QDomElement on success or a valid
         \verbatim <Filter> \endverbatim QDomElement when
         ``requiresFilterElement`` is set. otherwise null QDomElement
%End



};


/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/qgsogcutils.h                                               *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
