|
QGIS API Documentation
master-6164ace
|
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