Expressies

Gebaseerd op gegevens van lagen en vooraf gedefinieerd of als gebruikergedefinieerde functies bieden Expressies een krachtige manier om attribuutwaarden, geometrie en variabelen te bewerken om dynamisch de stijl van de geometrie te wijzigen, de inhoud of positie van het label, de waarde voor het diagram, de hoogte van een item voor afdruklay-out, enkele objecten te selecteren of een virtuele kolom te maken …

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 het gereedschap “Objecten selecteren met een 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 te verduidelijken waar de argumenten voor een functie voor een expressie naar verwijzen, wat nuttig is als u op een latere datum probeert een expressie te interpreteren!

Lijst van functies

De tab Expressie verschaft de belangrijkste interface voor het schrijven van expressies met functies, velden van lagen en waarden. Het bevat de volgende widgets:

  • Een gebied in de bewerker voor expressies om expressies te typen of te plakken. Automatisch aanvullen is beschikbaar om het schrijven van expressies te versnellen:

    • Corresponderende variabelen, functienamen en veldnamen voor de invoer van tekst worden hieronder weergegeven: gebruik de pijlen Omhoog en Omlaag om door de items te bladeren en druk op Tab om het in de expressie in te voegen op klik eenvoudigweg op het gewenste item.

    • Parameters voor functies worden weergegeven als zij worden ingevoerd.

    QGIS controleert ook de geldigheid van de expressie en accentueert alle fouten met:

    • Onderstrepen: voor onbekende functies, foute of ongeldige argumenten;

    • Markering: voor elke andere fout (bijv, ontbrekende haakjes, onverwacht teken) op één enkele plaats.

    Tip

    Documenteer uw expressie met opmerkingen

    Bij het gebruiken van complexe expressies is het een goed gebruik om tekst toe te voegen, ofwel als een opmerking met meerdere regels, of als een opmerking op de regel zelf, om u te helpen herinneren.

    /*
    Labels each region with its highest (in altitude) airport(s)
    and altitude, eg 'AMBLER : 264m' for the 'Northwest Artic' region
    */
    with_variable(
      'airport_alti', -- stores the highest altitude of the region
      aggregate(
        'airports',
        'max',
        "ELEV", -- the field containing the altitude
        -- and limit the airports to the region they are within
        filter := within( $geometry, geometry( @parent ) )
      ),
        aggregate( -- finds airports at the same altitude in the region
          'airports',
          'concatenate',
          "NAME",
          filter := within( $geometry, geometry( @parent ) )
            and "ELEV" = @airport_alti
        )
        || ' : ' || @airport_alti || 'm'
        -- using || allows regions without airports to be skipped
    )
    
  • Onder het veld voor bewerken van de expressie, een Uitvoer voorbeeld dat het resultaat weergeeft van de expressie, geëvalueerd op het eerste object van de laag. In het geval van een fout geeft het dit aan en kunt u toegang krijgen tot de details met de verschafte hyperlink.

  • Een functieselectie geeft de lijst met functies, variabelen, velden… weer, georganiseerd in groepen. 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.

  • Een paneel Help geeft de help weer voor elk geselecteerd item in de functieselectie.

    Tip

    Drukken op Ctrl+Click, terwijl u met de muis over de naam van een functie in een expressie gaat, zal automatisch de Help daarvoor openen in een dialoogvenster.

    Een widget voor waarden van velden dat wordt weergegeven als een veld is geselecteerd in de functieselectie helpt om attributen van de objecten op te halen. Dubbelklikken op een waarde voegt die toe aan de bewerker voor de expressie.

    Tip

    Het rechterpaneel, dat Help voor functies of veldwaarden weergeeft, kan worden samengevouwen (onzichtbaar) in het dialoogvenster. Druk op de knoppen Waarden weergeven of Help weergeven om het terug te krijgen.

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

De tab Expressie

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

array_agg

Geeft een array van samengestelde waarden terug uit een veld of expressie

collect

Geeft de geometrie met meerdere delen terug uit samengestelde geometrieën uit een expressie

concatenate

Geeft alle samengevoegde waarden terug uit een veld of expressie, verbonden door een scheidingsteken

concatenate_unique

Geeft alle unieke samengevoegde waarden terug uit een veld of expressie, verbonden 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:

    relation_aggregate('my_relation', 'mean', "field_from_related_table")
    

    of:

    relation_aggregate(relation:='my_relation', aggregate := 'mean',
      expression := "field_from_related_table")
    

Functies voor array

