Outdated version of the documentation. Find the latest one here.

` `

Ausdrücke

Based on layer data and prebuilt or user defined functions, Expressions offer a powerful way to manipulate attribute value, geometry and variables in order to dynamically change the geometry style, the content or position of the label, the value for diagram, the height of a composer item, select some features, create virtual field ...

The Expression string builder

Main dialog to build expressions, the Expression string builder is available from many parts in QGIS and, can particularly be accessed when:

The Expression builder dialog offers access to the:

  • Expression tab which, thanks to a list of predefined functions, helps to write and check the expression to use;
  • Function Editor tab which helps to extend the list of functions by creating custom ones.

Some use cases of expressions:

  • Aus dem Feldrechner, berechnen Sie ein “pop_density” Feld, indem Sie die existierenden Felder “total_pop” und “area_km2” nutzen:

    "total_pop" / "area_km2"
    
  • Aktualisieren Sie das Feld “density_level” mit zugehörigen Kategorien zu den “pop_density” Werten:

    CASE WHEN "pop_density" < 50 THEN 'Low population density'
         WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population density'
         WHEN "pop_density" >= 150 THEN 'High population density'
    END
  • Wenden Sie einen kategorisierten Stil auf alle Objekte an, je nachdem, ob der durchschnittliche Hauspreis kleiner oder größer als 10000€ pro Quadratmeter ist:

    "price_m2" > 10000
    
  • Mit dem “Durch Ausdruck wählen...” Werkzeug, wählen Sie alle Objekte die eine Fläche mit “Hoher Bevölkerungsdichte” und einem durchschnittlichen Hauspreis größer als 10000€ pro Quadratmeter darstellen:

    "density_level" = 'High population density' and "price_m2" > 10000
    

    Likewise, the previous expression could also be used to define which features should be labeled or shown in the map.

Using expressions offers you a lot of possibilities.

Tipp

Use named parameters to improve the expression reading

Some functions require many parameters to be set. The expression engine supports the use of named parameters. This means that instead of writing the cryptic expression clamp( 1, 2, 9), you can use clamp( min:=1, value:=2, max:=9). This also allows arguments to be switched, e.g. clamp( value:=2, max:=9, min:=1). Using named parameters helps clarify what the arguments for an expression function refer to, which is helpful when you are trying to interpret an expression at a later date!

List of functions

The Expression tab provides the main interface to write expressions using functions, layer’s fields and values. It contains widgets to:

  • type expressions using functions and/or fields. At the bottom of the dialog, is displayed the result of the expression evaluated on the first feature of the layer.
  • select the appropriate function among a list, organized in groups. A search box is available to filter the list and quickly find a particular function or field. Double-clicking on the item’s name adds it to the expression being written.
  • display help for each function selected. When a field is selected, this widget shows a sample of its values. Double-clicking a value adds it to the expression.
../../../_images/function_list.png

Der Ausdruck Reiter

Operatoren

Diese Gruppe enthält Operatoren (z. B. ., +, -, *). Beachten Sie, dass für die meisten mathematischen Fubktionen unten gilt, ist eine Eingabe NULL, dann ist das Ergebnis auch NULL.

Funktion

Beschreibung

a + b

Addition von zwei Werten (a plus b)

a - b

Subtraktion von zwei Werten (a minus b)

a * b

Multiplikation von zwei Werten (a multipliziert mit b)

a / b

Division von zwei Werten (a dividiert durch b)

a % b

Rest der Division von a durch b (beispielsweise 7 % 2 = 1, oder 2 passt in 7 dreimal mit dem Rest 1)

a ^ b

Potenz von zwei Werten (zum Beispiel, 2^2=4 oder 2^3=8)

a < b

Vergleicht zwei Werte und ergibt 1, wenn der linke kleiner dem rechten Wert ist (a ist kleiner als b)

a <= b Compares two values and evaluates to 1 if the left value isless than or equal to the right value
a <> b

Vergleicht zwei Werte und ergibt 1 wenn sie nicht gleich sind

a = b

Vergleicht zwei Werte und ergibt 1 wenn sie gleich sind

a != b

a und b sind nicht gleich

a > b

Vergleicht zwei Werte und ergibt 1, wenn der linke größer dem rechten Wert ist (a ist größer als b)

a >= b

