Expressies

Het object Expressions is in vele delen van QGIS beschikbaar. Toegang ertoe kan worden verkregen met behulp van de expression Expressie bouwer, de expressionSelect Selecteer objecten m.b.v reguliere expressie..., de optie voor de symboollaag Geometry generator, de calculateField Veldberekening of het gereedschap dataDefined Datagedefinieerde gegevens. Gebaseerd op gegevens van de laag en vooraf gebouwde of gebruikergedefinieerde functies biedt het een krachtige manier om waarden van attributen, geometrie en variabelen te bewerken om dynamisch de stijl van de geometrie, de inhoud of positie van het label, de waarde voor het diagram, de hoogte van een item voor Printvormgeving, enkele objecten te selecteren, virtuele velden te maken ...

Enkele voorbeelden:

  • 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...”l, 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. Gebruiken van expressies biedt u een groot aantal mogelijkheden.

Het object Expressies biedt toegang tot de:

  • tab Expressie die te gebruiken functies vermeldt

  • tab Functiebewerker die helpt aangepaste functies te maken om in expressies te gebruiken.

Functielijst

Figure Expression 1:

../../../_images/function_list.png

De tab Expressie

De tab Expressie bevat zowel functies als velden van lagen en waarden. Hij bevat widgets om:

  • expressies in te voeren met behulp van functies en/of velden. Een voorbeeld van het resultaat van de expressie wordt weergegeven aan de onderzijde van het dialoogvenster.

  • de toepasselijke functie te selecteren uit een lijst. Een zoekvak is beschikbaar om de lijst te filteren en snel een bepaalde functie of veld te vinden. Dubbelklikken op de naam van het item voegt het toe aan de te schrijven expressie.

  • help weer te geven voor elke geselecteerde functie. Als een veld is geselecteerd, geeft dit widget een voorbeeld van de waarden weer. Dubbelklikken op een waarde voegt die toe aan de expressie.

De functies zijn georganiseerd in groepen om een functie snel te kunnen vinden. In Operatoren, vindt u wiskundige operatoren. Kijk in Berekening voor wiskundige functies. De groep Conversies bevat functies die het ene gegevenstype converteren naar een ander. De groep Tekenreeks verschaft functies voor tekenreeksen van gegevens, zoals Datum en tijd gegevens voor datum en tijd behandelt. In de groep Geometrie vindt u functies voor geometrieobjecten. Met functies uit de groep Record kunt u een nummering toevoegen aan uw gegevensset, terwijl de groep Velden en waarden helpt om alle attributen van de attributentabel te bekijken. De groep Custom vermeld de functies die werden gemaakt of geïmporteerd door de gebruiker. Er zijn nog veel meer groepen. zoals hieronder vermeld.

Operatoren

Deze groep bevat operatoren (bijv. +, -, *). Onthoud dat voor de meeste wiskundige functies hieronder, als één van de invoeren NULL is, is het resultaat NULL.

Functie

Omschrijving

a + b

Optellen van twee waarden (a plus b)

a - b

Aftrekken van twee waarden (a min b)

a * b

Vermenigvuldiging 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 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 door een enkel aanhalingsteken, zie hieronder

‘string’

een waarde tekenreeks, zorg er voor niet te worden verward door een 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

Enkele voorbeelden:

  • Voegt een tekenreeks en een waarde uit een naam van een kolom samen:

    'My feature''s id is: ' || "gid"
  • Test of het attribuutveld “description” begint met de tekenreeks ‘Hello’ in de waarde (let op de positie van het teken %):

    "description" LIKE 'Hello%'

Voorwaarden

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

Geeft true terug als enig deel van een tekenreeks overeenkomt met de opgegeven reguliere expressie

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

Geeft de inverse cosinus van een waarde in radialen terug

atan2(y,x)

Geeft de inverse tangens van y/x terug door de twee tekens van de twee argumenten te gebruiken om het kwadrant van het resultaat te bepalen

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

Geeft de grootste waarde uit een verzameling waarden terug

min

Geeft de kleinste waarde uit een verzameling waarden terug

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

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

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 aangepaste functies die door de, gebruiker zijn gedefinieerd. Bekijk function_editor 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.

Enkele voorbeelden:

  • Verkrijg de maand en het jaar van vandaag in de indeling “10/2014”

    month(now()) || '/' || year(now())