Deze groep bevat functies voor expressies voor het maken en manipuleren van arrays (ook wel bekend als de datastructuur ‘list’). De volgorde van waarden binnen de array is belangrijk, in tegenstelling tot de gegevensstructuur van de ‘kaart’, waar de volgorde van paren sleutels-waarden niet relevant is en waarden worden geïdentificeerd door hun sleutels.

Functie

Omschrijving

array

Geeft een array terug die alle waarden bevat die werden doorgegeven als parameter

array_all

Geeft true terug als een array alle waarden van een opgegeven array bevat

array_append

Geeft een array terug met de opgegeven waarde toegevoegd aan het einde

array_cat

Geeft een array terug die alle opgegeven arrays samengevoegd teruggeeft

array_contains

Geeft true terug als een array de opgegeven waarde bevat

array_distinct

Geeft een array terug die alle afzonderlijke waarden van de opgegeven array teruggeeft

array_filter

Geeft een array terug met alleen de items waarvoor de expressie naar TRUE evalueert

array_find

Geeft de index (0 voor de eerste) terug van een waarde binnen een array. Geeft -1 terug als de waarde niet wordt gevonden.

array_first

Geeft de eerste waarde uit een array terug

array_foreach

Geeft een array terug waar de opgegeven expressie voor elk item is geëvalueerd

array_get

Geeft de n-de waarde (0 voor de eerste) terug uit een array

array_insert

Geeft een array terug met de opgegeven waarde toegevoegd op de opgegeven positie

array_intersect

Geeft true terug als een element van array_1 bestaat in array_2

array_last

Geeft het laatste element uit een array terug

array_length

Geeft het aantal elementen in een array terug

array_prepend

Geeft een array terug met de opgegeven waarde toegevoegd aan het begin

array_remove_all

Geeft een array terug waaruit alle items met de opgegeven waarde zijn verwijderd

array_remove_at

Geeft een array terug waaruit de opgegeven index is verwijderd

array_reverse

Geeft een array terug van gegeven array met de waarden in omgekeerde volgorde

array_slice

Geeft de waarden van de array terug vanaf het argument start_pos tot en met het argument end_pos

array_sort

Geeft de opgegeven array terug met gesorteerde elementen

array_to_string

Voegt elementen van een array samen tot een tekenreeks, gescheiden door een scheidingsteken en een optionele tekenreeks gebruikend voor lege waarden

generate_series

Maakt een array die een reeks nummers bevat

regexp_matches

Geeft een array terug van alle opgevangen tekenreeksen die zijn gevangen door vang-groepen, in de volgorde waarin de groepen zelf voorkomen in de opgegeven reguliere expressie voor een tekenreeks

string_to_array

Splitst een tekenreeks in een array met het opgegeven scheidingsteken en de optionele tekenreeks voor lege waarden

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_grayscale_average

Past een filter grijswaarden toe en geeft een weergave van een tekenreeks terug uit een opgegeven kleur

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_mix_rgb

Geeft een tekenreeks terug die een kleur weergeeft die de waarden rood, groen, blauw en alfa van de twee opgegeven kleuren mengt, gebaseerd op een opgegeven verhouding

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)

create_ramp

Geeft een balk kleurverloop terug uit een kaart met tekenreeksen voor kleur en stappen

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

nullif(waarde1, waarde2)

Geeft een waarde Null terug als waarde1 gelijk is aan waarde2, anders geeft het waarde1 terug. Dit kan worden gebruikt om voorwaardelijk waarden door NULL te vervangen.

try

Probeert een expressie en geeft de waarde ervan terug indien foutenvrij, een alternatieve waarde (indien opgegeven) of Null als er een fout optrad

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
    

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_dm

Converteert een coördinaat naar graden, minuten

to_dms

Converteert een coördinaat naar graden, minuten, seconden

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

epoch

Geeft de interval in milliseconden terug tussen de unix periode en een opgegeven datumwaarde

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

De mogelijkheid om waarden date, time en datetime direct op te slaan in velden kan afhankelijk zijn van de provider van de gegevensbron (bijv., Shapefiles accepteren de indeling date, maar niet de indelingen datetime of time). Hieronder volgen enkele suggesties om deze beperking te omzeilen:

  • date, Datetime and time kunnen worden opgeslagen in velden type tekst na het gebruiken van de functie to_format().

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

Dubbelklik op de naam van een veld om dat toe te voegen aan uw expressie. U kunt ook de naam van het veld typen (bij voorkeur tussen dubbele aanhalingstekens) of het alias daarvan.