Vergleicht zwei Werte und ergibt 1, wenn der linke größer oder gleich dem rechten Wert ist

a ~ b

a entspricht dem regulären Ausdruck b

||

Verknüpft zwei Werte zusammen zu einer Zeichenkette. Wenn einer der beiden Werte NULL ist, ist das Ergebnis auch NULL.

‘\n’

Setzt eine neue Linie in einer Zeichenkette ein

LIKE

Liefert 1, wenn der erste Parameter zum gegebenen Muster passt

ILIKE

Liefert 1, wenn der erste Parameter ohne Berücksichtung der Groß-/Kleinschreibung zum gegebenen Muster passt (ILIKE kann statt LIKE benutzt werden ,damit die Groß-/Kleinschreibung berücksichtigt wird)

a IS b

Testet, ob zwei Werte identisch sind. Gibt 1 zurück, wenn a gleich b ist

a OR b Returns 1 when condition a or condition b is true
a AND b Returns 1 when conditions a and b are true
NOT

Negiert eine Bedingung

Spaltenname “Spaltenname”

Wert des Feldspaltennamens, achten Sie darauf, es nicht mit einfachen Anführungszeichen zu verwechseln, siehe unten

‘Zeichenkette’

einen Zeichenkettenwert, achten Sie darauf, es nicht mit doppelten Anführungszeichen zu verwechseln, siehe oben

NULL

ein Nullwert

a IS NULL

a hat keinen Wert

a IS NOT NULL

a hat einen Wert

a IN (value[,value])

a ist unter den gelistet Werten

a NOT IN (value[,value])

a ist nicht unter den gelisteten Werten

Bemerkung

About fields concatenation

You can concatenate strings using either || or +. The latter also means sum up expression. So if you have an integer (field or numeric value) this can be error prone. In this case, you should use ||. If you concatenate two string values, you can use both.

Einige Beispiele:

  • Verbindet eine Zeichenkette und einen Wert von einem Spaltennamen:

    'My feature''s id is: ' || "gid"
    'My feature''s id is: ' + "gid" => triggers an error as gid is an integer
    "country_name" + '(' + "country_code" + ')'
    "country_name" || '(' || "country_code" || ')'
  • Testen Sie ob das “description” Attributfeld mit einer ‘Hello’ Zeichenfolge im Wert startet (beachten Sie die Position des % Zeichens):

    "description" LIKE 'Hello%'

Conditionals

Diese Gruppe enthält Funktionen um bedingte Prüfungen in Ausdrücken zu handhaben.

Funktion

Beschreibung

CASE WHEN ... THEN ... END

Wertet einen Ausdruck aus und liefert ein Ergebnis, wenn es wahr ist. Sie können mehrere Bedingungen testen

CASE WHEN ... THEN ... ELSE ... END

Wertet einen Ausdruck aus und gibt ein anderes Ergebnis zurück, je nachdem es wahr oder falsch ist. Sie können mehrere Bedingungen testen

coalesce

Liefert den ersten Nicht-NULL-Wert aus der Ausdrucksliste

if

Prüft eine Bedingung und liefert unterschiedliche Ergebnisse je nach deren Ausgang

regexp_match Returns true if any part of a string matches the supplied regular expression

Einige Beispiele:

  • Sende einen Wert zurück wenn die erste Bedingung wahr ist, sonst einen anderen Wert:

    CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END

Mathematische Funktionen

Diese Gruppe enthält mathematische Funktionen (z.B. sqrt, sin und cos).

Funktion

Beschreibung

abs

Liefert den Betrag einer Zahl

acos

Liefert den inversen Kosinus eines Wert im Bogenmaß

asin

Liefert den inversen Sinus eines Wert im Bogenmaß

atan Returns the inverse tangent of a value in radians
atan2(y,x) Returns the inverse tangent of y/x by using the signs of the two arguments to determine the quadrant of the result
azimuth(a,b)

Liefert auf Norden bezogenen Azimuth als Winkel im Bogenmaß im Uhrzeigersinn gemessen von der Vertikalen von punkt a zu punkt b

ceil

Rundet eine Zahl auf

clamp

Beschränke eine Eingabenwert auf einen gegebenen Bereichen

cos

Liefert den inversen Kosinus eines Wert im Bogenmaß

degrees

Wandelt Bogenmaß in Grad um

exp

Liefert den Exponential eines Wert

