|
Quantum GIS API Documentation
1.8
|
#include "qgsexpression.h"#include <QtDebug>#include <QDomDocument>#include <QSettings>#include <math.h>#include <limits>#include "qgsdistancearea.h"#include "qgsfeature.h"#include "qgsgeometry.h"#include "qgslogger.h"
Go to the source code of this file.
Defines | |
| #define | TVL_True QVariant(1) |
| #define | TVL_False QVariant(0) |
| #define | TVL_Unknown QVariant() |
| #define | ENSURE_NO_EVAL_ERROR { if (parent->hasEvalError()) return QVariant(); } |
| #define | SET_EVAL_ERROR(x) { parent->setEvalErrorString(x); return QVariant(); } |
| #define | ENSURE_GEOM_TYPE(f, g, geomtype) |
Enumerations | |
| enum | TVL { False, True, Unknown } |
Functions | |
| QgsExpression::Node * | parseExpression (const QString &str, QString &parserErrorMsg) |
| static QVariant | tvl2variant (TVL v) |
| bool | isIntSafe (const QVariant &v) |
| bool | isDoubleSafe (const QVariant &v) |
| bool | isNull (const QVariant &v) |
| static QString | getStringValue (const QVariant &value, QgsExpression *) |
| static double | getDoubleValue (const QVariant &value, QgsExpression *parent) |
| static int | getIntValue (const QVariant &value, QgsExpression *parent) |
| static TVL | getTVLValue (const QVariant &value, QgsExpression *parent) |
| static QVariant | fcnSqrt (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnSin (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnCos (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnTan (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnAsin (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnAcos (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnAtan (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnAtan2 (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnExp (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnLn (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnLog10 (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnLog (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnToInt (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnToReal (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnToString (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnLower (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnUpper (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnLength (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnReplace (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnRegexpReplace (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnSubstr (const QVariantList &values, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnRowNumber (const QVariantList &, QgsFeature *, QgsExpression *parent) |
| static QVariant | fcnFeatureId (const QVariantList &, QgsFeature *f, QgsExpression *) |
| static QVariant | fcnX (const QVariantList &, QgsFeature *f, QgsExpression *) |
| static QVariant | fcnY (const QVariantList &, QgsFeature *f, QgsExpression *) |
| static QVariant | pointAt (const QVariantList &values, QgsFeature *f, QgsExpression *parent) |
| static QVariant | fcnXat (const QVariantList &values, QgsFeature *f, QgsExpression *parent) |
| static QVariant | fcnYat (const QVariantList &values, QgsFeature *f, QgsExpression *parent) |
| static QVariant | fcnGeomArea (const QVariantList &, QgsFeature *f, QgsExpression *parent) |
| static QVariant | fcnGeomLength (const QVariantList &, QgsFeature *f, QgsExpression *parent) |
| static QVariant | fcnGeomPerimeter (const QVariantList &, QgsFeature *f, QgsExpression *parent) |
Variables | |
| static TVL | AND [3][3] |
| static TVL | OR [3][3] |
| static TVL | NOT [3] = { True, False, Unknown } |
| #define ENSURE_GEOM_TYPE | ( | f, | |
| g, | |||
| geomtype | |||
| ) |
if (!f) return QVariant(); \ QgsGeometry* g = f->geometry(); \ if (!g || g->type() != geomtype) return QVariant();
Definition at line 328 of file qgsexpression.cpp.
Referenced by fcnGeomArea(), fcnGeomLength(), fcnGeomPerimeter(), fcnX(), fcnY(), and pointAt().
| #define ENSURE_NO_EVAL_ERROR { if (parent->hasEvalError()) return QVariant(); } |
Definition at line 99 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeUnaryOperator::eval(), QgsExpression::NodeBinaryOperator::eval(), QgsExpression::NodeInOperator::eval(), QgsExpression::NodeFunction::eval(), and QgsExpression::NodeCondition::eval().
| #define SET_EVAL_ERROR | ( | x | ) | { parent->setEvalErrorString(x); return QVariant(); } |
Definition at line 100 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeUnaryOperator::eval().
| #define TVL_False QVariant(0) |
Definition at line 74 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeBinaryOperator::eval(), and QgsExpression::NodeInOperator::eval().
| #define TVL_True QVariant(1) |
Definition at line 73 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeBinaryOperator::eval(), and QgsExpression::NodeInOperator::eval().
| #define TVL_Unknown QVariant() |
Definition at line 75 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeBinaryOperator::eval(), and QgsExpression::NodeInOperator::eval().
| enum TVL |
Definition at line 37 of file qgsexpression.cpp.
| static QVariant fcnAcos | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 218 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnAsin | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 213 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnAtan | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 223 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnAtan2 | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 228 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnCos | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 203 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnExp | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 234 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnFeatureId | ( | const QVariantList & | , |
| QgsFeature * | f, | ||
| QgsExpression * | |||
| ) | [static] |
Definition at line 322 of file qgsexpression.cpp.
References QgsFeature::id().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnGeomArea | ( | const QVariantList & | , |
| QgsFeature * | f, | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 391 of file qgsexpression.cpp.
References ENSURE_GEOM_TYPE, QgsExpression::geomCalculator(), QgsFeature::geometry(), QgsDistanceArea::measure(), and QGis::Polygon.
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnGeomLength | ( | const QVariantList & | , |
| QgsFeature * | f, | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 397 of file qgsexpression.cpp.
References ENSURE_GEOM_TYPE, QgsExpression::geomCalculator(), QgsFeature::geometry(), QGis::Line, and QgsDistanceArea::measure().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnGeomPerimeter | ( | const QVariantList & | , |
| QgsFeature * | f, | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 403 of file qgsexpression.cpp.
References ENSURE_GEOM_TYPE, QgsExpression::geomCalculator(), QgsFeature::geometry(), QgsDistanceArea::measurePerimeter(), and QGis::Polygon.
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnLength | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 283 of file qgsexpression.cpp.
References getStringValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnLn | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 239 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnLog | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 253 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnLog10 | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 246 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnLower | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 273 of file qgsexpression.cpp.
References getStringValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnRegexpReplace | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 295 of file qgsexpression.cpp.
References getStringValue(), and QgsExpression::setEvalErrorString().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnReplace | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 288 of file qgsexpression.cpp.
References getStringValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnRowNumber | ( | const QVariantList & | , |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 317 of file qgsexpression.cpp.
References QgsExpression::currentRowNumber().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnSin | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 198 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnSqrt | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 193 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnSubstr | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 309 of file qgsexpression.cpp.
References getIntValue(), and getStringValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnTan | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 208 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnToInt | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 261 of file qgsexpression.cpp.
References getIntValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnToReal | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 265 of file qgsexpression.cpp.
References getDoubleValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnToString | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 269 of file qgsexpression.cpp.
References getStringValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnUpper | ( | const QVariantList & | values, |
| QgsFeature * | , | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 278 of file qgsexpression.cpp.
References getStringValue().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnX | ( | const QVariantList & | , |
| QgsFeature * | f, | ||
| QgsExpression * | |||
| ) | [static] |
Definition at line 333 of file qgsexpression.cpp.
References ENSURE_GEOM_TYPE, and QGis::Point.
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnXat | ( | const QVariantList & | values, |
| QgsFeature * | f, | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 374 of file qgsexpression.cpp.
References pointAt().
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnY | ( | const QVariantList & | , |
| QgsFeature * | f, | ||
| QgsExpression * | |||
| ) | [static] |
Definition at line 345 of file qgsexpression.cpp.
References ENSURE_GEOM_TYPE, and QGis::Point.
Referenced by QgsExpression::BuiltinFunctions().
| static QVariant fcnYat | ( | const QVariantList & | values, |
| QgsFeature * | f, | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 382 of file qgsexpression.cpp.
References pointAt().
Referenced by QgsExpression::BuiltinFunctions().
| static double getDoubleValue | ( | const QVariant & | value, |
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 143 of file qgsexpression.cpp.
References QgsExpression::setEvalErrorString().
Referenced by QgsExpression::NodeUnaryOperator::eval(), QgsExpression::NodeBinaryOperator::eval(), QgsExpression::NodeInOperator::eval(), fcnAcos(), fcnAsin(), fcnAtan(), fcnAtan2(), fcnCos(), fcnExp(), fcnLn(), fcnLog(), fcnLog10(), fcnSin(), fcnSqrt(), fcnTan(), and fcnToReal().
| static int getIntValue | ( | const QVariant & | value, |
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 155 of file qgsexpression.cpp.
References MathUtils::max(), MathUtils::min(), and QgsExpression::setEvalErrorString().
Referenced by QgsExpression::NodeUnaryOperator::eval(), QgsExpression::NodeBinaryOperator::eval(), fcnSubstr(), fcnToInt(), and pointAt().
| static QString getStringValue | ( | const QVariant & | value, |
| QgsExpression * | |||
| ) | [static] |
Definition at line 138 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeBinaryOperator::eval(), QgsExpression::NodeInOperator::eval(), fcnLength(), fcnLower(), fcnRegexpReplace(), fcnReplace(), fcnSubstr(), fcnToString(), and fcnUpper().
| static TVL getTVLValue | ( | const QVariant & | value, |
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 172 of file qgsexpression.cpp.
References False, QgsExpression::setEvalErrorString(), True, and Unknown.
Referenced by QgsExpression::NodeUnaryOperator::eval(), QgsExpression::NodeBinaryOperator::eval(), and QgsExpression::NodeCondition::eval().
| bool isDoubleSafe | ( | const QVariant & | v | ) | [inline] |
Definition at line 87 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeUnaryOperator::eval(), QgsExpression::NodeBinaryOperator::eval(), and QgsExpression::NodeInOperator::eval().
| bool isIntSafe | ( | const QVariant & | v | ) | [inline] |
Definition at line 80 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeUnaryOperator::eval(), and QgsExpression::NodeBinaryOperator::eval().
| bool isNull | ( | const QVariant & | v | ) | [inline] |
Definition at line 94 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeBinaryOperator::eval(), QgsExpression::NodeInOperator::eval(), QgsExpression::NodeFunction::eval(), QgsVectorDataProvider::fillMinMaxCache(), QgsQueryBuilder::fillValues(), and QgsContinuousColorRenderer::renderFeature().
| QgsExpression::Node* parseExpression | ( | const QString & | str, |
| QString & | parserErrorMsg | ||
| ) |
Referenced by QgsExpression::QgsExpression().
| static QVariant pointAt | ( | const QVariantList & | values, |
| QgsFeature * | f, | ||
| QgsExpression * | parent | ||
| ) | [static] |
Definition at line 358 of file qgsexpression.cpp.
References ENSURE_GEOM_TYPE, getIntValue(), QGis::Line, and QgsExpression::setEvalErrorString().
| static QVariant tvl2variant | ( | TVL | v | ) | [static] |
Definition at line 61 of file qgsexpression.cpp.
References False, True, and Unknown.
Referenced by QgsExpression::NodeUnaryOperator::eval(), and QgsExpression::NodeBinaryOperator::eval().
Definition at line 44 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeBinaryOperator::eval().
Definition at line 59 of file qgsexpression.cpp.
Referenced by QgsExpression::NodeUnaryOperator::eval().
1.7.6.1