Selecteer, om waarden van velden op te halen om in een expressie te gebruiken, het toepasselijke veld en, in het weergegeven widget, kies tussen 10 voorbeelden en Alle unieke. Gevraagde waarden worden dan weergegeven en u kunt het vak Zoeken aan de bovenkant van de lijst gebruiken om het resultaat te filteren. Toegang tot voorbeeldwaarden kan ook worden gekregen door met rechts te klikken op een veld.

Een waarde toevoegen aan een expressie die u schrijft: dubbelklik erop in de lijst. Als de waarde van het type string is, moet het tussen enkele aanhalingstekens staan, anders zijn geen aanhalingstekens nodig.

Functies voor bestanden en paden

Deze groep bevat functies waarmee u bestands- en padnamen kunt bewerken.

Functie

Omschrijving

base_file_name

Geeft de basisnaam terug van het bestand, zonder de map of achtervoegsel voor het bestand (extensie).

file_exists

Geeft true terug als een bestandspad bestaat.

file_name

Geeft de naam terug van een bestand, (inclusief de bestandsextensie), maar zonder de map.

file_path

Geeft de component map terug van een bestandspad, zonder de bestandsnaam.

file_size

Geeft de grootte (in bytes) terug van een bestand.

file_suffix

Geeft de bestandsextensie terug uit een bestandspad.

is_directory

Geeft true terug als een pad correspondeert met een map.

is_file

Geeft true terug als een pad correspondeert met een bestand.

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 een algemeen assortiment van functies.

Functie

Omschrijving

env

Haalt een omgevingsvariabele op en geeft de inhoud ervan terug als een tekenreeks. Als de variabele niet wordt gevonden wordt NULL teruggegeven.

eval

Evalueert een expressie die in een tekenreeks wordt doorgegeven. Nuttig om dynamische parameters, die zijn doorgegeven als contextvariabelen of velden, uit te breiden.

is_layer_visible

Geeft true terug als een gespecificeerde laag zichtbaar is

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

with_variable

Maakt en stelt een variabele in voor de code voor een expressie die zal worden verschaft als derde argument. Nuttig om herhaling te vermijden in expressies waar dezelfde waarde meer dan één keer moet worden gebruikt.

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

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

Geeft de sluiting terug van de gecombineerde grens van de geometrie (d.i. de topologische grens van de geometrie - bekijk ook qgisboundary).

bounds

Geeft een geometrie terug die het begrenzingsvak van een invoer-geometrie weergeeft. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie (bekijk ook qgisboundingboxes)

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 (bekijk ook qgisbuffer)

buffer_by_m

Maakt een buffer langs een geometrie lijn waarbij de diameter van de buffer varieert overeenkomstig de M-waarden van de punten van de lijn (bekijk ook qgisbufferbym)

centroid

Geeft het geometrische midden van een geometrie terug (bekijk ook qgiscentroids)

closest_point

Geeft het punt terug op een geometrie dat het dichtst bij een tweede geometrie ligt

collect_geometries

Verzamelt een set geometrieën in een meerdelig object geometrie (zie ook qgiscollect)

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) (bekijk ook qgisconvexhull)

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 (bekijk ook qgisdifference)

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

Geeft de laatste knoop uit een geometrie terug (bekijk ook qgisextractspecificvertices)

extend

Verlengt het begin en einde van een geometrie lijn met een gespecificeerde hoeveelheid (bekijk ook qgisextendlines)

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 terug van de invoergeometrie (Multi-)Curve of (Multi-)Lijn met een uitbreiding die wordt gespecificeerd door X en Y

flip_coordinates

Geeft een kopie terug van de geometrie waarin de X- en Y-coördinaten zijn verwisseld. (bekijk ook qgisswapxy)

force_rhr

Forceert een geometrie om de Rechterhand-regel te respecteren (zie ook qgisforcerhr)

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.

hausdorff_distance

Geeft in de basis een meting terug van hoe soortgelijk of niet soortgelijk twee geometrieën zijn, met een lagere afstand die meer soortgelijke geometrieën aangeeft

inclination

Geeft de hoek terug die wordt gemeten tussen de zenith (0) en de nadir (180) van point_a naar point_b

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 (bekijk ook qgisintersection)

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