floor

Rundet eine Zahl ab

ln

Liefert den natürlichen Logarithmus des übergebenen Ausdruck

log

Liefert den Wert des Logarithmus des gegebenen Werts und der Basis

log10

Liefert den 10er-Logarithmus des gegebenen Ausdrucks

max Returns the largest value in a set of values
min Returns the smallest value in a set of values
pi

Liefert den Wert von pi für Berechnungen

radians

Wandelt Grad in Bogenmaß um

rand

Liefert eine zufällige Zahl aus dem durch Minimum und Maximum festgegelegten Bereichs (inklusiv)

randf

Liefert eine zufällige Fließkommazahl aus einem durch Minimum und Maximum gegebenen Bereichs (inklusiv)

round

Rundet auf eine bestimmte Stellenzahl

scale_exp

Wandelt einen bestimmten Wert aus einer Eingangsdomäne zu einem Leistungsbereich einer exponentielle Kurve

scale_linear

Wandelt einen gegebenen Wert des Eingabe- mit linearer Interpolation in einen Ausgabebereich

sin

Liefert den Sinus eines Winkels

sqrt

Liefert die Quadratwurzel eines Werts

tan

Liefert den Tangens eines Winkels

Aggregates Functions

This group contains functions which aggregate values over layers and fields.

Funktion

Beschreibung

aggregate Returns an aggregate value calculated using features from another layer
concatenate Returns the all aggregated strings from a field or expression joined by a delimiter
count Returns the count of matching features
count_distinct Returns the count of distinct values
count_missing Returns the count of missing (null) values
iqr Returns the calculated inter quartile range from a field or expression
majority Returns the aggregate majority of values (most commonly occurring value) from a field or expression
max_length Returns the maximum length of strings from a field or expression
maximum Returns the aggregate maximum value from a field or expression
mean Returns the aggregate mean value from a field or expression
median Returns the aggregate median value from a field or expression
min_length Returns the minimum length of strings from a field or expression
minimum Returns the aggregate minimum value from a field or expression
minority Returns the aggregate minority of values (least commonly occurring value) from a field or expression
q1 Returns the calculated first quartile from a field or expression
q3 Returns the calculated third quartile from a field or expression
range Returns the aggregate range of values (maximum - minimum) from a field or expression
relation_aggregate Returns an aggregate value calculated using all matching child features from a layer relation
stdev Returns the aggregate standard deviation value from a field or expression
sum Returns the aggregate summed value from a field or expression

Examples:

  • Return the maximum of the “passengers” field from features in the layer grouped by “station_class” field:

    maximum("passengers", group_by:="station_class")
  • Calculate the total number of passengers for the stations inside the current atlas feature:

    aggregate('rail_stations','sum',"passengers",
      intersects(@atlas_geometry, $geometry))
  • Return the mean of the “field_from_related_table” field for all matching child features using the ‘my_relation’ relation from the layer:

    aggregate_relation('my_relation', 'mean', "field_from_related_table")
    

    or:

    aggregate_relation(relation:='my_relation', calculation := 'mean',
      expression := "field_from_related_table")

Farbfunktionen

Diese Gruppe enthält Funktionen zur Farbmanipulation.

Funktion

Beschreibung

color_cmyk

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Cyan-, Magenta-, Gelb- und Schwarzkomponenten

color_cmyka

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Cyan-, Magenta-, Gelb-, Schwarz- und Alpha-(Transparenz-)komponenten

color_hsl

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Farb-, Sättigungs- und Helligkeitsattributen

color_hsla

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Farb-, Sättigungs-, Helligkeits- und Alpha-(Transparenz-)Attributen

color_hsv

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Farb-, Sättigungs- und Helligkeitsattributen

color_hsva

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Farb-, Sättigungs-, Helligkeits- und Alpha-(Transparenz-)Attributen

color_part

Gibt eine bestimmte Komponente einer Farbzeichenkette zurück, z.B. rote oder Alpha-Komponente

color_rgb

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Rot-, Grün- und Blau-Komponenten

color_rgba

Liefert die Zeichenkettendarstellung einer Farbe nach ihrem Rot-, Grün-, Blau- und Alpha-(Transparenz-)Komponenten

darker

Liefert eine dunklere (oder hellere) Farbzeichenkette

lighter

Liefert eine hellere (oder dunklere) Farbzeichenkette

