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:
objecten selecteren met het gereedschap Objecten selecteren met een expressie…;
attributen bewerken met bijv. het gereedschap Veldberekening;
bewerken van parameters voor symbologie, label of item voor afdruklay-out met het gereedschap Data-bepaalde ‘override’ (zie Data-bepaalde ‘override’ instellen);
bouwen van een symboollaag Geometrie-generator;
zelf enige geoprocessing uitvoeren.
Het dialoogvenster Expressie-string bouwer biedt toegang tot de:
tab Expressie die, dankzij een lijst met vooraf gedefinieerde functies, helpt bij het schrijven en controleren van de te gebruiken expressie;
tab Functiebewerker die helpt om de lijst met functies uit te breiden door aangepaste te maken.
Enkele gebruiksgevallen van expressies:
Vanuit Veldberekening, bereken een veld “pop_density” met behulp van bestaande velden “total_pop” en “area_km2”:
"total_pop" / "area_km2"
Werk het veld “density_level” bij met categorieën overeenkomstig de waarden van “pop_density”:
CASE WHEN "pop_density" < 50 THEN 'Low population density' WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population density' WHEN "pop_density" >= 150 THEN 'High population density' END
Pas een stijl met categorieën toe op alle objecten overeenkomstig het feit of hun gemiddelde huizenprijs minder of meer is dan €10.000 per vierkante meter:
"price_m2" > 10000
Selecteer, met 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.
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 |
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 functieconcat
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 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.
Een nieuwe functie maken:
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.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.
Druk op de knop 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
.Veel plezier met uw functie.
Als de functie verbeteringen nodig heeft, schakel naar de tab Functiebewerker, maak de wijzigingen en druk opnieuw op de knop 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:
Meer informatie over het maken van code voor Python kan worden gevonden in het PyQGIS-Developer-Cookbook.