Ausdrücke
Diese Seite hilft Ihnen zu verstehen, wie Sie Ausdrücke im Dashboard-Builder verwenden. Sie können Ausdrücke in den Widgets Zahlen, Kategorien und Kreisdiagramm eingeben. Wir listen und beschreiben die Ausdrücke, die Sie in GOAT verwenden können.
Sie funktionieren genauso wie in QGIS, und durch ihre Kombination können Sie komplexere Berechnungen durchführen oder Ihre Daten filtern.Wenn Sie sich auf ein Feld beziehen, setzen Sie es nur in Klammern: (Feldname).
Numerische Funktionen
Die folgenden Funktionen arbeiten nur mit Zahlenfeldern. Die Eingabe und die Ausgabe sind numerische Werte.
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| abs(x) | gibt den Absolutwert einer Zahl zurück | = 5 |
| sqrt(x) | gibt die Quadratwurzel einer Zahl zurück | = 4 |
| pow(x, y) | hebt x zur Potenz von y | = 8 |
| exp(x) | gibt e zur Potenz von x zurück | = 2,718... |
| ln(x) | natürlicher Logarithmus (Basis e) von x, Umkehrung von exp | = 2.303... |
| log10(x) | Logarithmus zur Basis 10 von x | = 2 |
| round(x, n) | rundet eine Zahl x auf n Dezimalstellen | = 1.24 |
| ceil(x) | rundet auf zur nächsten ganzen Zahl | = 2 |
| floor(x) | rundet ab zur vorherigen ganzen Zahl | = 1 |
| pi | gibt den Wert von π zurück | = 3.142.... |
| sin(x) | gibt den Sinus von x (Radianten) zurück | = 0.841... |
| cos(x) | gibt den Kosinus von x (Radianten) zurück | = 0.541... |
| tan(x) | gibt den Tangens von x (Radianten) zurück | = 0.932... |
| asin(x) | gibt den Arkussinus von x (Radianten) zurück | = 1.571... |
| acos(x) | gibt den Arkuskosinus von x (Radianten) zurück | = 1.047... |
| atan(x) | gibt den Arkustangens von x (Radianten) zurück | = 0.785... |
| degrees(x) | konvertiert Winkel x von Radianten zu Grad | = 57.296... |
| radians(x) | konvertiert Winkel x von Grad zu Radianten | = 3.142... |
| rand(x, y) | erzeugt eine Zufallszahl zwischen x und y | = 3.17 |
String-Funktionen
Die folgenden Funktionen arbeiten nur mit Textfeldern. Die Eingabe und die Ausgabe sind Textwerte.
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| length(string) | gibt die Anzahl der Zeichen in einem String ohne Leerzeichen zurück | = 8 |
| char_length(string) | gibt die Anzahl der Zeichen in einem String mit Leerzeichen zurück | = 9 |
| upper(string) | konvertiert alle Buchstaben zu Großbuchstaben | = WALKING |
| lower(string) | konvertiert alle Buchstaben zu Kleinbuchstaben | = goat |
| trim(string) | entfernt führende und nachfolgende Leerzeichen | = biking |
| ltrim(string) | entfernt Leerzeichen nur auf der linken Seite | = biking |
| rtrim(string) | entfernt Leerzeichen nur auf der rechten Seite | = biking |
| substr(string, start, length) | gibt einen Teilstring zurück, der an Position start beginnt mit optionaler Länge | = mob |
| substring(string, start, length) | gibt einen Teilstring zurück, der an Position start beginnt mit optionaler Länge | = mob |
| left(string, n) | gibt die äußersten linken n Zeichen zurück | = acce |
| right(string, n) | gibt die äußersten rechten n Zeichen zurück | = lity |
| replace(string, search, replace_with) | ersetzt alle Vorkommen eines Teilstrings durch einen anderen | = bike lane |
| regexp_replace(string, pattern, replacement) | verwendet reguläre Ausdrücke um Teile eines Textes zu finden und zu ersetzen | = BusStop# |
| regexp_substr(string, pattern) | extrahiert den ersten Teilstring der einem regulären Ausdrucksmuster entspricht | = 45 |
| strpos(string, substring) | gibt die Position (Index) zurück, an der ein Teilstring zum ersten Mal auftritt und gibt 0 zurück, wenn nicht gefunden | = 5 |
| concat(a,b...) | verbindet mehrere Strings oder Felder miteinander |
Datum-Zeit-Funktionen
Die folgenden Funktionen arbeiten nur mit Datum/Zeit-Feldern. Die Eingabe und die Ausgabe sind Datum/Zeit-Werte.
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| now() | gibt das aktuelle Datum und die Uhrzeit zurück | = 2025-10-07 11:35:00 |
| age(date1, date2) | gibt das Zeitintervall zwischen zwei Daten zurück | = 25 years 3 mons 12 days |
| extract(part, date) | extrahiert eine spezifische Komponente aus einem Datum (Jahr, Monat, Tag, Stunde, Minute, Sekunde) | = 2025 |
| date_part(part, date) | ähnlich wie extract gibt den spezifizierten Teil eines Datums zurück | = 10 |
| make_date(year, month, day) | erstellt ein Datum aus numerischem Jahr, Monat, Tag | = 2025-10-08 |
| make_time(hour, minute, second) | erstellt eine Uhrzeit aus numerischer Stunde, Minute, Sekunde | = 14:30:00 |
| make_timestamp(year, month, day, hour, minute, second) | kombiniert Datum und Uhrzeit zu einem Zeitstempel | = 2025-10-08 14:30:00 |
| to_date(string, format) | konvertiert einen Textstring zu einem Datum unter Verwendung des gegebenen Formats | = 2025-10-08 |
| to_timestamp(string, format) | konvertiert einen Textstring zu einem Zeitstempel unter Verwendung des gegebenen Formats | = 2025-10-08 14:30:00 |
| to_char(date, format) | konvertiert ein Datum oder Zeitstempel zu einem formatierten Textstring | = '2025-10-08' |
Konvertierungsfunktionen
Die folgenden Funktionen konvertieren einen Wert von einem Typ zu einem anderen. Die Eingabe und die Ausgabe haben unterschiedliche Typen.
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| to_int(x) | konvertiert x zu einer ganzen Zahl | = 3 |
| to_real(x) | konvertiert x zu einer reellen (Dezimal-)Zahl | = 3.9 |
| to_string(x) | konvertiert x zu einem Textstring | = '25' |
Allgemeine Funktionen
Die folgenden Funktionen arbeiten mit jedem Feldtyp. Die Eingabe und die Ausgabe haben denselben Typ.
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| coalesce(x, y, ...) | gibt den ersten Nicht-Null-Wert aus der gegebenen Liste von Eingaben zurück | = 5 |
| nullif(x, y) | gibt NULL zurück wenn x gleich y ist, andernfalls gibt es x zurück | = NULL |
Aggregationsfunktionen
Die folgenden Funktionen arbeiten mit jedem Feldtyp. Die Eingabe und die Ausgabe haben denselben Typ.
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| sum(field) | gibt die Gesamtsumme aller Werte in einem Feld (oder einer Gruppe) zurück | = 15230 |
| avg(field) | gibt den Durchschnittswert eines Feldes zurück | = 12.6 |
| min(field) | gibt den kleinsten (Minimum-)Wert in einem Feld zurück | = 0.5 |
| max(field) | gibt den größten (Maximum-)Wert in einem Feld zurück | = 18.2 |
| count(field) | gibt die Anzahl der Features oder Nicht-Null-Werte in einem Feld zurück | = 347 |
Metrische Unäre Funktionen
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| $area | gibt die Fläche eines Polygon-Features in den Koordinateneinheiten des Layers zurück (z.B. m²) | = 12500 |
| ST_Area(geometry) | gibt die Fläche einer spezifizierten Geometrie zurück; wird in Ausdrücken mit Geometriefunktionen verwendet | = 12500 |
| $length | gibt die Länge eines Linien-Features in Layer-Einheiten zurück (z.B. Meter) | = 275.3 |
| ST_Length(geometry) | gibt die Länge einer gegebenen Geometrie (Linie oder Polygongrenze) zurück | = 275.3 |
| perimeter | gibt die Umfangslänge eines Polygon-Features zurück | = 490.6 |
| ST_Perimeter(geometry) | gibt den Umfang einer Geometrie zurück, ähnlich wie perimeter() aber folgt der PostGIS-Standard-Benennung | = 490.6 |
Metrische Pufferfunktion
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| buffer(geometry, distance) | erstellt einen Polygon-Puffer um eine Geometrie in der angegebenen Entfernung (in Layer-Einheiten, z.B. Meter) | = Polygon, das eine 100 m Pufferfläche repräsentiert |
Geometrie-Unäre Funktionen
| Ausdruck | Funktion | Beispiel |
|---|---|---|
| centroid(geometry) | gibt den Mittelpunkt (geometrische Mitte) eines Features zurück | = Point(13.41, 52.52) |
| ST_Centroid(geometry) | dasselbe wie centroid(), folgt der PostGIS-Benennungskonvention | = Point(13.41, 52.52) |
| convex_hull(geometry) | erstellt das kleinste konvexe Polygon, das alle Teile einer Geometrie umschließt | = Polygon(...) |
| ST_ConvexHull(geometry) | dasselbe wie convex_hull(), mit PostGIS-Syntax | = Polygon(...) |
| envelope(geometry) | gibt das minimale Begrenzungsrechteck einer Geometrie zurück | = Polygon((xmin, ymin), (xmax, ymax)) |
| ST_Envelope(geometry) | dasselbe wie envelope(), in PostGIS-Form | = Polygon(...) |
| make_valid(geometry) | repariert ungültige Geometrien (z.B. Selbstüberschneidungen, Lücken) | = Polygon(...) |
| ST_MakeValid(geometry) | dasselbe wie make_valid(), PostGIS-Version | = Polygon(...) |
| is_empty(geometry) | gibt TRUE zurück wenn Geometrie keinen räumlichen Inhalt hat | = FALSE |
| ST_IsEmpty(geometry) | dasselbe wie is_empty(), PostGIS-Form | = FALSE |
| is_valid(geometry) | gibt TRUE zurück wenn Geometrie gültig ist | = TRUE |
| ST_IsValid(geometry) | dasselbe wie is_valid(), PostGIS-Version | = TRUE |
| x(geometry) | gibt die X-Koordinate einer Punkt-Geometrie zurück | = 13.405 |
| ST_X(geometry) | dasselbe wie x(), PostGIS-Version | = 13.405 |
| y(geometry) | gibt die Y-Koordinate einer Punkt-Geometrie zurück | = 52.520 |
| ST_Y(geometry) | dasselbe wie y(), PostGIS-Version | = 52.520 |
| xmin(geometry) | gibt die minimale X-Koordinate (linke Grenze) einer Geometrie zurück | = 13.30 |
| ST_XMin(geometry) | dasselbe wie xmin(), PostGIS-Syntax | = 13.30 |
| xmax(geometry) | gibt die maximale X-Koordinate (rechte Grenze) einer Geometrie zurück | = 13.50 |
| ST_XMax(geometry) | dasselbe wie xmax(), PostGIS-Syntax | = 13.50 |
| ymin(geometry) | gibt die minimale Y-Koordinate (untere Grenze) einer Geometrie zurück | = 52.45 |
| ST_YMin(geometry) | dasselbe wie ymin(), PostGIS-Version | = 52.45 |
| ymax(geometry) | gibt die maximale Y-Koordinate (obere Grenze) einer Geometrie zurück | = 52.55 |
| ST_YMax(geometry) | dasselbe wie ymax(), PostGIS-Version | = 52.55 |
Hier sind einige Beispiele für kombinierte Ausdrücke für komplexere Berechnungen: https://github.com/plan4better/goat/blob/main/apps/core/src/core/expression_converter.py
Weitere Informationen finden Sie in der QGIS-Dokumentation.