project_color

Liefert eine Farbe aus dem Farbschema des Projekts

ramp_color

Liefert eine Farbe aus einem Verlaufs als Zeichenkette

set_color_part

Setzt eine bestimmte Komponente einer Farbzeichenkette, z.B. rote oder Alpha-Komponente

Conversions Functions

Diese Gruppe enthält Funktionen, um einen Datentypen in einen anderen umzuwandeln (z.B. Zeichenketten zu Ganzzahlen oder umgekehrt).

Funktion

Beschreibung

to_date

In eine Datumsobjekt umzuwandelnde Zeichenkette

to_datetime

In eine Zeitpunktobjekt umzuwandelnde Zeichenkette

to_int

Wandelt eine Zeichenkette in Fließkommazahlen

to_interval

Wandelt eine Zeichenkette in einen Intervalltyp (kann für Tage, Stunden, Monate usw. eines Datum verwendet werden)

to_real

Wandelt eine Zeichenkette in Fließkommazahlen

to_string

Wandelte eine Zahl in eine Zeichenkette

to_time

Wandelt eine Zeichenkette in ein Zeitobjekt

Custom Functions

This group contains functions created by the user. See Funktions Editor for more details.

Datum und Zeit Funktionen

Diese Gruppe enthält Funktionen die auf Datums- und Zeitdaten angewendet werden können.

Funktion

Beschreibung

age

Liefert die Differenz zwischen zwei Terminen oder Terminzeiten als Intervall

day

Bestimmt den Tag aus einem Datum oder die Anzahl der Tage aus einem Intervall.

day_of_week

Liefert eine Zahl die dem Tag der Woche entspricht, für ein bestimmtes Datum oder eine Datumzeit

hour

Bestimmt den Stundenteil aus einem Datum oder die Stundenzahl aus einem Intervall

minute

Bestimmt den Minutenteil aus einem Datum oder die Minutenzahl aus einem Intervall

month

Bestimmt den Monat aus einem Datum oder die Anzahl der Monate aus einem Intervall

now

Bestimmt das aktuelle Datum und die Zeit

second

Bestimmt den Sekundenteil aus einem Datum oder die Sekundenzahl aus einem Intervall

week

Bestimmt die Wochennummer aus einem Datum oder die Anzahl der Wochen aus einem Intervall

year

Bestimmt das Jahr aus einem Datum oder die Anzahl der Jahre aus einem Intervall

This group also shares several functions with the Conversions Functions ( to_date, to_time, to_datetime, to_interval) and Zeichenkettenfunktionen (format_date) groups.

Einige Beispiele:

  • Get today’s month and year in the “month_number/year” format:

    format_date(now(),'MM/yyyy')
    -- Returns '03/2017'
    

Besides these functions, subtracting dates, datetimes or times using the - (minus) operator will return an interval.

Adding or subtracting an interval to dates, datetimes or times, using the + (plus) and - (minus) operators, will return a datetime.

  • Get the number of days until QGIS 3.0 release:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • The same with time:

    to_datetime('2017-09-29 12:00:00') - to_datetime(now())
    -- Returns <interval: 202.49 days>
    
  • Get the datetime of 100 days from now:

    now() + to_interval('100 days')
    -- Returns <datetime: 2017-06-18 01:00:00>
    

Bemerkung

Storing date and datetime and intervals on fields

The ability to store date, time and datetime values directly on fields may depend on the data source’s provider (e.g., shapefiles accept date format, but not datetime or time format). The following are some suggestions to overcame this limitation.

date, Datetime and time can be stored in text type fields after using the to_format() function.

Intervals can be stored in integer or decimal type fields after using one of the date extraction functions (e.g., day() to get the interval expressed in days)

Felder und Werte

Enthält eine Liste von Feldern des layers.

Generally, you can use the various fields, values and functions to construct the calculation expression, or you can just type it into the box.

To display the values of a field, you just click on the appropriate field and choose between Load top 10 unique values and Load all unique values. On the right side, the Field Values list opens with the unique values. At the top of the list, a search box helps filtering the values. To add a value to the expression you are writing, double click its name in the list.

Sample values can also be accessed via right-click. Select the field name from the list, then right-click to access a context menu with options to load sample values from the selected field.

Fields name should be double-quoted in the expression. Values or string should be simple-quoted.

