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().