Ausdrücke

Auf Basis von Layerdaten und vorhanden oder benutzerdefinierten Funktionen bieten Ausdrücke ein mächtiges Werkzeug, um Attributwerte, Geometrien und Variablen zu verarbeiten. Dies kann genutzt werden, um dynamisch die Symbolisierung, die Lage von Beschriftungen, die Werte in Diagrammen, die Höhe von Layoutelementen anzupassen oder auch um Features zu selektieren oder virtuelle Felder anzulegen.

Der Ausdruckseditor

Der Hauptdialog zur Erstellung von Ausdrücken, der Ausdruckeditor ist an vielen Stellen in QGIS verfügbar. Er kann z.B. hier aufgerufen werden:

Der Ausdruckseditor erlaubt den Zugang zu:

  • den Ausdrucksbereich der die Erstellung und Prüfung von Ausdrücken mit Hilfe einer Liste von vordefinierten Funktionen erleichtert;
  • den Funktionseditor der bei der Erstellung angepasster Funktionen und damit der Erweiterung der Liste der Funktionen unterstützt.

Einige Anwendungsfälle für Ausdrücke:

  • 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
    

    Der vorhergehende Ausdruck kann ebenso genutzt werden, um die in der Karte anzuzeigenden bzw. zu beschriftenden Objekte festzulegen.

Die Nutzung von Ausdrücken eröffnet vielfältige Möglichkeiten.

Tipp

Nutzen Sie Parameternamen, um die Lesbarkeit von Ausdrücken zu verbessern

Einige Funktionen erfordern viele zu erstellende Parameter. Die Ausdrucksverarbeitung erlaubt die Verwendung von Namen für Parameter. Das heißt an Stelle der kryptischen Ausdrucksschreibweise clamp( 1, 2, 9) kann die Schreibweise clamp( min:=1, value:=2, max:=9) verwendet werden. Das erlaubt es auch, die Reihenfolge der Argumente des Ausdrucks zu tauschen, z.B. clamp( value:=2, max:=9, min:=1). Die Verwendung von Parameternamen hilft, zu verdeutlichen, worauf sich die Argumente eines Ausdrucks beziehen. Das ist hilfreich, um Ausdrücke zu einem späteren Zeitpunkt noch zu verstehen!

Liste der Funktionen

Der Reiter Ausdruck stellt die Hauptschnittstelle zur Eingabe von Ausdrücken unter Nutzung von Funktionen, Layerattributen und Werten dar. Er enthält die folgenden Widgets:

  • Einen Editorbereich zur Eingabe oder Einfügen von Ausdrücken. Autovervollständigung steht in diesem Bereich zur Beschleunigung der Eingabe zur Verfügung:

    • Die zum Eingabetext passenden Variablen, Funktionsnamen und Feldnamen werden unterhalb der Eingabe angezeigt. Nutzen Sie die Up und Down Tasten, um die Einträge durchzublättern und die Taste Tab, um einen Eintrag in den Ausdruck zu übernehmen oder klicken Sie einfach doppelt auf den gewünschten Eintrag.
    • Die Parameter von Funktionen werden beim Ausfüllen angezeigt.

    QGIS prüft die Richtigkeit des Ausdrucks und hinterlegt alle Fehler farbig:

    • Unterstreichung: unbekannte Funktionen, falsche oder ungültige Funktionsargumente;
    • Markierung: alle weiteren Fehler (z.B. fehlende Klammern, unerwartete Zeichen) an der jeweiligen Stelle.

    Tipp

    Dokumentieren Sie Ihre Ausdrücke mit Kommentaren

    Bei Nutzung komplexer Ausdrücke, ist es eine gute Praxis mehrzeilige Kommentare bzw. im Ausdruck eingeschlossene Kommentare als Erinnerungshilfen zu verwenden.

    /*
    Labels each region with its highest (in altitude) airport(s)
    and altitude, eg 'AMBLER : 264m' for the 'Northwest Artic' region
    */
    with_variable(
      'airport_alti', -- stores the highest altitude of the region
      aggregate(
        'airports',
        'max',
        "ELEV", -- the field containing the altitude
        -- and limit the airports to the region they are within
        filter := within( $geometry, geometry( @parent ) )
      ),
        aggregate( -- finds airports at the same altitude in the region
          'airports',
          'concatenate',
          "NAME",
          filter := within( $geometry, geometry( @parent ) )
            and "ELEV" = @airport_alti
        )
        || ' : ' || @airport_alti || 'm'
        -- using || allows regions without airports to be skipped
    )
    
  • In der Ausgabevoransicht unterhalb des Ausdruckseditors wird das Resultat des Ausdrucks angewendet auf das erste Objekt des Layers dargestellt. Im Falle eines Fehlers wird eine Fehlermeldung angezeigt und die Details zur Fehlermeldung können über den bereit gestellten link angesehen werden.

  • In einem Auswahlfeld sind die Funktionen, Variablen, Felder, … in Gruppen organisiert aufgelistet. Ein Suchfeld dient zur Filterung der Gesamtliste, um schnell eine bestimmte Funktion oder Feld zu finden. Mit Hilfe eines Doppelklicks wird das Element in den Ausdruckseditor eingefügt.

  • Ein Bedienfeld, das Hilfe für jedes ausgewählte Element aus der Funktionsauwahl anzeigt.

    Tipp

    Drücke Ctrl+Click beim Überfahren eines Funktionsnamens, um automatisch die Hilfe zu dieser Funktion im Hilfe-Dialog anzuzeigen.

  • Sobald in der Funktionsauswahl ein Feld selektiert ist, wird ein Widget zu den Werten dieses Attributes angezeigt. Mit Doppelklick auf einen Wert, wird der Wert in den Ausdruckseditor übernommen.