Unscharfer Vergleich Funktion

Diese Gruppe enthält unscharfe Vergleichsfunktionen zwischen Werten.

Funktion

Beschreibung

hamming_distance

Liefert der Anzahl von Zeichen an korrespondieren Positionen innerhalb der Eingabezeichenketten an dem die Zeichen unterschiedliche sind.

levensheim

Liefert die minimale Anzahl von Zeichenbearbeitungen (Einfügen, Löschen oder Substitutionen) die erforderlich, sind um eine Zeichenkette zu einer anderen zu ändern. Misst die Ähnlichkeit zwischen zwei Zeichenketten

longest_common_substring

Liefert die längste gemeinsame Teilzeichenkette zwischen zwei Zeichenketten

soundex

Liefert die Soundex Darstellung einer Zeichenkette

Allgemeine Funktionen

Diese Gruppe enthält allgemeine Funktionen.

Funktion

Beschreibung

eval

Werte einen Ausdruck aus, der als Zeichenkette übergeben wird. Nützlich um als Kontextvariablen oder Felder übergebene dynamische Parameter zu expandieren.

layer_property

Liefert eine Eigenschaft des Layers oder einen Wert seiner Metadaten. Es kann ein Layername sein, KBS, Geometrietyp, Objektanzahl...

var

Liefert den Wert, gespeichert innerhalb einer bestimmten Variablen. Siehe Variable Fubktionen unten

Geometriefunktionen

Dies Gruppe enthält Funktionen für das Arbeiten mit Geometrieobjekten (z.B. Länge und Flächeninhalt).

Funktion

Beschreibung

$area

Liefert die Fläche des aktuellen Objekts

$geometry

Liefert die Geometrie des aktuellen Objekts (kann zur Verarbeitung mit anderen Funktionen verwendet werden)

$length

Liefert die Länge des aktuellen Objekts

$perimeter

Liefert die Umfanglänge des aktuellen Objekts.

$x Returns the x coordinate of the current feature
$x_at(n) Returns the x coordinate of the nth node of the current feature’s geometry
$y Returns the y coordinate of the current feature
$y_at(n) Returns the y coordinate of the nth node of the current feature’s geometry
angle_at_vertex Returns the bisector angle (average angle) to the geometry for a specified vertex on a linestring geometry. Angles are in degrees clockwise from north
area

Liefert die Fläche eines Polygonobjekts. Berechnung erfolgen im Bezugssystem der Geometrie

azimuth Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on point_a to point_b
boundary Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the geometry).
bounds Returns a geometry which represents the bounding box of an input geometry. Calculations are in the Spatial Reference System of this geometry
bounds_height Returns the height of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry
bounds_width Returns the width of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry
buffer Returns a geometry that represents all points whose distance from this geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this geometry
centroid Returns the geometric center of a geometry
closest_point

Liefert einen Punkt in einer Geometrie, der der zweiten Geometrie am nächsten liegt.

combine

Liefert die Kombination von zwei Geometrien

contains(a,b)

Liefert true dann und nur dann, wenn kein Punkt von b außerhalb von a liegt und mindestens ein Punkt von b in a liegt.

convex_hull Returns the convex hull of a geometry (this represents the minimum convex geometry that encloses all geometries within the set)
crosses

Liefert 1 (wahr), wenn die gelieferte Geometrien einige, aber nicht alle inneren Punkte gemeinsam haben

difference(a,b) Returns a geometry that represents that part of geometry a that does not intersect with geometry b
disjoint

Liefert 1 (true), wenn die Geometrie keinen Raum teilen

distance Returns the minimum distance (based on Spatial Reference System) between two geometries in projected units
distance_to_vertex Returns the distance along the geometry to a specified vertex
end_point Returns the last node from a geometry
exterior_ring Returns a line string representing the exterior ring of a polygon geometry, or null if the geometry is not a polygon
extrude(geom,x,y) Returns an extruded version of the input (Multi-) Curve or (Multi-)Linestring geometry with an extension specified by x and y
geom_from_gml

Liefert eine Geometrie erstellt aus einer GML-Darstellung der Geometrie

geom_from_wkt

Liefert eine Geometrie aus einer Well-Known-Text (WKT)-Darstellung

geom_to_wkt

Liefert eine Well-Known-Text (WKT)-Darstellung einer Geometrie ohne SRID-Metadaten