Geeft het geïnterpoleerde punt terug van een gespecificeerde afstand langs een geometrie lijn. (bekijk ook qgisinterpolatepoint

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.

line_substring

Geeft het gedeelte van een geometrie lijn (of boog) terug dat valt tussen de gespecificeerde begin- en eindafstanden (gemeten vanaf het begin van de lijn) (bekijk ook qgislinesubstring)

m

Geeft de waarde M van een geometrie punt terug

make_circle

Maakt een geometrie cirkel, gebaseerd op middelpunt en straal

make_ellipse

Maakt een geometrie ellips, gebaseerd op middelpunt, assen en azimut

make_line

Maakt een lijngeometrie uit een serie of een array van puntgeometrieën

make_point(x,y,z,m)

Geeft een geometrie punt terug van X- en Y-waarden (en optioneel Z- of M-waarden)

make_point_m(x,y,m)

Geeft een geometrie punt terug van X- en Y-coördinaten en waarden M.

make_polygon

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

make_rectangle_3points

Maakt een rechthoek uit 3 punten

make_regular_polygon

Maakt een normale polygoon

make_square

Maakt een vierkant uit een diagonaal

make_triangle

Maakt een driehoekige polygoon

minimal_circle

Geeft de minimale omsluitende cirkel van een geometrie voor de invoer terug. (bekijk ook qgisminimumenclosingcircle)

nodes_to_points

Geeft een geometrie multipunt terug, bestaande uit elke knoop in de invoergeometrie (bekijk ook qgisextractvertices)

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

offset_curve

Geeft een geometrie terug die wordt gevormd door de verspringing van een geometrie lijn naar de kant. Afstanden zijn in het ruimtelijke referentiesysteem van deze geometrie (bekijk ook qgisoffsetline)

order_parts

Sorteert de delen van een MultiGeometrie op opgegeven criteria

oriented_bbox

Geeft een geometrie terug die het minimale georiënteerde begrenzingsvak van een invoergeometrie weergeeft (bekijk ook qgisorientedminimumboundingbox)

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 (bekijk ook qgisextractspecificvertices)

point_on_surface

Geeft een punt terug dat gegarandeerd is gelegen op het oppervlak van een geometrie (bekijk ook qgispointonsurface)

pole_of_inaccessibility

Berekent de geschatte Pool van Ontoegankelijkheid voor een oppervlakte, wat het meest veraf gelegen interne punt vanaf de rand van het oppervlakte is (bekijk ook qgispoleofinaccessibility)

project

Geeft een geprojecteerd punt terug vanaf een beginpunt met een afstand, richting (azimut) en een hoogte in radialen (zie ook qgisprojectpointcartesian)

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 (bekijk ook qgisreverselinedirection)

segments_to_lines

Geeft een geometrie multilijn terug, bestaande uit een lijn voor elk segment in de invoergeometrie (bekijk ook qgisexplodelines)

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

simplify

Vereenvoudigt een geometrie door knopen te verwijderen met een op afstand gebaseerde drempel (bekijk ook qgissimplifygeometries)

simplify_vw

Vereenvoudigt een geometrie door knopen te verwijderen met een op een gebied gebaseerde drempel (bekijk ook qgissimplifygeometries)

single_sided_buffer

Geeft een geometrie terug die wordt gevormd door slechts één zijde van een geometrie lijn te bufferen. Afstanden zijn in het ruimtelijke referentiesysteem van deze geometrie (bekijk ook qgissinglesidedbuffer)

smooth

Maakt een geometrie gladder door het toevoegen van extra knopen die hoeken in de geometrie afronden (bekijk ook qgissmoothgeometry)

start_point

Geeft de eerste knoop uit een geometrie terug (bekijk ook qgisextractspecificvertices)

sym_difference

Geeft een geometrie terug die de delen weergeeft van twee geometrieën die elkaar niet kruisen (bekijk ook qgissymmetricaldifference)

tapered_buffer

Maakt een buffer langs een geometrie lijn waarbij de diameter van de buffer gelijkmatig varieert over de lengte van de lijn (bekijk ook qgistaperedbuffer)

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 het bron-CRS naar het doel-CRS (bekijk ook qgisreprojectlayer)

translate

Geeft een vertaalde versie van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van de geometrie (bekijk ook qgistranslategeometry)

union

Geeft een geometrie terug die de verenigde verzameling van punten weergeeft van de geometrieën

wedge_buffer

Geeft een wigvormige buffer terug, afkomstig uit een geometrie punt gegeven een hoek en stralen (bekijk ook qgiswedgebuffers)

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 geometrie punt terug, of de X-coördinaat van het zwaartepunt van een geometrie niet-punt

x_max

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

x_min

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

y

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

y_max

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

y_min

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

z

Geeft de Z-coördinaat van een geometrie punt terug

Enkele voorbeelden:

  • Geef de X-coördinaat terug van 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
    
  • U kunt de huidige geometrie bewerken met de variabele $geometry om een buffer te maken of een punt op het oppervlak van de geometrie te verkrijgen:

    buffer( $geometry, 10 )
    point_on_surface( $geometry )
    
  • Gegeven een object punt, maak een gesloten lijn (met make_line) rondom de geometrie van het punt:

    make_line(
      -- using an array of points placed around the original
      array_foreach(
        -- list of angles for placing the projected points (every 90°)
        array:=generate_series( 0, 360, 90 ),
        -- translate the point 20 units in the given direction (angle)
        expression:=project( $geometry, distance:=20, azimuth:=radians( @element ) )
      )
    )
    

Functies voor lay-out

Deze groep bevat functies waarmee u eigenschappen voor items van lay-out kunt bewerken.

Functie

Omschrijving

item_variables

Geeft een kaart van variabelen terug uit een item van lay-out binnen deze afdruklay-out

Een voorbeeld:

  • De schaal ophalen van het item ‘Map 0’ in de huidige afdruklay-out:

    map_get( item_variables('Map 0'), 'map_scale')
    

Lagen

Deze groep bevat een lijst met beschikbare lagen in het huidige project. Dit biedt een handige manier om expressies te schrijven die verwijzen naar meerdere lagen, zoals voor het uitvoeren van query’s voor samenvoegen, attributen of ruimtelijke.

Het verschaft ook enkele handige functies om lagen te bewerken.

Functie

Omschrijving

decode_uri

Neemt een laag en decodeert de URI van de onderliggende gegevensprovider. Beschikbare informatie is afhankelijk van het type gegevensprovider.

Functies Kaartobjecten

Deze groep bevat functies voor expressies voor het creëren en bewerken van gegevensstructuren ‘map’ (ook wel bekend als het datatype dictionary, paren sleutel-waarde of associatieve arrays). Anders dan de gegevensstructuur lijst waar de volgorde van de waarden van belang is, is de volgorde van de paren sleutel-waarde in het kaartobject niet relevant en worden waarden geïdentificeerd met hun sleutels.

Functie

Omschrijving

from_json

Laadt een als JSON opgemaakte tekenreeks

hstore_to_map

Maakt een kaart uit een als hstore opgemaakte tekenreeks

json_to_map

Maakt een kaart uit een als JSON opgemaakte tekenreeks

map

Geeft een kaart terug die alle sleutels en waarden bevat die als parameters voor het paar werden doorgegeven

map_akeys

Geeft alle sleutels van een kaart terug als een array

map_avals

Geeft alle waarden van een kaart terug als een array

map_concat

Geeft een kaart terug die alle items van de opgegeven kaarten bevat. Als twee kaarten dezelfde sleutel bevatten, wordt de waarde van de tweede kaart genomen.

map_delete

Geeft een kaart terug waaruit de opgegeven sleutel en de bijbehorende waarde zijn verwijderd

map_exist

Geeft true terug als de opgegeven sleutel bestaat in de kaart

map_get

Geeft de waarde van een kaart terug, opgegeven als zijn sleutel

map_insert

Geeft een kaart terug met een toegevoegde sleutel/waarde

map_to_hstore

Voeg kaartelementen samen tot een als hstore opgemaakte tekenreeks

map_to_json

Voeg kaartelementen samen tot een als JSON opgemaakte tekenreeks

to_json

Maakt een als JSON opgemaakte tekenreeks uit een kaart, een array of een andere waarde

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 tangens 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 hoek in radialen terug

degrees

Converteert van radialen naar graden

exp

Geeft de exponentieel van een waarde terug

floor

Rondt een getal naar beneden af

inclination

Geeft de hoek terug die wordt gemeten tussen de zenith (0) en de nadir (180) van point_a naar point_b.

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, die niet null is, uit een verzameling waarden terug

min

Geeft de kleinste waarde, die niet null is, 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 in radialen terug

sqrt

Geeft de vierkantswortel van een waarde terug

tan

Geeft de tangens van een hoek in radialen terug

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

“Kolom_naam”

Waarde van het veld Kolom_naam, zorg er voor dat u niet verward raakt door het enkele 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

Enkele voorbeelden:

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

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

    "description" LIKE 'Hello%'
    

Functies voor Processing

Deze groep bevat functies die werken op algoritmen van Processing.

Functie

Omschrijving

parameter

Geeft de waarde van een parameter voor de invoer voor een algoritme van Processing terug

Functies voor rasters

Deze groep bevat functies voor bewerkingen van rasterlagen.

Functie

Omschrijving

raster_statistic

Geeft statistieken uit een rasterlaag terug

raster_value

Geeft de rasterwaarde terug van de band voor het opgegeven punt

Functies Records en attributen

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

attribute

Geeft de waarde van een gespecificeerd attribuut van een object terug

attributes

Geeft een kaart terug van alle attributen van een object, met veldnamen als sleutels voor de kaart

get_feature

Geeft het eerste object uit een laag terug dat voldoet aan een bepaalde opgegeven waarde voor een attribuut

get_feature_by_id

Geeft het object uit een laag terug dat overeenkomt met de opgegeven ID voor het object

is_selected

Geeft aan of een object is geselecteerd

num_selected

Geeft het aantal geselecteerde objecten op de opgegeven laag terug

represent_value

Geeft de geconfigureerde waarde voor weergave terug voor een veldwaarde (handig met enkele typen widget)

sql_fetch_and_increment

Beheren van automatisch verhogende waarden in databases van SQLite

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

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

regexp_match

Geeft de eerste overeenkomende positie van een reguliere expressie binnen een tekenreeks terug, of 0 als de subtekenreeks niet wordt gevonden

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 met de opgegeven tekenreeks of array van tekenreeksen of kaart, vervangen door een tekenreeks of een array van tekenreeksen of gepaarde waarden

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 rechts is uitgevuld met een vulteken

strpos

Geeft de eerste overeenkomende positie van een subtekenreeks binnen een andere tekenreeks terug, of 0 als de subtekenreeks niet wordt gevonden

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, verpakt in een maximum/minimum aantal tekens

Over het samenvoegen van velden

U kunt tekenreeksen of waarden uit velden samenvoegen met ofwel || of de operator + of de functie concat, met enkele speciale karakteristieken:

  • De operator + betekent ook het optellen van de expressie, dus als u een integer deel hebt (veld of numerieke waarde), kan dit gevoelig zijn voor fouten en kunt u beter de andere gebruiken:

    'My feature''s id is: ' + "gid" => triggers an error as gid is an integer
    
  • Wanneer een van de argumenten een waarde NULL is, zullen || of + een waarde NULL teruggeven. U zou misschien de functie concat willen gebruiken om de andere argumenten, ongeacht de waarde NULL, terug te geven:

    "country_name" || NULL => NULL
    concat('My feature''s id is: ', NULL) => My feature's id is
    concat("firstname", "nickname", "lastname") => Chuck Norris (if empty nickname)
    "firstname" + "nickname" + "lastname" => NULL (if one field is empty)
    
  • Doe, voor andere gevallen, wat u zelf prettig vindt:

    'My country is ' + "country_name" + ' (' + "country_code" + ')'
    'My country is ' || "country_name" || ' (' || "country_code" || ')'
    concat('My country is ', "country_name", ' (', "country_code", ')')
    # All the above return: My country is France (FR)
    

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 Objecten selecteren met een expressie

  • in het dialoogvenster calculateField Veldberekening

  • in het dialoogvenster Laageigenschappen

  • uit de afdruklay-out

Om deze functies te gebruiken in een expressie zouden zij moeten worden voorafgegaan door het teken @ (bijv. @row_number). Betrokken zijn:

Functie

Omschrijving

algorithm_id

Geeft de unieke ID van een algoritme terug

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 huidige nummer voor het object van Atlas 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_layerid

Geeft de huidige ID voor de bedekkingslaag van Atlas terug

atlas_layername

Geeft de naam van de huidige bedekkingslaag van Atlas terug

atlas_pagename

Geeft de huidige paginanaam voor Atlas terug

atlas_totalfeatures

Geeft het totale aantal objecten in de atlas terug

canvas_cursor_point

Geeft de laatste cursorpositie in het kaartvenster in de geografische coördinaten van het project terug

cluster_color

Geeft de kleur terug van symbolen binnen een cluster, of NULL als symbolen gemixte kleuren hebben

cluster_size

Geeft het aantal opgenomen symbolen binnen een cluster terug

current_feature

Geeft het object terug dat momenteel wordt bewerkt in het attributenformulier of de tabelrij

current_geometry

Geeft de geometrie terug van het object dat momenteel wordt bewerkt in het attributenformulier of de tabelrij

fullextent_maxx

Maximum waarde X uit volledig bereik kaartvenster (inclusief alle lagen)

fullextent_maxy

Maximum waarde Y uit volledig bereik kaartvenster (inclusief alle lagen)

fullextent_minx

Minimum waarde X uit volledig bereik kaartvenster (inclusief alle lagen)

fullextent_miny

Minimum waarde Y uit volledig bereik kaartvenster (inclusief alle lagen)

geometry_part_count

Geeft het aantal delen terug in de geometrie van het gerenderde object

geometry_part_num

Geeft het huidige nummer terug van het deel van de geometrie voor het object dat wordt gerenderd.

geometry_point_count

Geeft het aantal punten in het gerenderde deel van een geometrie terug

geometry_point_num

Geeft het nummer van het punt in het gerenderde deel van een geometrie 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 het huidige gebruikers-ID van item afdruklay-out terug (niet noodzakelijkerwijze uniek)

item_uuid

Geeft unieke ID van item afdruklay-out terug

layer

Geeft de huidige laag 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_name

Geeft de naam van de huidige lay-out terug

layout_numpages

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

layout_page

Geeft het paginanummer van het huidige item in de lay-out terug

layout_pageheight

Geeft de hoogte van de actieve pagina in de lay-out terug (in mm)

layout_pagewidth

Geeft de breedte van de actieve pagina in de lay-out terug (in mm)

legend_column_count

Geeft het aantal kolommen in de legenda terug

legend_filter_by_map

Geeft aan of de inhoud van de legenda is gefilterd op de kaart

legend_filter_out_atlas

Geeft aan of de Atlas is uitgefilterd van de legenda

legend_split_layers

Geeft aan of lagen in de legenda kunnen worden gesplitst

legend_title

Geeft de titel van de legenda terug

legend_wrap_string

Geeft het/de teken(s) terug die zijn gebruikt om de tekst van de legenda te verpakken

map_crs

Geeft de naam van het coördinaten referentiesysteem van de huidige kaart terug

map_crs_acronym

Geeft het acroniem van het coördinaten referentiesysteem van de huidige kaart terug

map_crs_definition

Geeft de volledige definitie van het coördinaten referentiesysteem van de huidige kaart terug

map_crs_description

Geeft de naam van het coördinaten referentiesysteem van de huidige kaart terug

map_crs_ellipsoid

Geeft het acroniem van de ellipsoïde van het coördinaten referentiesysteem van de huidige kaart terug

map_crs_proj4

Geeft de definitie voor Proj4 van het coördinaten referentiesysteem van de huidige kaart terug

map_crs_wkt

Geeft de definitie voor WKT van het coördinaten referentiesysteem van de huidige kaart terug

map_extent

Geeft de geometrie terug die het huidige bereik van de kaart weergeeft

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

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

map_layer_ids

Geeft de lijst terug met ID’s van op de kaart zichtbare lagen

map_layers

Geeft de lijst terug met lagen van op de kaart zichtbare lagen

map_rotation

Geeft de huidige rotatie van de kaart terug

map_scale

Geeft de huidige schaal van de kaart terug

map_units

Geeft de maateenheden voor de kaart terug

notification_message

Inhoud van het notificatiebericht dat is verzonden door de provider (alleen beschikbaar voor acties die worden geactiveerd door notificaties van de provider).

parent

Verwijst naar het huidige object in de ouderlaag, toegang verschaffend tot de attributen en geometrie bij het filteren met een functie samenvoegen

project_abstract

Geeft abstract van project terug, afkomstig uit de metadata van het project.

project_area_units

Geeft de eenheid voor gebied terug voor het huidige project, gebruikt voor het berekenen van gebieden van geometrieën

project_author

Geeft auteur van het project terug, afkomstig uit de metadata van het project.

project_basename

Geeft de basisnaam van de bestandsnaam van het huidige project terug (zonder pad en extensie)

project_creation_date

Geeft aanmaakdatum van het project terug, afkomstig uit de metadata van het project.

project_crs

Geeft het coördinaten referentiesysteem van het project terug

project_crs_definition

Geeft de volledige definitie van het coördinaten referentiesysteem van het project terug

project_distance_units

Geeft de eenheid voor afstand terug voor het huidige project, gebruikt voor het berekenen van lengten van geometrieën en afstanden

project_ellipsoid

Geeft de naam van de ellipsoïde voor het huidige project terug, gebruikt voor het berekenen van geodetische gebieden of lengten van geometrieën

project_filename

Geeft de bestandsnaam van het huidige project terug

project_folder

Geeft de map voor het huidige project terug

project_home

Geeft het pad naar de map voor het huidige project terug

project_identifier

Geeft identificatie van het project terug, afkomstig uit de metadata van het project.

project_keywords

Geeft de sleutelwoorden van het project terug, afkomstig uit de metadata van het project.

project_path

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

project_title

Geeft de titel van het huidige project terug

qgis_locale

Geeft de huidige taal van QGIS 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_short_version

Geeft de verkorte tekenreeks voor de huidige versie van QGIS terug

qgis_version

Geeft de tekenreeks voor de versie van QGIS terug

qgis_version_no

Geeft het huidige versienummer voor QGIS terug

snapping_results

Geeft toegang tot de resultaten voor snappen bij digitaliseren van een object (alleen beschikbaar in Object toevoegen)

scale_value

Geeft de huidige waarde voor afstand van de schaalbalk 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 om het object te renderen

symbol_count

Returns the number of features represented by the symbol (in the layout legend)

symbol_id

Returns the Internal ID of the symbol (in the layout legend)

symbol_label

Returns the label for the symbol (either a user defined label or the default autogenerated label - in the layout legend)

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_variable

Maakt instellen van een variabele mogelijk om te gebruiken in een expressie om herhaaldelijk herberekenen van dezelfde waarde te vermijden

Enkele voorbeelden:

  • Geef het X-coördinaat van het midden van een kaartitem terug om in te voegen in een label in lay-out:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Geef voor elk object op de huidige laag het aantal overlappende objecten airports terug:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Haal het object_ID op van het eerste gesnapte punt van een lijn:

    with_variable(
      'first_snapped_point',
      array_first( @snapping_results ),
      attribute(
        get_feature_by_id(
          map_get( @first_snapped_point, 'layer' ),
          map_get( @first_snapped_point, 'feature_id' )
        ),
        'object_id'
      )
    )
    

Functies Recent

Deze groep bevat recent gebruikte functies. Afhankelijk van de context van zijn gebruik (object selecteren, veldberekening, algemeen), wordt elke toegepaste expressie toegevoegd aan de corresponderende lijst (tot maximaal tien expressies), gesorteerd van de meest recente tot de minder recente. Dit helpt om snel een eerder gebruikte expressie terug te vinden.

Functiebewerker

Met de tab Functiebewerker kunt u uw eigen functies schrijven in de taal Python. Dit verschaft een handige en comfortabele manier om bepaalde wensen, die niet door vooraf gedefinieerde functies worden verschaft, aan te pakken.

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

De tab Functiebewerker

Een nieuwe functie maken:

  1. Druk op de knop signPlus Nieuw bestand.

  2. Voer een naam in om te gebruiken in het formulier dat opent en druk op OK.

    Een nieuw item van de naam die u opgaf, wordt toegevoegd aan het linkerpaneel van de tab Functiebewerker; dit is een Python-bestand .py gebaseerd op een sjabloonbestand van QGIS en opgeslagen in de map /python/expressions onder de map van het actieve gebruikersprofiel.

  3. Het rechterpaneel geeft de inhoud van het bestand weer: een sjabloon voor een Python-bestand. Werk de code en zijn Help bij overeenkomstig uw behoeften.

  4. Druk op de knop start Functies voor laden en opslaan. De functie die u schreef wordt toegevoegd aan de boom met functies op de tab Expressie, standaard onder de groep Aangepast.

  5. Veel plezier met uw functie.

  6. Als de functie verbeteringen nodig heeft, schakel naar de tab Functiebewerker, maak de wijzigingen en druk opnieuw op de knop start Functies voor laden en opslaan om ze beschikbaar te maken in het bestand, en daarmee op de tab Expressie.

Aangepaste functies voor Python worden opgeslagen onder de map van het gebruikersprofiel, wat betekent dat bij elke keer dat QGIS opstart, het automatisch alle functies zal laden die zijn gedefinieerd met het huidige gebruikersprofiel. Onthoud dat nieuwe functies alleen worden opgeslagen in de map /python/expressions en niet in het projectbestand. Als u een project deelt dat een van uw aangepaste functies gebruikt, moet u ook het bestand .py in de map /python/expressions delen.

Hier is een kort voorbeeld over hoe u uw eigen aangepaste functies maakt:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def my_sum(value1, value2, feature, parent):
    """
    Calculates the sum of the two parameters value1 and value2.
    <h2>Example usage:</h2>
    <ul>
      <li>my_sum(5, 8) -> 13</li>
      <li>my_sum("field1", "field2") -> 42</li>
    </ul>
    """
    return value1 + value2

Het korte voorbeeld maakt een functie my_sum 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 in expressies:

../../../_images/customFunction.png

Aangepaste functie toegevoegd aan de tab Expressie

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