Tipp

Das rechte Bedienfeld mit der Hilfe zu Funktionen und den Feldwerten kann ausgeblendet werden (durch nach rechts ziehen der Bedienfeldbegrenzung). Durch Drücken des Knopfes Werte anzeigen oder Hilfe anzeigen wird er wieder angezeigt.

../../../_images/function_list.png

Der Ausdruck Reiter

Aggregatsfunktionen

Diese Gruppe enthält Funktionen, die Werte über Layern und Feldern aggregieren.

Funktion Beschreibung
aggregate Liefert einen mit Objekten eines anderen Layers berechneten Aggregatwert
array_agg Liefert ein Array der aggregierten Werte eines Feldes oder Ausdrucks
collect Liefert eine mehrteilige Geometrie der aggregierten Geometrien des Ausdrucks
concatenate Liefert alle durch ein Trennzeichen verbundenen aggregierten Zeichenketten eines Feldes oder Ausdrucks
count Liefert die Anzahl der passenden Objekte
count_distinct Liefert die Anzahl von eindeutigen Werten
count_missing Liefert die Anzahl von fehlenden Werten (NULL)
iqr Liefert den berechneten Interquartilbereich eines Feldes oder Ausdrucks
majority Liefert den aggregierten Mehrheitswert (am häufigsten auftretender Wert) eines Feldes oder Ausdrucks
max_length Liefert die maximale Zeichenkettenlänge eines Feldes oder Ausdrucks
maximum Liefert den aggregierten Maximalwert eines Feldes oder Ausdrucks
mean Liefert den aggregierten Mittelwert eines Feldes oder Ausdrucks
median Liefert den aggregierten Medianwert aus einem Feld oder Ausdruck
min_length Liefert die minimale Zeichenkettenlänge eines Feldes oder Ausdrucks
minimum Liefert den aggregierten minimalen Wert eines Feldes oder Ausdrucks
minority Liefert den aggregierten Minderheitswert (am wenigsten auftretender Wert) eines Feldes oder Ausdrucks
q1 Liefert das berechnete erste Quartil eines Feldes oder Ausdrucks
q3 Liefert das berechnete dritte Quartil eines Feldes oder Ausdrucks
range Liefert den aggregierten Wertebereich (maximum - minimum) eines Feldes oder Ausdrucks
relation_aggregate Liefert einen aus allen passenden Kindobjekten aggregierten Wert einer Layerbeziehung
stdev Liefert den aggregierten Standardabweichungswert eines Feldes oder Ausdrucks
sum Liefert den aggegierten summierten Wert eines Feldes oder Ausdrucks

Beispiele:

  • Gebe den Maximalwert für das Feld „passengers“ und der Gruppierung der Objekte nach dem Feld „station_class“ aus:

    maximum("passengers", group_by:="station_class")
    
  • Berechne die Anzahl der Passagiere für Bahnhöhe innerhalb des aktuellen Atlas-Objektes:

    aggregate('rail_stations','sum',"passengers",
      intersects(@atlas_geometry, $geometry))
    
  • Gebe dern Mittelwert des Feldes „field_from_related_table“ für alle passenden Kindobjekte bezüglich der Relation ‚my_relation‘ des Layers aus:

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

    oder:

    relation_aggregate(relation:='my_relation', aggregate := 'mean',
      expression := "field_from_related_table")
    

Matrixfunktionen

Diese Gruppe enthält Funktionen zur Erzeugung und Manipulation von Arrays (auch als Listen bekannt). Die Reihenfolge der Werte im Array ist wichtig. Eine Ausnahme bildet die ‚map‘ Datenstruktur, bei der die Reihenfolge der Schlüssel-Werte-Paare unwichtig ist. Die Werte werden in diesem Fall durch den zugehörigen Schlüssel identifiziert.