Velden en waarden

Bevat een lijst met velden uit de laag.

Over het algemeen kunt u de verscheidene velden, waarden en functies gebruiken om de expressie voor de berekening te construeren, of u kunt het gewoon intypen in het vak.

U klikt eenvoudigweg op het toepasselijke veld en kiest uit 10 voorbeelden en alle unieke om de waarden van een veld weer te geven. Aan de rechterkant opent de lijst Veldwaarden met de unieke waarden. Boven in de lijst kan een zoekvak helpen met filteren van de aarden. Dubbelklik op de naam ervan in de lijst om een waarde toe te voegen aan de expressie die u aan het schrijven bent.

Toegang tot de voorbeeldwaarden kan ook worden verkregen door met rechts te klikken. Selecteer de veldnaam uit de lijst, klik dan met rechts om toegang te krijgen tot een contextmenu met opties om voorbeeldwaarden uit het geselecteerde veld te laden.

Namen van velden moeten omsloten worden door dubbele aanhalingstekens in de expressie. Waarden moeten omsloten worden door enkele aanhalingstekens.

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

Geeft de X-coördinaat van het huidige object terug

$x_at(n)

Geeft de X-coördinaat terug van de n-de knoop van de geometrie van het huidige object

$y

Geeft de Y-coördinaat van het huidige object terug

$y_at(n)

Geeft de Y-coördinaat terug van de n-de knoop van de geometrie van het huidige object

area

Geeft het gebied terug van een geometrie polygoonobject. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

bounds

Geeft een geometrie terug die het begrenzingsvak van een invoer-geometrie weergeeft. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

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

Geeft een geometrie terug die alle punten weergeeft waarvan de afstand vanaf deze geometrie kleiner is dan of gelijk is aan afstand. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

centroid

Geeft het geometrische midden van een geometrie terug

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

Geeft de convex hull van een geometrie terug (dit vertegenwoordigt de minimale convex-geometrie die alle geometrieën binnen de verzameling omsluit)

crosses

Geeft 1 (true) terug als de opgegeven geometrieën enkele, maar niet alle, punten in het interieur gemeenschappelijk hebben

difference(a,b)

Geeft een geometrie terug die dat deel van geometrie a weergeeft dat niet kruist met geometrie 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

end_point

Geeft de laatste knoop uit een geometrie terug

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)

Geeft een uitgetrokken versie van de invoergeometrie (Multi-)Curve of (Multi-)Linestring met een uitbreiding die wordt gespecificeerd door X en 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

Geeft een geometrie terug die het gedeelde deel weergeeft van twee geometrieën

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)

m

Geeft de waarde m van een puntgeometrie terug

make_line

Maakt een lijngeometrie van een verzameling puntgeometrieën

make_point(x,y,z,m)

Maakt een puntgeometrie van x- en y-waarden (en optioneel z- en m-waarden)

make_point_m(x,y,m)

Maakt een puntgeometrie van X- en Y-coördinaten en waarden M.

make_polygon

Maakt een polygoongeometrie van een buitenring- en optioneel een verzameling van binnenringgeometrieën

nodes_to_points

Geeft een multipunt geometrie terug, bestaande uit elke knoop in de invoergeometrie

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

Geeft een specifieke knoop uit een geometrie terug

point_on_surface

Geeft een punt terug dat gegarandeerd is gelegen op het oppervlak van een geometrie

relate

Test of geeft de weergave Dimensional Extended 9 Intersection Model (DE-9IM) van de relatie tussen twee geometrieën weer

reverse

Draait de richting van een lijn om door de volgorde van zijn punten om te draaien

segments_to_lines

Geeft een multilijn geometrie terug, bestaande uit een lijn voor elk segment in de invoergeometrie

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

Geeft de eerste knoop uit een geometrie terug

sym_difference

Geeft een geometrie terug die het gedeelte weergeeft van twee geometrieën die elkaar niet kruisen

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

Geeft de getransformeerde geometrie terug van een bron-CRS naar een doel-CRS

translate

Geeft een vertaalde versie van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

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

Geeft de X-coördinaat van een puntgeometrie terug, of de X-coördinaat van het zwaartepunt van een niet-puntgeometrie

x_min

Geeft de minimum X-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

x_max