geometry

Liefert die Geometrie eines Objekts

geometry_n

Liefert die nth Geometrie aus einer Geometriecollection oder NULL wenn die Eingabe keine Collection ist

interior_ring_n

Liefert die Geometrie des n-ten inneren Rings aus einer Polygongeometrie oder null, wenn die Geometrie kein Polygon ist

intersection Returns a geometry that represents the shared portion of two geometries
intersects

Prüft, ob sich zwei Geometrien schneiden. Liefert 1 (wahr,) wenn sich die Geometrien räumlich schneiden (einen beliebigen gemeinsamen Raum haben) und 0, wenn nicht.

intersects_bbox Tests whether a geometry’s bounding box overlaps another geometry’s bounding box. Returns 1 (true) if the geometries spatially intersect (share any portion of space) their bounding box, or 0 if they don’t
is_closed Returns true if a line string is closed (start and end points are coincident), false if a line string is not closed, or null if the geometry is not a line string
length

Liefert die Länge eines Liniengeometrie Objekts (oder Länge einer Zeichenkette)

line_interpolate_angle Returns the angle parallel to the geometry at a specified distance along a linestring geometry. Angles are in degrees clockwise from north.
line_interpolate_point Returns the point interpolated by a specified distance along a linestring geometry.
line_locate_point Returns the distance along a linestring corresponding to the closest position the linestring comes to a specified point geometry.
line_merge Returns a (Multi-)LineString geometry, where any connected LineStrings from the input geometry have been merged into a single linestring.
m Returns the m value of a point geometry
make_line

Liefert eine Liniengeometrie aus einer Reihe von Punktgeometrien

make_point(x,y,z,m) Returns a point geometry from x and y (and optional z or m) values
make_point_m(x,y,m) Returns a point geometry from x and y coordinates and m values
make_polygon

Liefert eine Polygongeometrie aus einem äußeren Ring und einer optionalen Liste von inneren Ringen

nodes_to_points Returns a multipoint geometry consisting of every node in the input geometry
num_geometries

Liefert die Anzahl von Geometrien in Geometrycollections, oder null, wenn die Eingabegeometrie keine Collection ist

num_interior_rings

Liefert die Anzahl innerer Ringe eines Polygons oder einer Geometrycollection oder null, falls die Geometrie kein Polygon und keine Collection ist

num_points

Liefert die Anzahl von Stützpunkten einer Geometrie

num_rings

Liefert die Ringanzahl (ohne äußere Ringe) in einem Polygon oder einer Geometrycollection oder null, wenn die Eingabegeometrie weder Polygon noch Collection ist

order_parts

Sortiert die Teile eine Multigeometrie nach gegebenem Kriterium

overlaps

Prüft, ob sich zwei Geometrien überlappen. Liefert wahr, wenn sich die Geometrien Raum teilen, die gleiche Dimension haben, aber nicht komplett ineinander enthalten sind

perimeter

Liefert den Perimeter eines Polygonobjekts. Berechnung erfolgen im Bezugssystem der Geometrie

point_n Returns a specific node from a geometry
point_on_surface Returns a point guaranteed to lie on the surface of a geometry
project Returns a point projected from a start point using a distance and bearing (azimuth) in radians
relate

Liefert die Dimensional Extended 9 Intersection Model (DE-9IM) Darstellung der Beziehungen zwischen zwei Geometrien

reverse Reverses the direction of a line string by reversing the order of its vertices
segments_to_lines Returns a multi line geometry consisting of a line for every segment in the input geometry
shortest_line

Liefert die kürzeste Linie, die zwei Geometrien verbindet. Die resultierende Linie beginnt bei Geometrie 1 und endet bei Geometrie 2

start_point Returns the first node from a geometry
sym_difference Returns a geometry that represents the portions of two geometries that do not intersect
touches

Prüft, ob sich zwei Geometrien berühren. Liefert 1 (wahr), wenn sich die Geometrien mindestens einen Punkt gemeinsam haben, aber deren Inneres sich nicht überschneidet

transform Returns the geometry transformed from the source CRS to the destination CRS
translate Returns a translated version of a geometry. Calculations are in the Spatial Reference System of this geometry
union

Liefert eine Geometrie die alle Punkte der Geometrien umfasst

within (a,b)