Funktion Beschreibung
array Liefert ein Array mit allen zum Parameter passenden Werten
array_append Liefert einen Array an den der gegebene Wert am Ende angehängt ist
array_cat Liefert einen Array der alle gegeben Arrays aneinanderhängt
array_contains Gibt wahr aus, wenn das Array den gegebenen Wert enthält
array_distinct Gibt ein Array mit den eindeutigen Werten des gegebenen Arrays aus
array_filter Liefert einen Array der nur die Werte enthält, für die ein Ausdruck wahr ist
array_find Gibt den Index eines Wertes im Array (0 für den ersten Wert). Gibt -1 zurück, wenn der Wert nicht im Array enthalten ist
array_first Gibt den ersten Wert eines Arrays zurück
array_foreach Gibt ein Array mit dem Ergebnis der Auswertung des gegebenen Ausdrucks für jedes Element zurück
array_get Liefert den n-ten Wert eines Arrays (0 für den ersten Wert)
array_insert Liefert ein Array in das der gegebene Wert an der gegebenen Position eingefügt wurde
array_intersect Gibt wahr zurück, wenn ein Element aus array_1 in array_2 enthalten ist
array_last Gibt den letzten Wert eines Arrays zurück
array_length Gibt die Anzahl der Elemente eines Arrays zurück
array_prepend Liefert ein Array bei dem der gegebene Wert am Anfang eingefügt ist
array_remove_all Gibt ein Array zurück, aus dem die gegebenen Wert entfernt sind
array_remove_at Liefert ein Array aus dem das Element mit dem gegebenen Index entfernt wurde
array_reverse Liefert das gegebene Array in umgekehrter Reihenfolge zurück
array_slice Gibt einen Teil eines Arrays zurück. Der Teil wird durch die Argumente start_pos und end_pos bestimmt.
array_to_string Verbindet die Elemente eines Arrays zu einer durch Trennzeichen getrennten Zeichenkette. Für leere Werte kann optional ein Wert vorgegeben werden.
generate_series Erzeugt ein Array aus einer Folge von Zahlen
regexp_matches Gibt einen Array aller Zeichenketten zurück, die durch gruppierte Erfassung im gegebenen regulären Ausdruck aus einer Zeichenkette erfasst werden
string_to_array Zerteilt eine Zeichenkette an der Stelle des vorgegeben Trennzeichens in einen Array. Für leere Werte kann optional eine Zeichenkette vorgegeben werden.

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_grayscale_average Applies a grayscale filter and returns a string representation from a provided color
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_mix_rgb Returns a string representing a color mixing the red, green, blue, and alpha values of two provided colors based on a given ratio
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
create_ramp Returns a gradient ramp from a map of color strings and steps
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

Funktionen für Bedingungen

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

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
    

Funktionen zum Umwandlung

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_dm Wandelt Koordinaten in Grad, Minute um
to_dms Wandelt Koordinaten in Grad, Minute, Sekunde um
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

Benutzerdefinierte Funktionen

Diese Gruppe enthält vom Nutzer erstellte Funktionen. Unter Funktions Editor findet man weitere 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
epoch Gibt den Zeitabstand in Millisekunden zwischen der Unixepoche und einem gegebenen Datumswert an.
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

In dieser Gruppe sind einige Funktionen der Gruppen Funktionen zum Umwandlung ( to_date, to_time, to_datetime, to_interval) und Zeichenkettenfunktionen (format_date) enthalten.

Einige Beispiele:

  • Ausgabe des aktuellen Monats und Jahres in der Form „Monat_Nummer/Jahr“:

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

Neben diesen Funktionen führt das Subtrahieren von Datums- oder Zeitangaben mit dem - (minus) Operator zur Ausgabe eines Zeitintervalls.

Die Addition oder Subtraktion von Zeitintervallen zu Datums- oder Zeitangaben mit Hilfe des + (plus) oder - (minus) Operators gibt eine Datums- oder Zeitangabe zurück.

  • Ausgabe der Anzahl der Tage bis zur Herausgabe von QGIS 3.0:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • Analog mit time:

    to_datetime('2017-09-29 12:00:00') - to_datetime(now())
    -- Returns <interval: 202.49 days>
    
  • Ausgabe der Datums- und Zeitangabe für 100 Tage in der Zukunft:

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

Bemerkung

Speichern von Datums- und Zeitangaben und Zeitintervallen in Feldern

Die Fähigkeit, Werte mit Datum, Zeit und Datum mit Zeit direkt in Feldern zu speichern, hängt vom Datenformat ab (z.B. unterstützt das shape-Format Werte für Datum aber nicht Datum mit Zeit oder Zeit). Es folgen einige Vorschläge, um diese Limitation zu umgehen:

  • Datum, Datum mit Zeit und Zeit können in Text-Feldern nach Umwandlung mit der to_format() Funktion gespeichert werden.
  • Zeitintervalle können in Felder mit ganzzahligem oder dezimalem Datentyp gespeichert werden. Davor muss eine entsprechende Umwandlung erfolgen (z.B. day() um ein Zeitintervall in Tagen zu erhalten).

Felder und Werte

Enthält eine Liste von Feldern des Layers.

Doppelklick auf einen Feldnamen fügt das Feld im Ausdruck ein. Man kann auch den Feldnamen (vorzugsweise in Anführungszeichen) oder seinen alias verwenden.

Um Feldwerte, die man in einem Ausdruck verwenden will anzuzeigen, klickt man im Vorschau-Widget auf 10 Stichproben oder Alle eindeutigen. Die angeforderten Werte werden dann angezeigt und man kann das Ergebnis mit Hilfe des Suche Kastens über der Liste filtern. Beispielwerte können außerdem duch Klick mit der rechten Maustaste auf ein Feld angezeigt werden.