Geeft de maximum X-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie.

y

Geeft de Y-coördinaat van een puntgeometrie terug, of de Y-coördinaat van het zwaartepunt van een niet-puntgeometrie

y_min

Geeft de minimum Y-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

y_max

Geeft de maximum Y-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie

z

Geeft de Z-coördinaat van een puntgeometrie terug

Enkele voorbeelden:

  • Geeft de X-coördinaat terug van of het zwaartepunt van het huidige object:

    x($geometry)
  • Stuur een waarde terug overeenkomstig het gebied van het object:

    CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END

Record functies

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

Geeft het ID van het huidige kaartitem terug als de kaart wordt getekend in een lay-out, of “canvas” indien de kaart wordt getekend in het hoofdvenster van QGIS

$rownum

Geeft het nummer van de huidige rij terug

$scale

Geeft de huidige schaal van het kaartvenster terug

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

Tekst functies

Deze groep bevat functies die werken op tekst (bijv. vervangen, omzetten naar hoofdletters).

Functie

Omschrijving

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

Geeft een tekenreeks terug van de opgegeven breedte die vanaf links is uitgevuld met een vulteken

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

Geeft een tekenreeks terug waarin de opgegeven reguliere expressie is vervangen

right(string, n)

Geeft een subtekenreeks terug die de n meest rechts gelegen tekens van de tekenreeks bevat

rpad

Geeft een tekenreeks terug van de opgegeven breedte die vanaf links is uitgevuld met een vulteken

strpos

Geeft de index terug voor een reguliere expressie in een tekenreeks

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

Deze groep bevat recent gebruikte functies. Elke in het dialoogvenster expressie gebruikte expressie wordt toegevoegd aan de lijst, gesorteerd van de meest recente tot de minder recente. Dit helpt om snel een eerdere expressie terug te vinden.

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

  • in de Printvormgeving

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

Geeft het totale aantal pagina’s in de lay-out terug

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

Geeft huidige gebruikers-ID van item Printvormgeving terug (niet noodzakelijkerwijze uniek).

item_uuid

Geeft unieke ID van item Printvormgeving terug

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

Geeft het aantal pagina’s in de lay-out terug

layout_pageheight

Geeft de hoogte van pagina in lay-out in mm terug

layout_pagewidth

Geeft de breedte van pagina in lay-out in mm terug

map_id

Geeft de ID van huidige doel op de kaart terug. Dit zal ‘canvas’ zijn voor renders van het kaartvenster, en het item-ID voor renders van de Printvormgeving.

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_rotation

Geeft de huidige rotatie van de kaart terug

map_scale

Geeft de huidige schaal van de kaart terug

project_filename

Geeft de bestandsnaam van het huidige project terug

project_folder

Geeft de map voor het huidige project terug

project_path

Geeft het volledige pad (inclusief bestandsnaam) van het huidige project terug

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

Functiebewerker

Met de Functiebewerker bent u in staat om uw eigen aangepaste functies voor Python op een comfortabele manier te definiéren.

Figure Expression 2:

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

De tab Functiebewerker

De functiebewerker zal nieuwe bestanden voor Python maken in qgis2pythonexpressions en zal automatisch alle functies laden, die zijn gedefinieerd, bij het starten van QGIS. Onthoud goed dat nieuwe functies alleen worden opgeslagen in de map expressions en niet in het projectbestand. Als u een project heeft dat een van uw aangepaste functies gebruikt, dient u ook het .py-bestand te delen in de map expressions.

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

Het korte voorbeeld maakt een functie ‘myfunc’ die u een functie zal geven met twee waarden. Bij het gebruiken van het argument voor de functie args=’auto’ zal het aantal argumenten voor de functie worden berekend door het aantal argumenten waarmee de functie werd gedefinieerd in Python (minus 2 - object, en ouder).

Deze functie kan dan worden gebruikt met de volgende expressie:

myfunc('test1', 'test2')

Uw functie zal worden geïmplementeerd in de groep functies :guilabel:’Custom’ op de tab Expressie na het gebruiken van de knop Script uitvoeren.

Meer informatie over het maken van code voor Python kan worden gevonden in het PyQGIS Developer Cookbook.

De functiebewerker is niet alleen beperkt tot het werken met Veldberekening, hij is overal te vinden waar u met expressies werkt.