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:
Auswahl von Objekten mit Hilfe des Tools Objekte über Ausdruck wählen;
Attribute bearbeiten z.B. mit Hilfe des Tools Feldrechner;
Änderung der Symbolisierung, der Beschriftung oder der Parameter von Layoutelementen mit Hilfe des Tools Datendefinierte Übersteuerung (see Datendefinierte Übersteuerung Setup);
Erstellung eines Layers mit Symbolisierung mit Hilfe des Geometriegenerators;
Ausführung einer Geoprozessierung.
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.
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 |
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 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.
Um eine neue Funtkion zu erstellen:
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 `.Das rechte Bedienfeld stellt den Inhalt der Datei dar: ein Python Skript Template. Aktualisieren den Kode und die Hilfeienträge entsprechend ihrer Erfordernisse.
Drücken Sie auf die Schaltfläche 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.Haben Sie Spaß mit ihrer neuen Funktion.
Wenn die Funktion verbessert werden soll, geht man zum Reiter Funktionseditor, nimmt die Änderungen vor und drückt erneut auf die Schaltfläche 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:
Weitere Informationen über das Erstellen von Python-Kodes können in PyQGIS-Entwicklerkochbuch gefunden werden.