Um einen Wert in den erstellten Ausdruck zu übernehmen, klickt man doppelt auf den Wert in der Liste. Wenn der Wert eine Zeichenkette ist, sollte er mit einfachen Anführungszeichen ausgezeichnet sein. Ansonsten sind keine Anführungszeichen erforderlich.

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
env Erhält eine Umgebungsvariable und gibt ihren Inhalt als Zeichenkette zurück. Wenn die Variable nicht gefunden wurde, wird NULL zurückgegeben.
eval Werte einen Ausdruck aus, der als Zeichenkette übergeben wird. Nützlich um als Kontextvariablen oder Felder übergebene dynamische Parameter zu expandieren.
is_layer_visible Gibt wahr zurück, wenn der angegebene Layer sichtbar ist
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
with_variable Erstellt und belegt eine Variable für den im dritten Argument verwendeten Ausdruck. Nützlich bei Ausdrücken, die denselben Wert mehrfach wiederholen.

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 Liefert die X-Koordinate des aktuellen Objektes
$x_at(n) Liefert die X-Koordinate des n-ten Knotens der aktuellen Objektgeometrie
$y Liefert die Y-Koordinate des aktuellen Objektes
$y_at(n) Liefert die Y-Koordinate des n-ten Knotens der aktuellen Objektgeometrie
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 - see also Boundary).
bounds Gibt die Geometrie des Begrenzungsrahmens um die Eingabegeometrie zurück. Berechnungen erfolgen im räumlichen Bezugssystem der Eingabegeometrie (siehe auch Bounding boxes)
bounds_height Gibt die Höhe des Begrenzungsrahmens einer Geometrie zurück. Berechungen erfolgen im räumlichen Bezugssystem der Eingabegeometrie
bounds_width Gibt die Breite des Begrenzungsrahmens einer Geometrie zurück. Berechnungen erfolgen im räumlichen Bezugssystem der Eingabegeometrie
buffer Gibt eine Geometrie aller Punkte zurück, deren Abstand zur Eingabegeometrie kleiner oder gleich des vorgegebenen Abstandswertes ist. Die Berechnung erfolgen im räumlichen Bezugssystem der Eingabegeometrie (see also Buffer)
buffer_by_m Erstellt einen Puffer entlang einer Liniengeomtrie bei dem der Pufferdurchmesser den m-Werten folgend wechselt (see also Variable width buffer (by M value))
centroid Liefert das geometrische Zentrum einer Geometrie (see also Centroids)
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 Liefert die konvexe Hülle einer Geometrie (dies stellt die minimale konvexe Geometrie dar, die alle in der Menge enthaltenen Geometrien enthält) (see also Convex hull)
crosses Liefert 1 (wahr), wenn die gelieferte Geometrien einige, aber nicht alle inneren Punkte gemeinsam haben
difference(a,b) Gibt eine Geomtrie für den Teil von Geometrie a zurück, der sich nicht mit Geometrie b überschneidet (see also Difference)
disjoint Liefert 1 (true), wenn die Geometrie keinen Raum teilen
distance Liefert den kleinsten Abstand (basierend auf dem räumlichen Bezugssystem) zwischen zwei Geometrien in einer projizierten Einheit
distance_to_vertex Liefert den Abstand entlang der Geomtrie zu einem gegebenen Stützpunkt
end_point Liefert den letzten Knoten einer Geometrie (see also Extract specific vertices)
extend Verlängert den Anfang und das Ende einer Liniengeometrie um einen gegebenen Betrag (see also Extend lines)
exterior_ring Liefert den äußeren Ring eines Polygons als Linestring. Wenn die Geometrie kein Polygon ist, ist das Ergebnis NULL
extrude(geom,x,y) Liefert eine extrudierte Version der Eingabe- (Multi-) Kurven- oder (Multi-) Liniengeomtrie mit einer durch x und y vorgegebenen Erweiterung
flip_coordinates Gibt eine Kopie der Eingabegeometrie mit getauschten X- und Y-Koordinaten zurück (see also Swap X and Y coordinates)
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
hausdorff_distance Gibt im Wesentlichen ein Maß zurück, wie ähnlich oder unähnlich 2 Geomtrien sind - je kleiner der Abstand desto ähnlicher sind die Geomtrien
inclination Liefert die Neigung gemessen vom Zenit (0) zum Fußpunkt (180) von point_a zu point_b
interior_ring_n Liefert die Geometrie des n-ten inneren Rings aus einer Polygongeometrie oder null, wenn die Geometrie kein Polygon ist
intersection Liefert eine Geomtrie, die die gemeinsamen Teile von zwei Geometrien repräsentiert (siehe auch Intersection)
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 Prüft ob sich der Begrenzungsrahmen einer Geometrie mit dem Begrenzungsrahmen einer anderen Geometrie überlappt. Gibt 1 (wahr) zurück, wenn sich die Begrenzungsrahmen der Geometrien räumlich überschneiden (einen beliebigen gemeinsamen Teilraum haben) und 0 wenn nicht
is_closed Gibt wahr zurück wenn ein Linestring geschlossen ist (Start- und Endpunkt stimmen überein), falsch wenn ein Linestring nicht geschlossen ist und NULL wenn die Geometrie kein Linestring ist
length Liefert die Länge eines Liniengeometrie Objekts (oder Länge einer Zeichenkette)
line_interpolate_angle Liefert den Winkel parallel zu einer Liniengeometrie für eine vorgebenen Strecke entlang der Linie. Die Winkelangabe erfolgt in Grad im Uhrzeigersinn von Nord ausgehend.
line_interpolate_point Gibt einen Punkt entsprechend der gegebenen Distanz entlang der Liniengeomtrie zurück. (siehe auch Interpolate point on line)
line_locate_point Liefert den Abstand des nächsten Punktes auf einer Linie zu einem gegebenen Punkt.
line_substring Gibt den Teil einer Linie zwischen den gegebenen Start- und Enddistanzwerten (gemessen vom Beginn der Linie) (siehe auch Line substring)
line_merge Returns a (Multi-)LineString geometry, where any connected LineStrings from the input geometry have been merged into a single linestring.
m Gibt den M-Wert einer Punktgeometrie zurück
make_circle Erzeugt eine Kreisgeomtrie basierend auf Mittelpunkt und Radius
make_ellipse Erzeugt eine Ellipsengeometrie basierend auf Mittelpunkt, Vorgabe der Axen und des Azimuts
make_line Liefert eine Liniengeometrie aus einer Reihe von Punktgeometrien
make_point(x,y,z,m) Erzeugt eine Punktgeometrie aus X- und Y- (und optional Z- oder M-) Werten
make_point_m(x,y,m) Erzeugt eine Punktgeometrie aus X- und Y-Koordinaten und M-Werten
make_polygon Liefert eine Polygongeometrie aus einem äußeren Ring und einer optionalen Liste von inneren Ringen
make_regular_polygon Erzeugt ein regelmäßiges Polygon
make_triangle Erzeugt ein Dreieckspolygon
minimal_circle Gibt den minimalen umschließenden Kreis um die Eingabegeometrie zurück (siehe auch Minimum enclosing circles)
nodes_to_points Gibt eine Multipunktgeometrie zurück, die alle Knoten der Eingabegeometrie enthält (siehe auch Extract vertices)
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
offset_curve Gibt eine seitlich zur Eingabeliniengeomtrie versetzte Linie zurück. Abstände werden im räumlichen Bezugssystem der Eingabegeomtrie angegeben. (siehe auch Offset lines)
order_parts Sortiert die Teile eine Multigeometrie nach gegebenem Kriterium
oriented_bbox Gibt den minimalen gedrehten Begrenzungsrahmen der Eingabegeometrie zurück (siehe auch Oriented minimum bounding box)
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 Liefert einen bestimmten Knoten einer Geometrie (siehe auch Extract specific vertices)
point_on_surface Liefert einen Punkt, der innerhalb der Fläche einer Geometrie liegt (siehe auch Point on Surface)
pole_of_inaccessibility Berechnet den Pol der Unzugänglichkeit für eine Fläche. Es handelt sich um den Punkt innerhalb der einer Fläche, der den größten Abstand zur Flächenumrandung hat (siehe auch Pole of inaccessibility)
project Liefert einen von einem Startpunkt mit Abstand und Richtung im Bogenmaß (Azimut) projizierten Punkt (siehe auch Project points (Cartesian))
relate Liefert die Dimensional Extended 9 Intersection Model (DE-9IM) Darstellung der Beziehungen zwischen zwei Geometrien
reverse Kehrt die Richtung einer Linie durch Umkehrung der Stützpunktreihenfolge um (siehe auch Reverse line direction)
segments_to_lines Erzeugt aus jedem Liniensegment einer Linie der Eingabegeometrie eine Multiliniengeometrie (siehe auch Explode lines)
shortest_line Liefert die kürzeste Linie, die zwei Geometrien verbindet. Die resultierende Linie beginnt bei Geometrie 1 und endet bei Geometrie 2
simplify Vereinfacht eine Geometrie durch Entfernen von Stützpunkten unter Nutzung einers entfernungsbasierten Schwellenwertes (siehe auch Simplify)
simplify_vw Vereinfacht eine Geometrie durch Entfernen von Stützpunkten unter Nutzung eines flächenbasierten Schwellenwertes (siehe auch Simplify)
single_sided_buffer Gibt eine Geomtrie zurück, die durch Pufferung einer Linie auf nur einer Seite entsteht. Abstände werden im räumlichen Bezugssystem der Geometrie angegeben (siehe auch Single sided buffer)
smooth Glättet eine Geometrie indem Stützpunkte hinzugefügt werden, die die Ecken der Geometrie abrunden (siehe auch Smooth)
start_point Liefert den ersten Knoten einer Geometrie (siehe auch Extract specific vertices)
sym_difference Liefert eine Geometrie, die die Teile von zwei Geometrien enthält, die sich nicht überschneiden (siehe auch Symmetrical difference)
tapered_buffer Erzeugt einen Puffer entlang einer Liniengeometrie wobei sich der Pufferdurchmesser gleichmäßig über die Länge der Linie ändert (see also Tapered buffers)
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 Liefert die vom Quell-KBS in das Ziel-KBS transformierte Geometrie (see also Reproject layer)
translate Gibt eine räumlich versetzte Version der Geometrie zurück. Berechnungen erfolgen im räumlichen Bezugssystem der Geometrie (siehe auch Translate)
union Liefert eine Geometrie die alle Punkte der Geometrien umfasst
wedge_buffer Erzeugt einen von einer Punktgeometrie ausgehenden keilförmigen Puffer mit gegebenen Winkel und Radien (siehe auch also Create wedge buffers)
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 Liefert die X-Koordinate einer Punktgeometrie oder die X-Koordinate des Schwerpunktes bei anderen Geometrien
x_min Liefert die minimale X-Koordinate einer Geometrie. Die Berechnung erfolgt im räumlichen Bezugssystem der Geometrie
x_max Liefert die maximale X-Koordinate einer Geometrie. Die Berechnung erfolgt im räumlichen Bezugssystem der Geometrie
y Liefert die Y-Koordinate einer Punktgeometrie oder die Y-Koordinate des Schwerpunktes bei anderen Geometrien
y_min Liefert die minimale Y-Koodinate einer Geometrie. die Berechnung erfolgt im räumlichen Bezugssystem der Geometrie
y_max Liefert die maximale Y-Koordinate einer Geometrie. Die Berechnung erfolgt im räumlichen Bezugssystem der Geometrie
z Liefert die Z-Koordinate einer Punktgeometrie

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 )
    
  • Rückgabe der X-Koordinate des Schwerpunktes des aktuellen Objektes:

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

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

