QGIS API Documentation  master-6164ace
src/core/qgsogcutils.h
Go to the documentation of this file.
00001 #ifndef QGSOGCUTILS_H
00002 #define QGSOGCUTILS_H
00003 
00004 class QDomNode;
00005 class QDomElement;
00006 class QDomDocument;
00007 class QString;
00008 
00009 #include <list>
00010 #include <QVector>
00011 
00012 class QgsExpression;
00013 class QgsGeometry;
00014 class QgsPoint;
00015 class QgsRectangle;
00016 
00017 #include "qgsexpression.h"
00018 
00028 class CORE_EXPORT QgsOgcUtils
00029 {
00030   public:
00031 
00037     static QgsGeometry* geometryFromGML( const QString& xmlString );
00038 
00041     static QgsGeometry* geometryFromGML( const QDomNode& geometryNode );
00042 
00044     static QgsRectangle rectangleFromGMLBox( const QDomNode& boxNode );
00045 
00047     static QgsRectangle rectangleFromGMLEnvelope( const QDomNode& envelopeNode );
00048 
00052     static QDomElement geometryToGML( QgsGeometry* geometry, QDomDocument& doc, QString format );
00053 
00057     static QDomElement geometryToGML( QgsGeometry* geometry, QDomDocument& doc );
00058 
00062     static QDomElement rectangleToGMLBox( QgsRectangle* box, QDomDocument& doc );
00063 
00067     static QDomElement rectangleToGMLEnvelope( QgsRectangle* env, QDomDocument& doc );
00068 
00069 
00071     static QgsExpression* expressionFromOgcFilter( const QDomElement& element );
00072 
00078     static QDomElement expressionToOgcFilter( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage = 0 );
00079 
00080   private:
00082     static QgsGeometry* geometryFromGMLPoint( const QDomElement& geometryElement );
00084     static QgsGeometry* geometryFromGMLLineString( const QDomElement& geometryElement );
00086     static QgsGeometry* geometryFromGMLPolygon( const QDomElement& geometryElement );
00088     static QgsGeometry* geometryFromGMLMultiPoint( const QDomElement& geometryElement );
00090     static QgsGeometry* geometryFromGMLMultiLineString( const QDomElement& geometryElement );
00092     static QgsGeometry* geometryFromGMLMultiPolygon( const QDomElement& geometryElement );
00097     static bool readGMLCoordinates( std::list<QgsPoint>& coords, const QDomElement elem );
00104     static bool readGMLPositions( std::list<QgsPoint>& coords, const QDomElement elem );
00105 
00106 
00111     static QDomElement createGMLCoordinates( const QVector<QgsPoint> points, QDomDocument& doc );
00112 
00117     static QDomElement createGMLPositions( const QVector<QgsPoint> points, QDomDocument& doc );
00118 
00120     static QgsExpression::Node* nodeFromOgcFilter( QDomElement &element, QString &errorMessage );
00122     static QgsExpression::NodeBinaryOperator* nodeBinaryOperatorFromOgcFilter( QDomElement &element, QString &errorMessage );
00124     static QgsExpression::NodeFunction* nodeSpatialOperatorFromOgcFilter( QDomElement& element, QString& errorMessage );
00126     static QgsExpression::NodeUnaryOperator* nodeNotFromOgcFilter( QDomElement &element, QString &errorMessage );
00128     static QgsExpression::NodeFunction* nodeFunctionFromOgcFilter( QDomElement &element, QString &errorMessage );
00130     static QgsExpression::Node* nodeLiteralFromOgcFilter( QDomElement &element, QString &errorMessage );
00132     static QgsExpression::NodeColumnRef* nodeColumnRefFromOgcFilter( QDomElement &element, QString &errorMessage );
00134     static QgsExpression::Node* nodeIsBetweenFromOgcFilter( QDomElement& element, QString& errorMessage );
00136     static QgsExpression::NodeBinaryOperator* nodePropertyIsNullFromOgcFilter( QDomElement& element, QString& errorMessage );
00137 
00138     static QDomElement expressionNodeToOgcFilter( const QgsExpression::Node* node, QDomDocument& doc, QString& errorMessage );
00139     static QDomElement expressionUnaryOperatorToOgcFilter( const QgsExpression::NodeUnaryOperator* node, QDomDocument& doc, QString& errorMessage );
00140     static QDomElement expressionBinaryOperatorToOgcFilter( const QgsExpression::NodeBinaryOperator* node, QDomDocument& doc, QString& errorMessage );
00141     static QDomElement expressionLiteralToOgcFilter( const QgsExpression::NodeLiteral* node, QDomDocument& doc, QString& errorMessage );
00142     static QDomElement expressionColumnRefToOgcFilter( const QgsExpression::NodeColumnRef* node, QDomDocument& doc, QString& errorMessage );
00143     static QDomElement expressionInOperatorToOgcFilter( const QgsExpression::NodeInOperator* node, QDomDocument& doc, QString& errorMessage );
00144     static QDomElement expressionFunctionToOgcFilter( const QgsExpression::NodeFunction* node, QDomDocument& doc, QString& errorMessage );
00145 
00146 };
00147 
00148 #endif // QGSOGCUTILS_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines