Outdated version of the documentation. Find the latest one here.

` `

Expressies

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 ...

Expressie-string bouwer

Belangrijkste dialoogvenster om expressies te bouwen, de Expressie string-bouwer is beschikbaar in vele delen van QGIS en is in het bijzonder toegankelijk bij:

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!

Lijst van functies

The Expression tab provides the main interface to write expressions using functions, layer’s fields and values. It contains widgets to:

  • type expressions using functions and/or fields. At the bottom of the dialog, is displayed the result of the expression evaluated on the first feature of the layer.
  • select the appropriate function among a list, organized in groups. A search box is available to filter the list and quickly find a particular function or field. Double-clicking on the item’s name adds it to the expression being written.
  • display help for each function selected. When a field is selected, this widget shows a sample of its values. Double-clicking a value adds it to the expression.
../../../_images/function_list.png

De tab Expressie

Operatoren

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

Conditionals

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

Wiskundige functies

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

Functies Samenvoegen

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")

Kleurfuncties

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

Functies Conversies

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

Aangepaste functies

Deze groep bevat functies die door de gebruiker zijn gedefinieerd. Bekijk Functiebewerker voor meer details.

Datum en tijd functies

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)

Velden en waarden

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.

Functies voor fuzzy overeenkomsten

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

Algemene functies

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

Geometrie functies

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

Record Functions

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

Tekstfuncties

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

Functies Recent

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.

Functies Variabelen

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 expressionSelect Selecteer object m.b.v. een reguliere expressie

  • in het dialoogvenster calculateField Veldberekening

  • in het dialoogvenster Laageigenschappen

  • from the print composer

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

Functiebewerker

With the Function Editor, you are able to define your own Python custom functions in a comfortable way.

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

De tab Functiebewerker

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.