Layout Funktionen

Diese Gruppe enthält Funktionen zur Beeinflussung der Eigenschaften von Drucklayoutelementen

Funktion Beschreibung
item_variables Returns a map of variables from a layout item inside this print layout

Einige Beispiele:

  • Rückgabe des Maßstabes von ‚Map 0‘ im aktuellen Drucklayout:

    map_get( item_variables('Map 0'), 'map_scale')
    

Kartenlayer

Diese Gruppe enthält eine Liste der im aktuellen Projekt verfügbaren Layer. Dies eröffnet einen komfortablen Weg, um Ausdrücke mit Verweis auf verschiedene Layer zu erstellen, z.B. beim Erstellen von Aggregaten, Attribut- oder räumlichen Abfragen.

Kartenfunktionen

This group contains functions to create or manipulate keys and values of map data structures (also known as dictionary objects, key-value pairs, or associative arrays). Unlike the list data structure where values order matters, the order of the key-value pairs in the map object is not relevant and values are identified by their keys.

Funktion Beschreibung
hstore_to_map Creates a map from a hstore-formatted string
json_to_map Creates a map from a json-formatted string
map Returns a map containing all the keys and values passed as pair of parameters
map_akeys Returns all the keys of a map as an array
map_avals Returns all the values of a map as an array
map_concat Returns a map containing all the entries of the given maps. If two maps contain the same key, the value of the second map is taken.
map_delete Returns a map with the given key and its corresponding value deleted
map_exist Returns true if the given key exists in the map
map_get Returns the value of a map, given it’s key
map_insert Returns a map with an added key/value
map_to_hstore Merges map elements into a hstore-formatted string
map_to_json Merges map elements into a json-formatted string

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 Liefert den inversen Tangent eines Wertes im Bogenmaß
atan2(y,x) Liefert den inversen Tangent von dy/dx durch Verwendung des Vorzeichens der beiden Argumente um den Quadranten des Ergebnisses festzulegen
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
inclination Liefert die Neigung gemessen vom Zenit (0) zum Fußpunkt (180) von point_a zu point_b.
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 Liefert den größten Wert ungleich NULL aus einer Wertemenge
min Liefert den kleinsten Wert ungleich NULL aus einer Wertemenge
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

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 Vergleicht zwei Werte und ergibt 1, wenn der linke Wert kleiner oder gleich dem rechten Wert ist
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 Gibt 1 zurück, wenn Bedingung a oder Bedingung b wahr ist
a AND b Gibt 1 zurück, wenn Bedingung a und Bedingung b wahr sind
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

