` `
Based on layer data and prebuilt or user defined functions, Expressions offer a powerful way to manipulate attribute value, geometry and variables in order to dynamically change the geometry style, the content or position of the label, the value for diagram, the height of a composer item, select some features, create virtual field ...
Belangrijkste dialoogvenster om expressies te bouwen, de Expressie string-bouwer is beschikbaar in vele delen van QGIS en is in het bijzonder toegankelijk bij:
objecten selecteren met het gereedschap :sup:`Selecteer object m.b.v. een reguliere expressie...`l;
attributen bewerken met bijv. het gereedschap Veldberekening;
bouwen van een symboollaag Geometrie-generator ;
zelf enige geoprocessing uitvoeren.
Het dialoogvenster Expressie-string bouwer biedt toegang tot de:
tab Expressie die, dankzij een lijst met vooraf gedefinieerde functies, helpt bij het schrijven en controleren van de te gebruiken expressie;
tab Functiebewerker die helpt om de lijst met functies uit te breiden door aangepaste te maken.
Enkele gebruiksgevallen van expressies:
Vanuit Veldberekening, bereken een veld “pop_density” met behulp van bestaande velden “total_pop” en “area_km2”:
"total_pop" / "area_km2"
Werk het veld “density_level” bij met categorieën overeenkomstig de waarden van “pop_density”:
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
Pas een stijl met categorieën toe op alle objecten overeenkomstig het feit of hun gemiddelde huizenprijs minder of meer is dan €10.000 per vierkante meter:
"price_m2" > 10000
Selecteer, met behulp van het gereedschap “Selecteer objecten m.b.v. regulier expressie...”, alle objecten die gebieden vertegenwoordigen van “Dicht bevolkt” en waarvan de gemiddelde huizenprijs hoger is dan €10.000 per vierkante meter:
"density_level" = 'High population density' and "price_m2" > 10000
Op dezelfde wijze kan de vorige expressie ook worden gebruikt om te definiëren welke objecten zouden moeten worden gelabeld of moeten worden weergegeven op de kaart.
Expressies gebruiken biedt u heel veel mogelijkheden.
Tip
Benoemde parameters gebruiken om het lezen van de expressie te verbeteren
Sommige functies vereisen dat veel parameters moeten worden ingesteld. Het programma voor expressies ondersteunt het gebruiken van benoemde parameters. Dit betekent dat in plaats van de cryptische expressie: clamp(1, 2, 9) te schrijven u: clamp( min:=1, value:=2, max:=9) kunt gebruiken. Deze wijziging maakt het ook mogelijk argumenten te wisselen, bijv: clamp( value:=2, max:=9, min:=1). Het gebruiken van benoemde parameters helpt verduidelijken waar de argumenten voor een functie voor een expressie naar verwijzen, wat nuttig is als u probeert een expressie te interpreteren op een latere datum!
The Expression tab provides the main interface to write expressions using functions, layer’s fields and values. It contains widgets to:
Deze groep bevat operatoren (bijv. +, -, *). Onthoud dat voor de meeste wiskundige functies hieronder, als één van de invoeren NULL is, het resultaat NULL is.
Functie |
Omschrijving |
---|---|
a + b | Optellen van twee waarden (a plus b) |
a - b | Aftrekken van twee waarden (a min b) |
a * b | Vermenigvuldigen van twee waarden (a vermenigvuldigd met b) |
a / b | Delen van twee waarden (a gedeeld door b) |
a % b | Restant van deling van a door b (bijv. 7 % 2 = 1, of 2 past drie keer in 7 met restant 1) |
a ^ b | Macht van twee waarden (bijvoorbeeld 2^2=4 of 2^3=8) |
a < b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant kleiner is dan de waarde aan de rechterkant (a is kleiner dan b) |
a <= b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant kleiner of gelijk is aan de waarde aan de rechterkant |
a <> b | Vergelijkt twee waarden en evalueert naar 1 als zij niet aan elkaar gelijk zijn |
a = b | Vergelijkt twee waarden en evalueert naar 1 als zij aan elkaar gelijk zijn |
a != b | a en b zijn niet aan elkaar gelijk |
a > b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant groter is dan de waarde aan de rechterkant (a is groter dan b) |
a >= b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant groter of gelijk is aan de waarde aan de rechterkant. |
a ~ b | a komt overeen met de reguliere expressie b |
|| | Voegt twee waarden samen in één tekenreeks. Als één van de waarden NULL is, zal het resultaat NULL zijn |
‘\n’ | Voegt een nieuwe regel in in een tekenreeks |
LIKE | Geeft 1 terug als de eerste parameter overeenkomt met het opgegeven patroon |
ILIKE | Geeft 1 terug als de eerste parameter, hoofdletter ongevoelig, overeenkomt met het opgegeven patroon. (LIKE mag in plaats van ILIKE worden gebruikt om de overeenkomst hoofdlettergevoelig te maken) |
a IS b | Test of twee waarden identiek zijn. Geeft 1 terug als a hetzelfde is als b |
a OR b | Geeft 1 terug als voorwaarde a of voorwaarde b waar is |
a AND b | Geeft 1 terug als voorwaarden a en b waar zijn |
NOT | Draait een voorwaarde om |
column name “Kolomnaam” |
Waarde van het veld Kolomnaam, zorg er voor niet te worden verward met een enkel aanhalingsteken, zie hieronder |
‘string’ | een waarde tekenreeks, zorg er voor niet te worden verward met dubbele aanhalingstekens, zie hierboven |
NULL | waarde null |
a IS NULL | a heeft geen waarde |
a IS NOT NULL | a heeft een waarde |
a IN (waarde[,waarde]) |
a staat tussen de vermelde waarden |
a NOT IN (waarde[,waarde]) |
a staat niet tussen de vermelde waarden |
Notitie
Over het samenvoegen van velden
U kunt tekenreeksen samenvoegen met behulp van ofwel || of +. Dat laatste betekent ook het optellen van een expressie. Dus als u een integer hebt (veld of numerieke waarde) kan dit gevoelig voor fouten zijn. In dit geval zou u || moeten gebruiken. Als u twee tekenreeksen samenvoegt kunt u beide gebruiken.
Enkele voorbeelden:
Voegt een tekenreeks en een waarde uit een naam van een kolom samen:
'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" || ')'
Test of het attribuutveld “description” begint met de tekenreeks ‘Hello’ in de waarde (let op de positie van het teken %):
"description" LIKE 'Hello%'
Deze groep bevat functies waarmee controles van voorwaarden kunnen worden opgenomen in een expressie.
Functie |
Omschrijving |
---|---|
CASE WHEN ... THEN ... END | Evalueert een expressie en geeft een resultaat terug indien waar. U mag meerdere voorwaarden testen |
CASE WHEN ... THEN ... ELSE ... END | Evalueert een expressie en geeft een andere resultaat terug als het waar of onwaar is. U mag meerdere voorwaarden testen |
coalesce | Geeft de eerste waarde terug die niet NULL is uit de lijst van de expressie |
if | Test een voorwaarde en geeft een verschillend resultaat terug, afhankelijk van de controle van de voorwaarde |
regexp_match | Returns true if any part of a string matches the supplied regular expression |
Enkele voorbeelden:
Geeft een waarde terug als de eerste voorwaarde waar is, anders een andere waarde:
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
Deze groep bevat wiskundige functies (bijv. vierkantswortel, sin en cos).
Functie |
Omschrijving |
---|---|
abs | Geeft de absolute waarde van een getal terug |
acos | Geeft de inverse cosinus van een waarde in radialen terug |
asin | Geeft de inverse sinus van een waarde in radialen terug |
atan | Returns the inverse tangent of a value in radians |
atan2(y,x) | Returns the inverse tangent of y/x by using the signs of the two arguments to determine the quadrant of the result |
azimuth(a,b) | Geeft de op het Noorden gebaseerde azimut terug als de hoek in radialen, met de klok mee gemeten van de verticaal van punt a naar punt b |
ceil | Rondt een getal naar boven af |
clamp | Beperkt een invoerwaarde tot een gespecificeerd bereik |
cos | Geeft de cosinus van een waarde in radialen terug |
degrees | Converteert van radialen naar graden |
exp | Geeft de exponentieel van een waarde terug |
floor | Rondt een getal naar beneden af |
ln | Geeft de natuurlijke logaritme van de opgegeven expressie terug |
log | Geeft de waarde van de logaritme van de opgegeven waarde en basis terug |
log10 | Geeft de waarde van de logaritme basis 10 van de opgegeven expressie terug |
max | Returns the largest value in a set of values |
min | Returns the smallest value in a set of values |
pi | Geeft de waarde Pi terug voor berekeningen |
radians | Converteert van graden naar radialen. |
rand | Geeft een willekeurig geheel getal terug binnen het bereik dat is gespecificeerd door de argumenten minimum en maximum (inclusief) |
randf | Geeft een willekeurig getal float terug binnen het bereik dat is gespecificeerd door de argumenten minimum en maximum (inclusief) |
round | Rondt een getal af naar het aantal plaatsen achter de komma |
scale_exp | Transformeert een opgegeven waarde uit een invoerdomein naar een uitvoerbereik met behulp van lineaire interpolatie |
scale_linear | Transformeert een opgegeven waarde uit een invoerdomein naar een uitvoerbereik met behulp van lineaire interpolatie |
sin | Geeft de sinus van een hoek terug |
sqrt | Geeft de vierkantswortel van een waarde terug |
tan | Geeft de tangens van een hoek terug |
Deze groep bevat functies die waarden bij elkaar optellen van lagen en velden.
Functie |
Omschrijving |
---|---|
aggregate | Geeft een samengestelde waarde terug die is berekend met behulp van objecten uit een andere laag |
concatenate | Geeft alle samengestelde tekenreeksen terug uit een veld of expressie, samengevoegd door een scheidingsteken. |
count | Geeft de telling van het aantal overeenkomende objecten terug |
count_distinct | Geeft de telling van de afzonderlijke waarden terug |
count_missing | Geeft de telling van de ontbrekende (null)-waarden terug |
iqr | Geeft het berekende bereik voor het interkwartiel terug uit een veld of uitdrukking |
majority | Geeft de samengestelde meerderheid van waarden (meest terugkerende waarde) terug uit een veld of expressie |
max_length | Geeft de maximale lengte van tekenreeksen terug uit een veld of expressie |
maximum | Geeft de samengestelde maximale waarde terug uit een veld of expressie |
mean | Geeft de samengestelde gemiddelde waarde terug uit een veld of expressie |
median | Geeft de samengestelde waarde mediaan terug uit een veld of expressie |
min_length | Geeft de minimale lengte van tekenreeksen terug uit een veld of expressie |
minimum | Geeft de samengestelde minimale waarde terug uit een veld of expressie |
minority | Geeft de samengestelde minderheid van waarden (minst terugkerende waarde) terug uit een veld of expressie |
q1 | Geeft het berekende eerste kwartiel terug uit een veld of expressie |
q3 | Geeft het berekende derde kwartiel terug uit een veld of expressie |
range | Geeft het samengestelde bereik van waarden (maximum - minimum) terug uit een veld of expressie |
relation_aggregate | Geeft een berekende samengestelde waarde terug met behulp van alle overeenkomende kind-objecten uit een laag-relatie |
stdev | Geeft de samengestelde waarde voor standaardafwijking terug uit een veld of expressie |
sum | Geeft de samengestelde opgetelde waarde terug uit een veld of expressie |
Voorbeelden:
Geeft het maximum terug van het veld “passengers” uit objecten in de laag, gegroepeerd op het veld “station_class”:
maximum("passengers", group_by:="station_class")
Berekent het totale aantal passagiers voor de stations binnen het huidige object van de atlas:
aggregate('rail_stations','sum',"passengers",
intersects(@atlas_geometry, $geometry))
Geeft het gemiddelde terug van het veld “field_from_related_table” voor alle overeenkomende kind-objecten met behulp van de relatie ‘my_relation’ uit de laag:
aggregate_relation('my_relation', 'mean', "field_from_related_table")
of:
aggregate_relation(relation:='my_relation', calculation := 'mean',
expression := "field_from_related_table")
Deze groep bevat functies waarmee u kleuren kunt bewerken.
Functie |
Omschrijving |
---|---|
color_cmyk | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten cyan, magenta, yellow en black |
color_cmyka | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten cyan, magenta, yellow, black en alfa (transparantie) |
color_hsl | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging en helderheid ervan |
color_hsla | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging, helderheid en alfa (transparantie) |
color_hsv | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging en waarde ervan |
color_hsva | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging, waarde en alfa (transparantie) ervan |
color_part | Geeft een specifieke component uit een tekenreeks voor een kleur terug, bijv, de rode component of alfa-component |
color_rgb | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten rood, groen en blauw |
color_rgba | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten rood, groen en blauw en alfa (transparantie) |
darker | Geeft een donkere (of lichtere) kleurenreeks terug |
lighter | Geeft een lichtere (of donkerder) kleurenreeks terug |
project_color | Geeft een kleur terug uit een kleurenschema van een project. |
ramp_color | Geeft een kleur vanuit een kleurenbalk terug in de weergave van een tekenreeks |
set_color_part | Stelt een specifieke kleurcomponent in voor een tekenreeks voor een kleur, bijv, de rode component of alfa-component |
Deze groep bevat functies om een gegevenstype te converteren naar een ander type (bijv string naar integer, integer naar string).
Functie |
Omschrijving |
---|---|
to_date | Converteert een tekenreeks naar een object date |
to_datetime | Converteert een tekenreeks naar een object datetime |
to_int | Converteert een tekenreeks naar een geheel getal |
to_interval | Converteert een tekenreeks naar een type interval (kan worden gebruikt om dagen, uren maanden etc uit een datum te halen) |
to_real | Converteert een tekenreeks naar een getal real |
to_string | Converteert een getal naar een tekenreeks |
to_time | Converteert een tekenreeks naar een object time |
Deze groep bevat functies die door de gebruiker zijn gedefinieerd. Bekijk Functiebewerker voor meer details.
Deze groep bevat functies voor het behandelen van gegevens met betrekking tot datum en tijd.
Functie |
Omschrijving |
---|---|
age | Geeft als een interval het verschil terug tussen twee datums of datetimes |
day | Neemt de dag uit een datum of datetime, of het aantal dagen vanaf een interval. |
day_of_week | Geeft een getal terug dat overeenkomt met de dag van de week voor een opgegeven datum of datetime |
hour | Neemt het gedeelte uur uit een datetime of time, of het aantal uren vanaf een interval |
minute | Neemt het gedeelte minuten uit een datetime of time, of het aantal minuten vanaf een interval |
month | Neemt het gedeelte maand uit een datum of datetime, of het aantal maanden vanaf een interval |
now | Geeft de huidige datum en tijd terug |
second | Neemt het gedeelte seconde uit een datetime of time, of het aantal seconden vanaf een interval |
week | Neemt het weeknummer uit een datum of datetime, of het aantal weken vanaf een interval |
year | Neemt het gedeelte jaar uit een datum of datetime, of het aantal jaren vanaf een interval. |
Deze groep deelt ook verscheidene functies met de groepen Functies Conversies ( to_date, to_time, to_datetime, to_interval) en Tekstfuncties (format_date).
Enkele voorbeelden:
Haal de maand en het jaar op van vandaag in de indeling “month_number/year”:
format_date(now(),'MM/yyyy')
-- Returns '03/2017'
Naast deze functies, aftrekken van datums, datum/tijden of tijden met behulp van de operator - (minus) zal een interval teruggeven.
Optellen of aftrekken van een interval bij datums, datum/tijden of tijden, met behulp van de operatoren + (plus) en - (minus), zal een datetime teruggeven.
Haal het aantal dagen op tot de uitgave van QGIS 3.0:
to_date('2017-09-29') - to_date(now())
-- Returns <interval: 203 days>
Hetzelfde met tijd:
to_datetime('2017-09-29 12:00:00') - to_datetime(now())
-- Returns <interval: 202.49 days>
Haal de datum/tijd op tot 100 dagen vanaf nu:
now() + to_interval('100 days')
-- Returns <datetime: 2017-06-18 01:00:00>
Notitie
Datum en datum/tijd en intervallen opslaan in velden
The ability to store date, time and datetime values directly on fields may depend on the data source’s provider (e.g., shapefiles accept date format, but not datetime or time format). The following are some suggestions to overcame this limitation.
date, Datetime and time kunnen worden opgeslagen in velden type tekst na het gebruiken van de functie to_format().
Intervals kunnen worden opgeslagen in velden type integer of decimal na het gebruiken van een van de functies voor het uitnemen van de datum (bijv., day() om de interval uitgedrukt te krijgen in dagen)
Bevat een lijst met velden uit de laag.
Generally, you can use the various fields, values and functions to construct the calculation expression, or you can just type it into the box.
To display the values of a field, you just click on the appropriate field and choose between Load top 10 unique values and Load all unique values. On the right side, the Field Values list opens with the unique values. At the top of the list, a search box helps filtering the values. To add a value to the expression you are writing, double click its name in the list.
Sample values can also be accessed via right-click. Select the field name from the list, then right-click to access a context menu with options to load sample values from the selected field.
Fields name should be double-quoted in the expression. Values or string should be simple-quoted.
Deze groep bevat functies voor fuzzy vergelijkingen tussen waarden.
Functie |
Omschrijving |
---|---|
hamming_distance | Geeft het aantal tekens terug op overeenkomende posities in de tekenreeksen voor invoer waar de tekens verschillend zijn |
levensheim | Geeft het minimale aantal bewerkingen van tekens terug (invoegingen, verwijderingen of vervangingen) vereist om de ene tekenreeks te vervangen door de andere. Meet de overeenkomst tussen twee tekenreeksen |
longest_common_substring | Geeft de langste overeenkomende subtekenreeks terug uit twee tekenreeksen |
soundex | Geeft de weergave in Soundex terug van een tekenreeks |
Deze groep bevat de algemeen gebruikte functies.
Functie |
Omschrijving |
---|---|
eval | Evalueert een expressie die wordt doorgegeven in een tekenreeks. Nuttig om dynamische parameters uit te breiden die zijn doorgegeven als contextvariabelen of velden |
layer_property | Geeft een eigenschap van een laag terug of een waarde van de metadata ervan. Het kan zijn de laagnaam, CRS, type geometrie, aantal objecten... |
var | Geeft de opgeslagen waarde uit een gespecificeerde variabele terug. Bekijk de variabele functies hieronder |
De groep bevat functies die werken voor geometrie-objecten (bijv. lengte, oppervlakte).
Functie |
Omschrijving |
---|---|
$area | Geeft het gebied van het huidige object terug |
$geometry | Geeft de geometrie van het huidige object terug (kan worden gebruikt bij verwerken met andere functies) |
$length | Geeft de lengte van het huidige lijnobject terug |
$perimeter | Geeft de lengte van de rand terug van het huidige polygoonobject |
$x | Returns the x coordinate of the current feature |
$x_at(n) | Returns the x coordinate of the nth node of the current feature’s geometry |
$y | Returns the y coordinate of the current feature |
$y_at(n) | Returns the y coordinate of the nth node of the current feature’s geometry |
angle_at_vertex | Geeft de hoek bisector hoek (gemiddelde hoek) terug van de geometrie voor een gespecificeerd punt op een geometrie lijnstring. Hoeken zijn in graden vanaf Noord met de klok mee. |
area | Geeft het gebied terug van een geometrie polygoonobject. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
azimuth | Geeft de op het Noorden gebaseerde azimut terug als de hoek in radialen, met de klok mee gemeten van de verticaal van punt_a naar punt_b. |
boundary | Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the geometry). |
bounds | Returns a geometry which represents the bounding box of an input geometry. Calculations are in the Spatial Reference System of this geometry |
bounds_height | Geeft de hoogte van het begrenzingsvak van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
bounds_width | Geeft de breedte van het begrenzingsvak van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
buffer | Returns a geometry that represents all points whose distance from this geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this geometry |
centroid | Returns the geometric center of a geometry |
closest_point | Geeft het punt terug op een geometrie dat het dichtst bij een tweede geometrie ligt |
combine | Geeft de combinatie van twee geometrieën terug |
contains(a,b) | Geeft 1 (true) terug als en alleen als er geen punten van geometrie b in het exterieur van geometrie a liggen, en tenminste één punt van het interieur van b in het interieur van a ligt. |
convex_hull | Returns the convex hull of a geometry (this represents the minimum convex geometry that encloses all geometries within the set) |
crosses | Geeft 1 (true) terug als de opgegeven geometrieën enkele, maar niet alle, punten in het interieur gemeenschappelijk hebben |
difference(a,b) | Returns a geometry that represents that part of geometry a that does not intersect with geometry b |
disjoint | Geeft 1 (true) terug als de geometrieën geen enkele ruimte met elkaar delen |
distance | Geeft de minimum afstand (gebaseerd op ruimtelijke verwijzing) tussen twee geometrieën in geprojecteerde eenheden terug |
distance_to_vertex | Geeft de afstand terug langs de geometrie tot een bepaald punt |
end_point | Returns the last node from a geometry |
exterior_ring | Geeft een lijn terug die de buitenste ring voorstelt van een geometrie polygoon. Als de geometrie geen polygoon is zal het resultaat null zijn |
extrude(geom,x,y) | Returns an extruded version of the input (Multi-) Curve or (Multi-)Linestring geometry with an extension specified by x and y |
geom_from_gml | Geeft een geometrie terug uit een GML-weergave van geometrie |
geom_from_wkt | Geeft een geometrie terug, gemaakt uit een Well-Known Text (WKT)-weergave |
geom_to_wkt | Geeft de weergave in Well-Known Text (WKT) van de geometrie terug zonder de metadata voor het SRID |
geometry | Geeft de geometrie van een object terug |
geometry_n | Geeft de n-de geometrie terug uit een verzameling geometrieën, of null als de invoergeometrie geen verzameling is. |
interior_ring_n | Geeft de n-de binnenste ring terug uit een geometrie polygoon, of null als de invoergeometrie geen polygoon is. |
intersection | Returns a geometry that represents the shared portion of two geometries |
intersects | Test of een geometrie een andere kruist. Geeft 1 (true) terug als de geometrieën elkaar ruimtelijk kruisen (een stukje ruimte met elkaar delen) en 0 als zij dat niet doen. |
intersects_bbox | Test of een begrenzingsvak van een geometrie het begrenzingsvak van een andere geometrie overlapt. Geeft 1 (true) terug als de geometrieën ruimtelijk kruisen (een stukje ruimte met elkaar delen) met hun begrenzingsvak en 0 als zij dat niet doen |
is_closed | Geeft true terug als een lijn gesloten is (begin- en eindpunt zijn hetzelfde), false als een lijn niet gesloten is en null als de geometrie geen lijn is |
length | Geeft de lengte van een object lijngeometrie terug (of de lengte van een tekenreeks) |
line_interpolate_angle | Geeft de hoek terug parallel aan de geometrie op een gespecificeerde afstand langs een geometrie lijnstring. Hoeken zijn in graden vanaf Noord met de klok mee. |
line_interpolate_point | Returns the point interpolated by a specified distance along a linestring geometry. |
line_locate_point | Geeft de afstand langs een lijnstring terug die overeenkomt met het dichtstbijzijnde punt die de lijnstring komt tot nabij een gespecificeerde geometrie punt. |
line_merge | Geeft een geometrie LineString of MultiLineString terug, waar enige verbonden LineStrings van de geometrie voor de invoer is samengevoegd naar één enkele lijnstring. |
m | Returns the m value of a point geometry |
make_line | Maakt een lijngeometrie van een verzameling puntgeometrieën |
make_point(x,y,z,m) | Returns a point geometry from x and y (and optional z or m) values |
make_point_m(x,y,m) | Returns a point geometry from x and y coordinates and m values |
make_polygon | Maakt een polygoongeometrie van een buitenring- en optioneel een verzameling van binnenringgeometrieën |
nodes_to_points | Returns a multipoint geometry consisting of every node in the input geometry |
num_geometries | Geeft het aantal geometrieën terug uit een verzameling geometrieën, of null als de invoergeometrie geen verzameling is |
num_interior_rings | Geeft het aantal binnenste ringen terug uit een polygoon of verzameling van geometrie, of null als de invoergeometrie geen polygoon of verzameling van geometrie is |
num_points | Geeft het aantal punten in een geometrie terug |
num_rings | Geeft het aantal ringen (inclusief buitenste ringen) terug uit een polygoon of verzameling van geometrie, of null als de invoergeometrie geen polygoon of verzameling is |
order_parts | Sorteert de delen van een MultiGeometrie op opgegeven criteria |
overlaps | Test of een geometrie een andere overlapt. Geeft 1 (true) terug als de geometrieën ruimte delen, van dezelfde dimensie zijn, maar niet volledig door elkaar worden omvat |
perimeter | Geeft de perimeter terug van een geometrie polygoonobject. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
point_n | Returns a specific node from a geometry |
point_on_surface | Returns a point guaranteed to lie on the surface of a geometry |
project | Returns a point projected from a start point using a distance and bearing (azimuth) in radians |
relate | Test of geeft de weergave Dimensional Extended 9 Intersection Model (DE-9IM) van de relatie tussen twee geometrieën weer |
reverse | Reverses the direction of a line string by reversing the order of its vertices |
segments_to_lines | Returns a multi line geometry consisting of a line for every segment in the input geometry |
shortest_line | Geeft de kortste lijn terug die twee geometrieën met elkaar verbindt. De resulterende lijn zal beginnen op geometrie 1 en eindigen op geometrie 2 |
start_point | Returns the first node from a geometry |
sym_difference | Returns a geometry that represents the portions of two geometries that do not intersect |
touches | Test of een geometrie een andere raakt. Geeft 1 (true) terug als de geometrieën tenminste één gemeenschappelijk punt hebben, maar hun interieurs kruisen niet |
transform | Returns the geometry transformed from the source CRS to the destination CRS |
translate | Returns a translated version of a geometry. Calculations are in the Spatial Reference System of this geometry |
union | Geeft een geometrie terug die de verenigde verzameling van punten weergeeft van de geometrieën |
within (a,b) | Test of een geometrie in een andere ligt. Geeft 1 (true) terug als geometrie a volledig binnen geometrie b ligt |
x | Returns the x coordinate of a point geometry, or the x coordinate of the centroid for a non-point geometry |
x_min | Returns the minimum x coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry |
x_max | Returns the maximum x coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry |
y | Returns the y coordinate of a point geometry, or the y coordinate of the centroid for a non-point geometry |
y_min | Returns the minimum y coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry |
y_max | Returns the maximum y coordinate of a geometry. Calculations are in the Spatial Reference System of this geometry |
z | Returns the z coordinate of a point geometry |
Enkele voorbeelden:
U kunt de huidige geometrie bewerken met de variabele $geometry om een buffer te maken of het punt op de oppervlakte te krijgen:
buffer( $geometry, 10 )
point_on_surface( $geometry )
Return the x coordinate of the current feature’s centroid:
x( $geometry )
Stuur een waarde terug overeenkomstig het gebied van het object:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
Deze groep bevat functies voor het bewerken van unieke record-ID’s.
Functie |
Omschrijving |
---|---|
$currentfeature | Geeft het huidige object weer dat wordt geëvalueerd. Dit kan worden gebruikt met de functie ‘attribute’ om waarden van attributen van het huidige object te evalueren. |
$id | Geeft het object-ID van de huidige rij terug |
$map | Returns the id of the current map item if the map is being drawn in a composition, or “canvas” if the map is being drawn within the main QGIS window |
$rownum | Returns the number of the current row |
$scale | Returns the current scale of the map canvas |
attribute | Geeft de waarde van een gespecificeerd attribuut van een object terug |
get_feature | Geeft het eerste object uit een laag terug dat voldoet aan een bepaalde opgegeven waarde voor een attribuut |
uuid | Genereert een Universally Unique Identifier (UUID) voor elke rij. Elke UUID is 38 tekens lang. |
Enkele voorbeelden:
Geeft het eerste object terug uit laag “LaagA” waarvan het veld “id” dezelfde waarde heeft als het veld “name” van het huidige object (een soort samenvoeging):
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Bereken het gebied van het samengevoegde object uit het vorige voorbeeld:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
Deze groep bevat functies die werken op tekst (bijv. vervangen, omzetten naar hoofdletters).
Functie |
Omschrijving |
---|---|
char | Geeft het teken terug dat is geassocieerd met een code voor Unicode |
concat | Voegt verscheidene tekenreeksen samen tot één |
format | Maakt een tekenreeks op met behulp van de opgegeven argumenten |
format_date | maakt een type datum of tekenreeks op in een aangepaste indeling voor een tekenreeks |
format_number | Geeft een getal terug dat is opgemaakt met het lokale scheidingsteken voor duizendtallen (breekt ook het getal af tot het opgegeven aantal plaatsen achter de komma) |
left(string, n) | Geeft een subtekenreeks terug die de n meest links gelegen tekens van de tekenreeks bevat |
length | Geeft de lengte van een tekenreeks terug (of de lengte van een object lijngeometrie) |
lower | converteert een tekenreeks naar kleine letters |
lpad | Returns a string with supplied width padded using the fill character |
regexp_replace | Geeft een tekenreeks terug waarin de opgegeven reguliere expressie is vervangen |
regexp_substr | Geeft het gedeelte van een tekenreeks terug dat overeenkomt met een opgegeven reguliere expressie |
replace | Returns a string with the supplied string replaced |
right(string, n) | Geeft een subtekenreeks terug die de n meest rechts gelegen tekens van de tekenreeks bevat |
rpad | Returns a string with supplied width padded using the fill character |
strpos | Returns the index of a regular expression in a string |
substr | Geeft een deel van een tekenreeks terug |
title | Converteert alle woorden van een tekenreeks naar titels (alle woorden in kleine letters met hoofdletter aan het begin) |
trim | Verwijdert alle voor- en achterliggende witruimte (spaties, tabs, etc) uit een tekenreeks |
upper | Converteert een tekenreeks naar hoofdletters |
wordwrap | Geeft een tekenreeks terug die is afgebroken tot een maximum/minimum aantal tekens |
This group contains recently used functions. Any expression used in the Expression dialog is added to the list, sorted from the more recent to the less one. This helps to quickly retrieve any previous expression.
Deze groep bevat dynamische variabelen gerelateerd aan de toepassing, het projectbestand en andere instellingen. Het betekent dat sommige functies niet beschikbaar zouden kunnen zijn overeenkomstig de context:
in het dialoogvenster Selecteer object m.b.v. een reguliere expressie
in het dialoogvenster Laageigenschappen
Om deze functies te gebruiken in een expressie zouden zij moeten worden voorafgegaan door het teken @ (bijv. @row_number). Betrokken zijn:
Functie |
Omschrijving |
---|---|
atlas_feature | Geeft het huidige object in atlas terug (als Atlas-object). |
atlas_featureid | Geeft het huidige Atlas object-ID terug |
atlas_featurenumber | Returns the number of pages in composition |
atlas_filename | Geeft de huidige bestandsnaam voor Atlas terug |
atlas_geometry | Geeft de huidige geometrie voor het Atlas-object terug |
atlas_pagename | Geeft de huidige paginanaam voor Atlas terug |
atlas_totalfeatures | Geeft het totale aantal objecten in de atlas terug |
grid_axis | Huidige as voor annotatie raster (bijv, ‘x’ voor longitude, ‘y’ voor latitude). |
grid_number | Geeft de huidige waarde annotatie raster terug |
item_id | Returns the composer item user ID (not necessarily unique) |
item_uuid | Returns the composer item unique ID |
layer_id | Geeft ID van huidige laag terug |
layer_name | Geeft de naam van de huidige laag terug |
layout_dpi | Geeft de resolutie van de lay-out terug (DPI) |
layout_numpages | Returns the number of pages in the composition |
layout_pageheight | Returns the composition height in mm |
layout_pagewidth | Returns the composition width in mm |
map_extent_center | Geeft het puntobject in het midden van het kaartvenster terug |
map_extent_height | Geeft de huidige hoogte van de kaart terug |
kaart_bereik_breedte |
Geeft de huidige breedte van de kaart terug |
map_id | Returns the ID of current map destination. This will be ‘canvas’ for canvas renders, and the item ID for composer map renders |
map_rotation | Geeft de huidige rotatie van de kaart terug |
map_scale | Geeft de huidige schaal van de kaart terug |
project_filename | Returns the filename of current project |
project_folder | Returns the folder for current project |
project_path | Returns the full path (including file name) of current project |
project_title | Geeft de titel van het huidige project terug |
qgis_os_name | Geeft de naam van het huidige besturingssysteem terug, bijv ‘Windows’, ‘Linux’ of ‘OSX’ |
qgis_platform | Geeft het platform voor QGIS terug, bijv. ‘desktop’ of ‘server’ |
qgis_release_name | Geeft de huidige naam van de uitgave voor QGIS terug |
qgis_version | Geeft de tekenreeks voor de versie van QGIS terug |
qgis_version_no | Geeft het huidige versienummer voor QGIS terug |
symbol_angle | Geeft de hoek van symbool terug die is gebruikt om het object te renderen (alleen geldig voor markeringssymbolen) |
symbol_color | Geeft de kleur van het symbool terug dat is gebruikt voor het renderen van het object |
user_account_name | Geeft de accountnaam van de gebruiker voor het huidige besturingssysteem terug |
user_full_name | Geeft de gebruikersnaam van gebruiker voor het huidige besturingssysteem |
row_number | Slaat het nummer van de huidige rij op |
value | Geeft de huidige waarde terug |
With the Function Editor, you are able to define your own Python custom functions in a comfortable way.
The function editor will create new Python files in .qgis2\python\expressions folder and will auto load all functions defined when starting QGIS. Be aware that new functions are only saved in the expressions folder and not in the project file. If you have a project that uses one of your custom functions you will need to also share the .py file in the expressions folder.
Hier is een kort voorbeeld over hoe u uw eigen aangepaste functies maakt:
@qgsfunction(args="auto", group='Custom')
def myfunc(value1, value2, feature, parent):
pass
The short example creates a function myfunc that will give you a function with two values. When using the args='auto' function argument the number of function arguments required will be calculated by the number of arguments the function has been defined with in Python (minus 2 - feature, and parent).
This function then can be used with the following expression:
myfunc('test1', 'test2')
Your function will be implemented in the Custom functions group of the Expression tab after using the Run Script button.
Meer informatie over het maken van code voor Python kan worden gevonden in het PyQGIS Developer Cookbook.
The function editor is not only limited to working with the field calculator, it can be found whenever you work with expressions.