Prüft, ob eine Geometrie in einer anderen enthalten ist. Liefert 1 (true), wenn die Geometrie komplett innerhalb der Geometrie b liegt

x Returns the x coordinate of a point geometry, or the x coordinate of the centroid for a non-point geometry
x_min Returns the minimum x coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry
x_max Returns the maximum x coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry
y Returns the y coordinate of a point geometry, or the y coordinate of the centroid for a non-point geometry
y_min Returns the minimum y coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry
y_max Returns the maximum y coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry
z Returns the z coordinate of a point geometry

Einige Beispiele:

  • You can manipulate the current geometry with the variable $geometry to create a buffer or get the point on surface:

    buffer( $geometry, 10 )
    point_on_surface( $geometry )
  • Return the x coordinate of the current feature’s centroid:

    x( $geometry )
  • Sendet einen Wert zur zugehörigen Objektfläche zurück:

    CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END

Record Functions

Diese Gruppe enthält Funktionen die sich auf datensatzbezeichner beziehen.

Funktion

Beschreibung

$currentfeature

Liefert das aktuellen Objekt. Dies kann mit der Funktion ‘attribute’ verwendet werde um Attributwerte des aktuellen Objekts zu bestimmen.

$id

Liefert die Objektkennung der aktuellen Zeile

$map Returns the id of the current map item if the map is being drawn in a composition, or “canvas” if the map is being drawn within the main QGIS window
$rownum Returns the number of the current row
$scale Returns the current scale of the map canvas
attribute Returns the value of a specified attribute from a feature
get_feature Returns the first feature of a layer matching a given attribute value
uuid Generates a Universally Unique Identifier (UUID) for each row. Each UUID is 38 characters long.

Einige Beispiele:

  • Liefert das erste Objekt in Layer “LayerA” dessen Feld “id” die selben Werte wie das Feld “name” des aktuellen Objekts, hat (eine Art Jointure):

    get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
  • Berechnen Sie die Fläche des verbundenen Objekts aus dem vorherigen Beispiel:

    area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )

Zeichenkettenfunktionen

Diese Gruppe enthält Funktionen für Zeichenketten (z.B. Ersetzen und in Großbuchstaben umwandeln).

Funktion

Beschreibung

char Returns the character associated with a unicode code
concat

Verketten mehrerer Zeichenkette zu einem

format

Formatiert eine Zeichenkette mit den gegebenen Argumenten

format_date

Formatiert einen Dateityp oder eine Zeichenkette in einen benutzerdefinierten Zeichenketten Formatstyp.

format_number

Liefert eine Zahl formatiert mit den lokalen Tausendertrennern (schneidet die Zahl auch auf die angegebene Stellenanzahl)

left(string, n)

Liefert einen Teilstring mit den ersten n Zeichen der Zeichenkette

length

Liefert die Länge einer Zeichenkette (oder Länge eines Liniengeometrie Objekts)

lower

wandelt eine Zeichenkette in Kleinbuchstaben um

lpad Returns a string with supplied width padded using the fill character
regexp_replace

Liefert eine Zeichenkette in der ein regulärer Ausdruck ersetzt wurde

regexp_substr

Liefert den Teil der Zeichenkette, die dem gegebenen regulären Ausdrucks entspricht

replace Returns a string with the supplied string replaced
right(string, n)

Liefert einen Teilstring mit den ersten n Zeichen der Zeichenkette

rpad Returns a string with supplied width padded using the fill character
strpos Returns the index of a regular expression in a string
substr

Liefert eine Teilzeichenkette

title

Wandelt alle Wörter einer Zeilenkette ins Titelformat (alle Wörter in Kleinbuchstaben bis auf die Anfangsbuchstaben in Großbuchstaben)

trim

Entfernt Leerzeichen am Anfang und Ende einer Zeichenkette (Leerzeichen, Tabulatoren usw)

upper

Wandelt eine Zeichenkette in Großbuchstaben.

wordwrap

Liefert eine auf eine maximale/minimale Zeichenanzahl umgebrochene Zeichenkette

Kürzlich verwendete Funktionen

This group contains recently used functions. Any expression used in the Expression dialog is added to the list, sorted from the more recent to the less one. This helps to quickly retrieve any previous expression.

Variable Funktionen