Verkettung von Feldern

Zeichenketten können mit || oder + verkettet werden. Der zweite Operator wird außerdem zur Addition verwendet. Bei ganzen Zahlen (Felder oder numerische Werte) kann das fehleranfällig sein. In diesem Fall sollte man || verwenden. Wenn man zwei Zeichenketten verkettet, können beide Operatoren verwendet werden.

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%'
    

Rasterfunktionen

Diese Gruppe enthält Funktionen zur Verarbeitung von Rasterlayern.

Funktion Beschreibung
raster_statistic Gibt eine Rasterlayer-Statistik von Rasterlayern zurück
raster_value Gibt den Wert des Rasterbandes am angegebenen Punkt zurück

Funktionen zu Datensätzen und Attributen

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
attribute Gibt den Attributwert eines Objektes zurück
get_feature Gibt das erste Objekt eines Layers mit dem gegebenen Attributwert zurück
get_feature_by_id Gibt das Objekt eines Layers mit der gegebenen Objekt-ID zurück
is_selected Gibt zurück, ob ein Objekt ausgewählt ist
num_selected Liefert die Anzahl der ausgewählten Objekte auf einem gegebenen Layer
represent_value Returns the configured representation value for a field value (convenient with some widget types)
uuid Generiert einen Universally Unique Identifier (UUID) für jede Zeile. Jede UUID hat eine Länge von 38 Zeichen.

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 Gibt das Zeichen mit dem zugehörigen Unicode-Kode aus
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 Liefert eine links bis auf die gegebene Länge mit dem Füllzeichen aufgefüllte Zeichenkette
regexp_match Liefert die Position der ersten Fundstelle eines regulären Ausdrucks in einer Zeichenkette oder 0 wenn die Teilzeichenkette nicht gefunden wurde
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, array, or map of strings replaced by a string, an array of strings or paired values
right(string, n) Liefert einen Teilstring mit den ersten n Zeichen der Zeichenkette
rpad Liefert eine rechts bis auf die gegebene Länge mit dem Füllzeichen aufgefüllte Zeichenkette
strpos Liefert die Position der ersten Fundstelle einer Teilzeichenkette in einer anderen Zeichenkette oder 0 wenn die Teilzeichenkette nicht gefunden wurde
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

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
  • vom Drucklayout

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

