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.