14.2. 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 …
14.2.1. 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
Werk een veld van de laag region bij met de namen (kommagescheiden) van daarin liggende airports:
aggregate('airport_layer', 'concatenate', "name", within($geometry, geometry(@parent)), ', ')
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!
14.2.2. 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.
14.2.2.1. 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")
14.2.2.2. 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 |
14.2.2.3. 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 |
14.2.2.4. 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
14.2.2.5. 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 |
14.2.2.6. Aangepaste functies¶
Deze groep bevat functies die door de gebruiker zijn gedefinieerd. Bekijk Functiebewerker voor meer details.
14.2.2.7. 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)
14.2.2.8. 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.
14.2.2.9. 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. |
14.2.2.10. 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 |
14.2.2.11. 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 Variabelen 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. |
14.2.2.12. Geometrie functies¶
De groep bevat functies die werken voor geometrie-objecten (bijv. buffer, transform, $area).
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 Grens). |
bounds |
Geeft een geometrie terug die het begrenzingsvak van een invoer-geometrie weergeeft. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie (bekijk ook Begrenzingsvakken) |
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 Buffer) |
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 Variabele breedte buffer (op M-waarde)) |
centroid |
Geeft het geometrische midden van een geometrie terug (bekijk ook Zwaartepunten) |
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 Geometrieën verzamelen) |
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 Convex hull (Bolle schil)) |
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 Verschil) |
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 Specifieke punten uitnemen) |
extend |
Verlengt het begin en einde van een geometrie lijn met een gespecificeerde hoeveelheid (bekijk ook Lijnen verlengen) |
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 X- en Y-coördinaten wisselen) |
force_rhr |
Forceert een geometrie om de Rechterhand-regel te respecteren (zie ook Rechterhandregel forceren) |
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 Kruising) |
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 Punt op lijn interpoleren |
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 Lijn subdeel) |
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 Minimale omsluitende cirkels) |
nodes_to_points |
Geeft een geometrie multipunt terug, bestaande uit elke knoop in de invoergeometrie (bekijk ook Punten uitnemen) |
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 Verspringing lijnen) |
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 Georiënteerd minimum begrenzingsvak) |
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 Specifieke punten uitnemen) |
point_on_surface |
Geeft een punt terug dat gegarandeerd is gelegen op het oppervlak van een geometrie (bekijk ook Punt op oppervlak) |
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 Pool van ontoegankelijkheid) |
project |
Geeft een geprojecteerd punt terug vanaf een beginpunt met een afstand, richting (azimut) en een hoogte in radialen (zie ook Punten projecteren (Cartesiaans)) |
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 Omgekeerde lijnrichting) |
segments_to_lines |
Geeft een geometrie multilijn terug, bestaande uit een lijn voor elk segment in de invoergeometrie (bekijk ook Lijnen uitvergroten) |
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 Vereenvoudigen) |
simplify_vw |
Vereenvoudigt een geometrie door knopen te verwijderen met een op een gebied gebaseerde drempel (bekijk ook Vereenvoudigen) |
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 Enkelzijdige buffer) |
smooth |
Maakt een geometrie gladder door het toevoegen van extra knopen die hoeken in de geometrie afronden (bekijk ook Glad maken) |
start_point |
Geeft de eerste knoop uit een geometrie terug (bekijk ook Specifieke punten uitnemen) |
sym_difference |
Geeft een geometrie terug die de delen weergeeft van twee geometrieën die elkaar niet kruisen (bekijk ook Symmetrisch verschil) |
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 Taps toelopende buffers) |
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 Laag opnieuw projecteren) |
translate |
Geeft een vertaalde versie van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van de geometrie (bekijk ook Vertalen) |
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 Wigvormige buffers maken) |
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 ) ) ) )
14.2.2.13. 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')
14.2.2.14. 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. |
14.2.2.15. 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 |
14.2.2.16. 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 |
14.2.2.17. 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%'
14.2.2.18. 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 |
14.2.2.19. 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 |
14.2.2.20. 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') ) ) )
14.2.2.21. 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)
14.2.2.22. Variabelen¶
Deze groep bevat dynamische variabelen gerelateerd aan de toepassing, het projectbestand en andere instellingen. De beschikbaarheid van variabelen is afhankelijk van de context:
in het dialoogvenster Laageigenschappen
uit de afdruklay-out
Deze variabelen zouden, om te kunnen worden gebruikt in een expressie, moeten worden voorafgegaan door het teken @
(bijv. @row_number).
Functie |
Omschrijving |
---|---|
algorithm_id |
De unieke ID van een algoritme |
atlas_feature |
Het huidige object in atlas (als object object) |
atlas_featureid |
Het huidige atlas object-ID |
atlas_featurenumber |
Het huidige nummer voor het object van atlas in de lay-out |
atlas_filename |
De huidige bestandsnaam voor atlas |
atlas_geometry |
De geometrie voor het huidige atlas-object |
atlas_layerid |
De huidige ID voor de bedekkingslaag van atlas |
atlas_layername |
De naam van de huidige bedekkingslaag van atlas |
atlas_pagename |
De huidige paginanaam voor atlas |
atlas_totalfeatures |
Het totale aantal objecten in de atlas |
canvas_cursor_point |
De laatste cursorpositie in het kaartvenster in de geografische coördinaten van het project |
cluster_color |
De kleur van symbolen binnen een cluster, of NULL als symbolen gemixte kleuren hebben |
cluster_size |
Het aantal opgenomen symbolen binnen een cluster |
current_feature |
Het object dat momenteel wordt bewerkt in het attributenformulier of n de tabelrij |
current_geometry |
De geometrie van het object dat momenteel wordt bewerkt in het attributenformulier of in 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 |
Het aantal delen in de geometrie van het gerenderde object |
geometry_part_num |
Het huidige nummer van het deel van de geometrie voor het object dat wordt gerenderd |
geometry_point_count |
Het aantal punten in het gerenderde deel van een geometrie |
geometry_point_num |
Het nummer van het huidige punt in het gerenderde deel van een geometrie |
grid_axis |
De huidige as voor het annotatieraster (bijv, ‘x’ voor longitude, ‘y’ voor latitude). |
grid_number |
De huidige waarde annotatieraster |
item_id |
Het huidige gebruikers-ID van item afdruklay-out (niet noodzakelijkerwijze uniek) |
item_uuid |
Het unieke ID van item afdruklay-out |
layer |
De huidige laag |
layer_id |
Het ID van de huidige laag |
layer_name |
De naam van de huidige laag |
layout_dpi |
De resolutie van de lay-out (DPI) |
layout_name |
De naam van de lay-out |
layout_numpages |
Het aantal pagina’s in de lay-out |
layout_page |
Het paginanummer van het huidige item in de lay-out |
layout_pageheight |
De hoogte van de actieve pagina in de lay-out (in mm) |
layout_pagewidth |
De breedte van de actieve pagina in de lay-out (in mm) |
legend_column_count |
Het aantal kolommen in de legenda |
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 |
De titel van de legenda |
legend_wrap_string |
Het/de teken(s) die zijn gebruikt om de tekst van de legenda te verpakken |
map_crs |
De naam van het coördinaten referentiesysteem van de huidige kaart |
map_crs_acronym |
Het acroniem van het coördinaten referentiesysteem van de huidige kaart |
map_crs_definition |
De volledige definitie van het coördinaten referentiesysteem van de huidige kaart |
map_crs_description |
De naam van het coördinaten referentiesysteem van de huidige kaart |
map_crs_ellipsoid |
Het acroniem van de ellipsoïde van het coördinaten referentiesysteem van de huidige kaart |
map_crs_proj4 |
De definitie voor Proj4 van het coördinaten referentiesysteem van de huidige kaart |
map_crs_wkt |
De definitie voor WKT van het coördinaten referentiesysteem van de huidige kaart |
map_extent |
De geometrie die het huidige bereik van de kaart weergeeft |
map_extent_center |
Het puntobject in het midden van het kaartvenster |
map_extent_height |
De huidige hoogte van de kaart |
kaart_bereik_breedte |
De huidige breedte van de kaart |
map_id |
Het ID van het huidige doel op de kaart. Dit zal ‘canvas’ zijn voor renderers van het kaartvenster, en het item-ID voor renderers van de afdruklay-out |
map_layer_ids |
De lijst met ID’s van op de kaart zichtbare lagen |
map_layers |
De lijst van op de kaart zichtbare lagen |
map_rotation |
De huidige rotatie van de kaart |
map_scale |
De huidige schaal van de kaart |
map_units |
De maateenheden voor de kaart |
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 |
De abstract van project, afkomstig uit de metadata van het project |
project_area_units |
De eenheid voor gebied voor het huidige project, gebruikt voor het berekenen van gebieden van geometrieën |
project_author |
De auteur van het project, afkomstig uit de metadata van het project |
project_basename |
De basisnaam van de bestandsnaam van het huidige project (zonder pad en extensie) |
project_creation_date |
De aanmaakdatum van het project, afkomstig uit de metadata van het project |
project_crs |
Het coördinaten referentiesysteem van het project |
project_crs_arconym |
Het acroniem van het coördinaten referentiesysteem van het project |
project_crs_definition |
De volledige definitie van het coördinaten referentiesysteem van het project |
project_crs_description |
De beschrijving van het coördinaten referentiesysteem van het project |
project_crs_ellipsoid |
De ellipsoïde van het coördinaten referentiesysteem van het project |
project_crs_proj4 |
De weergave in Proj4 van het coördinaten referentiesysteem van het project |
project_crs_wkt |
De weergave in WKT (well known text) van het coördinaten referentiesysteem van het project |
project_distance_units |
De eenheid voor afstand voor het huidige project, gebruikt voor het berekenen van lengten van geometrieën en afstanden |
project_ellipsoid |
De naam van de ellipsoïde voor het huidige project, gebruikt voor het berekenen van geodetische gebieden of lengten van geometrieën |
project_filename |
De bestandsnaam van het huidige project |
project_folder |
De map voor het huidige project |
project_home |
Het pad naar de map voor het huidige project |
project_identifier |
De identificatie van het project, afkomstig uit de metadata van het project |
project_keywords |
De sleutelwoorden van het project, afkomstig uit de metadata van het project |
project_last_saved |
Datum/tijd van wanneer project voor het laatst werd opgeslagen. |
project_path |
Het volledige pad (inclusief bestandsnaam) van het huidige project |
project_title |
De titel van het huidige project |
project_units |
De eenheden van het CRS van het project |
qgis_locale |
De huidige taal van QGIS |
qgis_os_name |
De naam van het huidige besturingssysteem, bijv ‘Windows’, ‘Linux’ of ‘OSX’ |
qgis_platform |
Het platform voor QGIS, bijv. ‘desktop’ of ‘server’ |
qgis_release_name |
De naam van de huidige uitgave voor QGIS |
qgis_short_version |
De verkorte tekenreeks voor de huidige versie van QGIS |
qgis_version |
De tekenreeks voor de huidige versie van QGIS |
qgis_version_no |
Het huidige versienummer voor QGIS |
row_number |
Slaat het nummer van de huidige rij op |
snapping_results |
Geeft toegang tot de resultaten voor snappen bij digitaliseren van een object (alleen beschikbaar in Object toevoegen) |
scale_value |
De huidige waarde voor afstand van de schaalbalk |
symbol_angle |
De hoek van symbool dat is gebruikt om het object te renderen (alleen geldig voor markeringssymbolen) |
symbol_color |
De kleur van het symbool dat is gebruikt om het object te renderen |
symbol_count |
Het aantal objecten, weergegeven door het symbool (in de Legenda van lay-out) |
symbol_id |
Het interne ID van het symbool (in de Legenda van de lay-out) |
symbol_label |
Het label voor het symbool (ofwel een door de gebruiker gedefinieerd label of het standaard, automatisch gemaakte, label - in de Legenda van de lay-out) |
user_account_name |
De accountnaam van de gebruiker voor het huidige besturingssysteem |
user_full_name |
De gebruikersnaam van de huidige gebruiker voor het besturingssysteem |
value |
De huidige waarde |
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 in een lay-out terug:
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' ) )
14.2.2.23. Functies Recent¶
Deze groep bevat recent gebruikte functies. Afhankelijk van de context van zijn gebruik (object selecteren, veldberekening, algemeen), worden recent toegepaste expressies toegevoegd aan de corresponderende lijst (tot maximaal tien expressies), gesorteerd van de meest tot de minst recente. Dit maakt het gemakkelijker om snel eerder gebruikte expressies terug te vinden.
14.2.3. 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.