Funktion Beschreibung
algorithm_id Gibt die eindeutige ID eines Algorithmus zurück
atlas_feature Liefert das aktuelle Atlas-Objekt (als Objekt)
atlas_featureid Liefert die ID des aktuellen Atlasobjekts
atlas_featurenumber Gibt die Nummer des aktuellen Atlas Objektes im Layout zurück
atlas_filename Liefert den aktuellen Atlas Dateinamen
atlas_geometry Liefert die aktuelle Geometrie des Atlas Objektes
atlas_layerid Gibt die ID des aktuellen Atlas Abdeckungslayers zurück
atlas_layername Gibt den Layernamen des Atlas Abdeckungslayers zurück
atlas_pagename Liefert den aktuellen Atlas Seitennamen
atlas_totalfeatures Liefert die Gesamtanzahl der Objekte im Atlas
canvas_cursor_point Gibt die letzte Cursorposition auf der Karte in den geographischen Koordinaten des Projektes zurück
cluster_color Returns the color of symbols within a cluster, or NULL if symbols have mixed colors
cluster_size Returns the number of symbols contained within a cluster
current_feature Returns the feature currently being edited in the attribute form or table row
current_geometry Returns the geometry of the feature currently being edited in the form or the table row
geometry_part_count Gibt die Anzahl der Teile in der dargestellten Objektgeometrie zurück
geometry_part_num Returns the current geometry part number for feature being rendered
geometry_point_count Returns the number of points in the rendered geometry’s part
geometry_point_num Returns the current point number in the rendered geometry’s part
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 layout item user ID (not necessarily unique)
item_uuid Returns the layout item unique ID
layer Gibt den aktuellen Layer zurück
layer_id Liefert die ID des aktuellen Layers
layer_name Liefert den aktuellen Layernamen
layout_dpi Liefert die Zusammenstellungsauflösung (DPI).
layout_name Gibt den Namen des Layouts zurück
layout_numpages Gibt die Anzahl der Seiten im Layout zurück
layout_page Gibt die Seitennummer des aktuellen Elements im Layout zurück
layout_pageheight Gibt die Höhe der aktiven Seite im Layout zurück (in mm)
layout_pagewidth Gibt die Breite der aktiven Seite im Layout zurück (in mm)
map_crs Gibt das Koordinatenbezugssystem der aktuellen Karte zurück
map_crs_definition Gibt die vollständige Definition des Koordinatenbezugssystems der aktuellen Karte zurück
map_extent Gibt eine Geometrie mit der aktuellen Ausdehnung der Karte zurück
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 layout map renders
map_layer_ids Gibt eine Liste der IDs der sichtbaren Layer in der Karte zurück
map_layers Gibt eine Liste der in der Karte sichbaren Layer zurück
map_rotation Liefert die aktuelle Kartendrehung
map_scale Liefert den aktuellen Kartenmaßstab
map_units Gibt die Einheiten der Messungen in der Karte zurück
notification_message Content of the notification message sent by the provider (available only for actions triggered by provider notifications).
parent Refers to the current feature in the parent layer, providing access to its attributes and geometry when filtering an aggregate function
project_abstract Gibt die Kurzbeschreibung des Projektes entsprechend Metadaten zurück
project_author Gibt den Autor des Projekt entsprechend Metadaten zurück
project_basename Gibt den Projektdateinamen des aktuellen Projekts zurück (ohne Pfad und Erweiterung)
project_creation_date Gibt das Erzeugungsdatum des Projektes entsprechend Metadaten zurück
project_crs Gibt das Koordinatenbezugssystem des Projektes zurück
project_crs_definition Gibt die vollständige Definietion des Koordinatenbezugssystems des Projektes zurück
project_filename Gibt den Dateinamen des aktuellen Projektes zurück
project_folder Gibt den Ordner des aktuellen Projektes zurück
project_home Gibt das Heimatverzeichnis des aktuellen Projektes zurück
project_identifier Gibt die Identifikation des Projektes entsprechend Metadaten zurück
project_keywords Gibt die Schlüsselworte des Projektes entprechend der Metadaten zurück
project_path Gibt des vollständigen Pfad des aktuellen Projektes (einschließlich Dateiname) zurück
project_title Liefert den Titel des aktuellen Projekts
qgis_locale Gibt die aktuelle Sprache von QGIS zurück
qgis_os_name Liefert den Betriebssystemnamen, z.B. ‚windows‘, ‚linux‘ oder ‚osx‘
qgis_platform Gibt die QGIS-Plattform zurück, z.B. ‚desktop‘ oder ‚server‘
qgis_release_name Gibt den aktuellen QGIS-Releasename zurück
qgis_short_version Returns current QGIS version short string
qgis_version Returns current QGIS version string
qgis_version_no Gibt die aktuelle QGIS Versionsnummer zurück
snapping_results Gibt Zugriff auf die Einrasthinweise beim Digitalisieren eines Objektes (nur beim Hinzufügen von Objekten verfügbar)
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
Wert Gibt den aktuellen Wert zurück
with_variable Erlaubt das Setzen einer Variable für die Verwendung in einem Ausdruck und vermeidet so die wiederholte Neuberechnung desselben Wertes