Diese Gruppe enthält dynamische Variablen im Zusammenhang mit der Anwendung, Projektdatei und anderen Einstellungen. Es bedeutet, dass einige Funktionen nicht verfügbar sind, je nach Kontext:

  • von dem expressionSelect Objekte über Ausdruck wählen Dialog

  • von dem calculateField Feldrechner Dialog

  • von dem Layereigenschaften Dialog

  • from the print composer

Um diese Funktionen in einem Ausdruck zu verwenden, sollte ein @ -Zeichen vorangestellt sein (z.B. @row_number). Betroffen sind:

Funktion

Beschreibung

atlas_feature

Liefert das aktuelle Atlas-Objekt (als Objekt)

atlas_featureid

Liefert die ID des aktuellen Atlasobjekts

atlas_featurenumber Returns the number of pages in composition
atlas_filename

Liefert den aktuellen Atlas Dateinamen

atlas_geometry

Liefert die aktuelle Geometrie des Atlas Objektes

atlas_pagename

Liefert den aktuellen Atlas Seitennamen

atlas_totalfeatures

Liefert die Gesamtanzahl der Objekte im Atlas

grid_axis

Liefert die aktuelle Kartenmerkungsachse (z.B. ‘x’ für Längengrad und ‘y’ für Breitengrad)

grid_number

Liefert den aktuellen Gitteranmerkungswert

item_id Returns the composer item user ID (not necessarily unique)
item_uuid Returns the composer item unique ID
layer_id

Liefert die ID des aktuellen Layers

layer_name

Liefert den aktuellen Layernamen

layout_dpi

Liefert die Zusammenstellungsauflösung (DPI).

layout_numpages Returns the number of pages in the composition
layout_pageheight Returns the composition height in mm
layout_pagewidth Returns the composition width in mm
map_extent_center

liefert das Punktobjekt in der Mitte der Karte

map_extent_height

Liefert die aktuelle Höhe der Karte

map_extent_width

Liefert die aktuelle Breite der Karte

map_id Returns the ID of current map destination. This will be ‘canvas’ for canvas renders, and the item ID for composer map renders
map_rotation

Liefert die aktuelle Kartendrehung

map_scale

Liefert den aktuellen Kartenmaßstab

project_filename Returns the filename of current project
project_folder Returns the folder for current project
project_path Returns the full path (including file name) of current project
project_title

Liefert den Titel des aktuellen Projekts

qgis_os_name

Liefert den Betriebssystemnamen, z.B. ‘windows’, ‘linux’ oder ‘osx’

qgis_platform Returns QGIS platform, eg ‘desktop’ or ‘server’
qgis_release_name Returns current QGIS release name
qgis_version Returns current QGIS version string
qgis_version_no Returns current QGIS version number
symbol_angle

Liefert den Winkel des Symbols zur Objektdarstellung (nur für Markierungssymbole gültig)

symbol_color

Liefert die Farbe des Symbols zur Objektdarstellung

user_account_name

Liefert den Betriebssystemaccountnamen des aktuellen Benutzers

user_full_name

Liefert den Betriebssystemkontonamen des aktuellen Benutzers

row_number

Speichert die Zahl der aktuellen Reihe

value Returns the current value

Funktions Editor

With the Function Editor, you are able to define your own Python custom functions in a comfortable way.

../../../_images/function_editor.png

Der Funktionseditor Reiter

The function editor will create new Python files in .qgis2\python\expressions folder and will auto load all functions defined when starting QGIS. Be aware that new functions are only saved in the expressions folder and not in the project file. If you have a project that uses one of your custom functions you will need to also share the .py file in the expressions folder.

Hier ist ein kurzes Beispiel, wie Sie eine eigene Funktion erzeugen:

@qgsfunction(args="auto", group='Custom')
def myfunc(value1, value2, feature, parent):
    pass

The short example creates a function myfunc that will give you a function with two values. When using the args='auto' function argument the number of function arguments required will be calculated by the number of arguments the function has been defined with in Python (minus 2 - feature, and parent).

This function then can be used with the following expression:

myfunc('test1', 'test2')

Your function will be implemented in the Custom functions group of the Expression tab after using the Run Script button.

Weitere Informationen über das Erstellen von Python-Kodes können in PyQGIS-Entwicklerkochbuch gefunden werden.

The function editor is not only limited to working with the field calculator, it can be found whenever you work with expressions.