Einige Beispiele:

  • Gibt die X-Koordinate des Zentrums eines Kartenelementes zur Übernahme in eine Beschriftung im Layout zurück:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Gibt für alle Objekte im aktuellen Layer die Anzahl der damit überlappenden Flughafenobjekte zurück:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Get the object_id of the first snapped point of a line:

    with_variable(
      'first_snapped_point',
      array_first( @snapping_results ),
      attribute(
        get_feature_by_id(
          map_get( @first_snapped_point, 'layer' ),
          map_get( @first_snapped_point, 'feature_id' )
        ),
        'object_id'
      )
    )
    

Kürzlich verwendete Funktionen

Diese Gruppe enthält die zuletzt verwendeten Funktionen. Abhängig vom Kontext der Nutzung (Objektauswahl, Feldberechnung, allgemein) wird jede verwendete Funktion zu der zugehörigen Liste hinzugefügt (bis zu zehn Ausdrücke). Die Ausdrücke sind nach Alter aufsteigend geordnet. Dies hilft dabei, schnell vorher genutzte Ausdrücke abzurufen und erneut anzuwenden.

Funktions Editor

Mit dem Reiter Funktionseditor ist man in der Lage, eigene Funktionen mit Python zu schreiben. Dies bietet einen einfachen und komfortablen Weg, um besondere Anforderungen zu erfüllen, die nicht durch die enthaltenen Funktionen abgedeckt werden.

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

Der Funktionseditor Reiter

Um eine neue Funtkion zu erstellen:

  1. Drücken Sie auf die signPlus New File Schaltfläche.

  2. Geben Sie einen Namen in das sich öffnende Formular ein und drücken dann auf OK.

    Ein neues Element mit dem vergebenen Namen wird nun im linken Bedienfeld des Funktionseditor bereitgestellt; dabei handelt es sich um eine Python .py Datei, basierend auf einer QGIS Template-Datei, gespeichert im Ordner /python/expressions im Verzeichnis des aktiven :ref:`user profile `.

  3. Das rechte Bedienfeld stellt den Inhalt der Datei dar: ein Python Skript Template. Aktualisieren den Kode und die Hilfeienträge entsprechend ihrer Erfordernisse.

  4. Drücken Sie auf die Schaltfläche start Lade- und Speicherfunktionen. Die von ihnen geschriebene Funktion wird in der Liste der Funktionen im Reiter Ausdruck in der Voreinstellung in der Gruppe Custom hinzugefügt.

  5. Haben Sie Spaß mit ihrer neuen Funktion.

  6. Wenn die Funktion verbessert werden soll, geht man zum Reiter Funktionseditor, nimmt die Änderungen vor und drückt erneut auf die Schaltfläche start Lade- und Speicherfunktionen. Damit werden die Änderungen in der Datei und somit auch im Reiter Ausdruck verfügbar.

Benutzerdefinierte Pythonfunktionen werden im Profilverzeichnis des Nutzer gespeichert. Das heißt das QGIS beim Start automatische alle Funktionen des aktuellen Nutzerprofils lädt. Beachten Sie, dass neue Funktionen nur im Ordner /python/expressions gespeichert werden und nicht in der Projektdatei. Wenn Sie ein Projekt mit benutzerdefinierten Funktionen verteilen möchten, müssen Sie auch die Datei .py im Ordner /python/expressions mitliefern.

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

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def my_sum(value1, value2, feature, parent):
    """
    Calculates the sum of the two parameters value1 and value2.
    <h2>Example usage:</h2>
    <ul>
      <li>my_sum(5, 8) -> 13</li>
      <li>my_sum("field1", "field2") -> 42</li>
    </ul>
    """
    return value1 + value2

Diese kurze Beispiel erzeugt eine Funktion my_sum mit zwei Werten. Bei Nutzung der Funktionsargumentes args='auto' wird die Anzahl der erforderlichen Argumente aus der Anzahl der in Python definierten Argumente berechnet (minus 2 - feature, und parent).

Die Funktion kann in Ausdrücken verwendet werden:

../../../_images/customFunction.png

Benutzerdefinierte Funktion im Reiter Ausdruck

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