Het object Expressions is in vele delen van QGIS beschikbaar. Toegang ertoe kan worden verkregen met behulp van de Expressie bouwer, de Selecteer objecten m.b.v reguliere expressie..., de optie voor de symboollaag Geometry generator, de Veldberekening of het gereedschap Datagedefinieerde gegevens. Gebaseerd op gegevens van de laag en vooraf gebouwde of gebruikergedefinieerde functies biedt het een krachtige manier om waarden van attributen, geometrie en variabelen te bewerken om dynamisch de stijl van de geometrie, de inhoud of positie van het label, de waarde voor het diagram, de hoogte van een item voor Printvormgeving, enkele objecten te selecteren, virtuele velden te maken ...
Enkele voorbeelden:
Vanuit Veldberekening, bereken een veld “pop_density” met behulp van bestaande velden “total_pop” en “area_km2”:
"total_pop" / "area_km2"
Werk het veld “density_level” bij met categorieën overeenkomstig de waarden van “pop_density”:
CASE WHEN "pop_density" < 50 THEN 'Low population density'
WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population density'
WHEN "pop_density" >= 150 THEN 'High population density'
END
Pas een stijl met categorieën toe op alle objecten overeenkomstig het feit of hun gemiddelde huizenprijs minder of meer is dan €10.000 per vierkante meter:
"price_m2" > 10000
Selecteer, met behulp van het gereedschap “Selecteer objecten m.b.v. regulier expressie...”l, alle objecten die gebieden vertegenwoordigen van “Dicht bevolkt” en waarvan de gemiddelde huizenprijs hoger is dan €10.000 per vierkante meter:
"density_level" = 'High population density' and "price_m2" > 10000
Op dezelfde wijze kan de vorige expressie ook worden gebruikt om te definiëren welke objecten zouden moeten worden gelabeld of moeten worden weergegeven op de kaart. Gebruiken van expressies biedt u een groot aantal mogelijkheden.
Het object Expressies biedt toegang tot de:
tab Expressie die te gebruiken functies vermeldt
tab Functiebewerker die helpt aangepaste functies te maken om in expressies te gebruiken.
Figure Expression 1:
De tab Expressie bevat zowel functies als velden van lagen en waarden. Hij bevat widgets om:
expressies in te voeren met behulp van functies en/of velden. Een voorbeeld van het resultaat van de expressie wordt weergegeven aan de onderzijde van het dialoogvenster.
de toepasselijke functie te selecteren uit een lijst. Een zoekvak is beschikbaar om de lijst te filteren en snel een bepaalde functie of veld te vinden. Dubbelklikken op de naam van het item voegt het toe aan de te schrijven expressie.
help weer te geven voor elke geselecteerde functie. Als een veld is geselecteerd, geeft dit widget een voorbeeld van de waarden weer. Dubbelklikken op een waarde voegt die toe aan de expressie.
De functies zijn georganiseerd in groepen om een functie snel te kunnen vinden. In Operatoren, vindt u wiskundige operatoren. Kijk in Berekening voor wiskundige functies. De groep Conversies bevat functies die het ene gegevenstype converteren naar een ander. De groep Tekenreeks verschaft functies voor tekenreeksen van gegevens, zoals Datum en tijd gegevens voor datum en tijd behandelt. In de groep Geometrie vindt u functies voor geometrieobjecten. Met functies uit de groep Record kunt u een nummering toevoegen aan uw gegevensset, terwijl de groep Velden en waarden helpt om alle attributen van de attributentabel te bekijken. De groep Custom vermeld de functies die werden gemaakt of geïmporteerd door de gebruiker. Er zijn nog veel meer groepen. zoals hieronder vermeld.
Deze groep bevat operatoren (bijv. +, -, *). Onthoud dat voor de meeste wiskundige functies hieronder, als één van de invoeren NULL is, is het resultaat NULL.
Functie |
Omschrijving |
---|---|
a + b | Optellen van twee waarden (a plus b) |
a - b | Aftrekken van twee waarden (a min b) |
a * b | Vermenigvuldiging van twee waarden (a vermenigvuldigd met b) |
a / b | Delen van twee waarden (a gedeeld door b) |
a % b | Restant van deling van a door b (bijv. 7 % 2 = 1, of 2 past drie keer in 7 met restant 1) |
a ^ b | Macht van twee waarden (bijvoorbeeld 2^2=4 of 2^3=8) |
a < b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant kleiner is dan de waarde aan de rechterkant (a is kleiner dan b) |
a <= b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant kleiner of gelijk is aan de waarde aan de rechterkant. |
a <> b | Vergelijkt twee waarden en evalueert naar 1 als zij niet aan elkaar gelijk zijn |
a = b | Vergelijkt twee waarden en evalueert naar 1 als zij aan elkaar gelijk zijn |
a != b | a en b zijn niet aan elkaar gelijk |
a > b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant groter is dan de waarde aan de rechterkant (a is groter dan b) |
a >= b | Vergelijkt twee waarden en evalueert naar 1 als de waarde aan de linkerkant groter of gelijk is aan de waarde aan de rechterkant. |
a ~ b | a komt overeen met de reguliere expressie b |
|| | Voegt twee waarden samen in één tekenreeks. Als één van de waarden NULL is, zal het resultaat NULL zijn |
‘\n’ | Voegt een nieuwe regel in in een tekenreeks |
LIKE | Geeft 1 terug als de eerste parameter overeenkomt met het opgegeven patroon |
ILIKE | Geeft 1 terug als de eerste parameter, hoofdletter ongevoelig, overeenkomt met het opgegeven patroon. (LIKE mag in plaats van ILIKE worden gebruikt om de overeenkomst hoofdlettergevoelig te maken) |
a IS b | Test of twee waarden identiek zijn. Geeft 1 terug als a hetzelfde is als b |
a OR b | Geeft 1 terug als voorwaarde a of b waar is |
a AND b | Geeft 1 terug als voorwaarden a en b waar zijn |
NOT | Draait een voorwaarde om |
column name “kolomnaam” |
Waarde van het veld Kolomnaam, zorg er voor niet te worden verward door een enkel aanhalingsteken, zie hieronder |
‘string’ | een waarde tekenreeks, zorg er voor niet te worden verward door een dubbele aanhalingstekens, zie hierboven |
NULL | waarde null |
a IS NULL | a heeft geen waarde |
a IS NOT NULL | a heeft een waarde |
a IN (waarde[,waarde]) |
a staat tussen de vermelde waarden |
a NOT IN (waarde[,waarde]) |
a staat niet tussen de vermelde waarden |
Enkele voorbeelden:
Voegt een tekenreeks en een waarde uit een naam van een kolom samen:
'My feature''s id is: ' || "gid"
Test of het attribuutveld “description” begint met de tekenreeks ‘Hello’ in de waarde (let op de positie van het teken %):
"description" LIKE 'Hello%'
Deze groep bevat functies waarmee controles van voorwaarden kunnen worden opgenomen in een expressie.
Functie |
Omschrijving |
---|---|
CASE WHEN ... THEN ... END | Evalueert een expressie en geeft een resultaat terug indien waar. U mag meerdere voorwaarden testen |
CASE WHEN ... THEN ... ELSE ... END | Evalueert een expressie en geeft een andere resultaat terug als het waar of onwaar is. U mag meerdere voorwaarden testen |
coalesce | Geeft de eerste waarde terug die niet NULL is uit de lijst van de expressie |
if | Test een voorwaarde en geeft een verschillend resultaat terug, afhankelijk van de controle van de voorwaarde |
regexp_match | Geeft true terug als enig deel van een tekenreeks overeenkomt met de opgegeven reguliere expressie |
Enkele voorbeelden:
Geeft een waarde terug als de eerste voorwaarde waar is, anders een andere waarde:
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
Deze groep bevat wiskundige functies (bijv. vierkantswortel, sin en cos).
Functie |
Omschrijving |
---|---|
abs | Geeft de absolute waarde van een getal terug |
acos | Geeft de inverse cosinus van een waarde in radialen terug |
asin | Geeft de inverse sinus van een waarde in radialen terug |
atan | Geeft de inverse cosinus van een waarde in radialen terug |
atan2(y,x) | Geeft de inverse tangens van y/x terug door de twee tekens van de twee argumenten te gebruiken om het kwadrant van het resultaat te bepalen |
azimuth(a,b) | Geeft de op het Noorden gebaseerde azimut terug als de hoek in radialen, met de klok mee gemeten van de verticaal van punt a naar punt b |
ceil | Rondt een getal naar boven af |
clamp | Beperkt een invoerwaarde tot een gespecificeerd bereik |
cos | Geeft de cosinus van een waarde in radialen terug |
degrees | Converteert van radialen naar graden |
exp | Geeft de exponentieel van een waarde terug |
floor | Rondt een getal naar beneden af |
ln | Geeft de natuurlijke logaritme van de opgegeven expressie terug |
log | Geeft de waarde van de logaritme van de opgegeven waarde en basis terug |
log10 | Geeft de waarde van de logaritme basis 10 van de opgegeven expressie terug |
max | Geeft de grootste waarde uit een verzameling waarden terug |
min | Geeft de kleinste waarde uit een verzameling waarden terug |
pi | Geeft de waarde Pi terug voor berekeningen |
radians | Converteert van graden naar radialen. |
rand | Geeft een willekeurig geheel getal terug binnen het bereik dat is gespecificeerd door de argumenten minimum en maximum (inclusief) |
randf | Geeft een willekeurig getal float terug binnen het bereik dat is gespecificeerd door de argumenten minimum en maximum (inclusief) |
round | Rondt een getal af naar het aantal plaatsen achter de komma |
scale_exp | Transformeert een opgegeven waarde uit een invoerdomein naar een uitvoerbereik met behulp van lineaire interpolatie |
scale_linear | Transformeert een opgegeven waarde uit een invoerdomein naar een uitvoerbereik met behulp van lineaire interpolatie |
sin | Geeft de sinus van een hoek terug |
sqrt | Geeft de vierkantswortel van een waarde terug |
tan | Geeft de tangens van een hoek terug |
Deze groep bevat functies waarmee u kleuren kunt bewerken.
Functie |
Omschrijving |
---|---|
color_cmyk | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten cyan, magenta, yellow en black |
color_cmyka | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten cyan, magenta, yellow, black en alfa (transparantie) |
color_hsl | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging en helderheid ervan |
color_hsla | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging, helderheid en alfa (transparantie) |
color_hsv | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging en waarde ervan |
color_hsva | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de attributen tint, verzadiging, waarde en alfa (transparantie) ervan |
color_part | Geeft een specifieke component uit een tekenreeks voor een kleur terug, bijv, de rode component of alfa-component |
color_rgb | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten rood, groen en blauw |
color_rgba | Geeft een kleur terug in de weergave van een tekenreeks, gebaseerd op de componenten rood, groen en blauw en alfa (transparantie) |
darker | Geeft een donkere (of lichtere) kleurenreeks terug |
lighter | Geeft een lichtere (of donkerder) kleurenreeks terug |
project_color | Geeft een kleur terug uit een kleurenschema van een project. |
ramp_color | Geeft een kleur vanuit een kleurenbalk terug in de weergave van een tekenreeks |
set_color_part | Stelt een specifieke kleurcomponent in voor een tekenreeks voor een kleur, bijv, de rode component of alfa-component |
Deze groep bevat functies om een gegevenstype te converteren naar een ander type (bijv string naar integer, integer naar string).
Functie |
Omschrijving |
---|---|
to_date | Converteert een tekenreeks naar een object date |
to_datetime | Converteert een tekenreeks naar een object datetime |
to_int | Converteert een tekenreeks naar een geheel getal |
to_interval | Converteert een tekenreeks naar een type interval (kan worden gebruikt om dagen, uren maanden etc uit een datum te halen) |
to_real | Converteert een tekenreeks naar een getal real |
to_string | Converteert een getal naar een tekenreeks |
to_time | Converteert een tekenreeks naar een object time |
Deze groep bevat aangepaste functies die door de, gebruiker zijn gedefinieerd. Bekijk function_editor voor meer details.
Deze groep bevat functies voor het behandelen van gegevens met betrekking tot datum en tijd.
Functie |
Omschrijving |
---|---|
age | Geeft als een interval het verschil terug tussen twee datums of datetimes |
day | Neemt de dag uit een datum of datetime, of het aantal dagen vanaf een interval. |
day_of_week | Geeft een getal terug dat overeenkomt met de dag van de week voor een opgegeven datum of datetime |
hour | Neemt het gedeelte uur uit een datetime of time, of het aantal uren vanaf een interval |
minute | Neemt het gedeelte minuten uit een datetime of time, of het aantal minuten vanaf een interval |
month | Neemt het gedeelte maand uit een datum of datetime, of het aantal maanden vanaf een interval |
now() | Geeft de huidige datum en tijd terug |
second | Neemt het gedeelte seconde uit een datetime of time, of het aantal seconden vanaf een interval |
week | Neemt het weeknummer uit een datum of datetime, of het aantal weken vanaf een interval |
year | Neemt het gedeelte jaar uit een datum of datetime, of het aantal jaren vanaf een interval. |
Enkele voorbeelden:
Verkrijg de maand en het jaar van vandaag in de indeling “10/2014”
month(now()) || '/' || year(now())
Bevat een lijst met velden uit de laag.
Over het algemeen kunt u de verscheidene velden, waarden en functies gebruiken om de expressie voor de berekening te construeren, of u kunt het gewoon intypen in het vak.
U klikt eenvoudigweg op het toepasselijke veld en kiest uit 10 voorbeelden en alle unieke om de waarden van een veld weer te geven. Aan de rechterkant opent de lijst Veldwaarden met de unieke waarden. Boven in de lijst kan een zoekvak helpen met filteren van de aarden. Dubbelklik op de naam ervan in de lijst om een waarde toe te voegen aan de expressie die u aan het schrijven bent.
Toegang tot de voorbeeldwaarden kan ook worden verkregen door met rechts te klikken. Selecteer de veldnaam uit de lijst, klik dan met rechts om toegang te krijgen tot een contextmenu met opties om voorbeeldwaarden uit het geselecteerde veld te laden.
Namen van velden moeten omsloten worden door dubbele aanhalingstekens in de expressie. Waarden moeten omsloten worden door enkele aanhalingstekens.
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 |
Deze groep bevat de algemeen gebruikte functies.
Functie |
Omschrijving |
---|---|
eval | Evalueert een expressie die wordt doorgegeven in een tekenreeks. Nuttig om dynamische parameters uit te breiden die zijn doorgegeven als contextvariabelen of velden |
layer_property | Geeft een eigenschap van een laag terug of een waarde van de metadata ervan. Het kan zijn de laagnaam, CRS, type geometrie, aantal objecten... |
var | Geeft de opgeslagen waarde uit een gespecificeerde variabele terug. Bekijk de variabele functies hieronder |
De groep bevat functies die werken voor geometrie-objecten (bijv. lengte, oppervlakte).
Functie |
Omschrijving |
---|---|
$area | Geeft het gebied van het huidige object terug |
$geometry | Geeft de geometrie van het huidige object terug (kan worden gebruikt bij verwerken met andere functies) |
$length | Geeft de lengte van het huidige lijnobject terug |
$perimeter | Geeft de lengte van de rand terug van het huidige polygoonobject |
$x | Geeft de X-coördinaat van het huidige object terug |
$x_at(n) | Geeft de X-coördinaat terug van de n-de knoop van de geometrie van het huidige object |
$y | Geeft de Y-coördinaat van het huidige object terug |
$y_at(n) | Geeft de Y-coördinaat terug van de n-de knoop van de geometrie van het huidige object |
area | Geeft het gebied terug van een geometrie polygoonobject. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
bounds | Geeft een geometrie terug die het begrenzingsvak van een invoer-geometrie weergeeft. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
bounds_height | Geeft de hoogte van het begrenzingsvak van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
bounds_width | Geeft de breedte van het begrenzingsvak van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
buffer | Geeft een geometrie terug die alle punten weergeeft waarvan de afstand vanaf deze geometrie kleiner is dan of gelijk is aan afstand. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
centroid | Geeft het geometrische midden van een geometrie terug |
closest_point | Geeft het punt terug op een geometrie dat het dichtst bij een tweede geometrie ligt |
combine | Geeft de combinatie van twee geometrieën terug |
contains(a,b) | Geeft 1 (true) terug als en alleen als er geen punten van geometrie b in het exterieur van geometrie a liggen, en tenminste één punt van het interieur van b in het interieur van a ligt. |
convex_hull | Geeft de convex hull van een geometrie terug (dit vertegenwoordigt de minimale convex-geometrie die alle geometrieën binnen de verzameling omsluit) |
crosses | Geeft 1 (true) terug als de opgegeven geometrieën enkele, maar niet alle, punten in het interieur gemeenschappelijk hebben |
difference(a,b) | Geeft een geometrie terug die dat deel van geometrie a weergeeft dat niet kruist met geometrie b. |
disjoint | Geeft 1 (true) terug als de geometrieën geen enkele ruimte met elkaar delen |
distance | Geeft de minimum afstand (gebaseerd op ruimtelijke verwijzing) tussen twee geometrieën in geprojecteerde eenheden terug |
end_point | Geeft de laatste knoop uit een geometrie terug |
exterior_ring | Geeft een lijn terug die de buitenste ring voorstelt van een geometrie polygoon. Als de geometrie geen polygoon is zal het resultaat null zijn |
extrude(geom,x,y) | Geeft een uitgetrokken versie van de invoergeometrie (Multi-)Curve of (Multi-)Linestring met een uitbreiding die wordt gespecificeerd door X en Y. |
geom_from_gml | Geeft een geometrie terug uit een GML-weergave van geometrie |
geom_from_wkt | Geeft een geometrie terug, gemaakt uit een Well-Known Text (WKT)-weergave |
geom_to_wkt | Geeft de weergave in Well-Known Text (WKT) van de geometrie terug zonder de metadata voor het SRID |
geometry | Geeft de geometrie van een object terug |
geometry_n | Geeft de n-de geometrie terug uit een verzameling geometrieën, of null als de invoergeometrie geen verzameling is. |
interior_ring_n | Geeft de n-de binnenste ring terug uit een geometrie polygoon, of null als de invoergeometrie geen polygoon is. |
intersection | Geeft een geometrie terug die het gedeelde deel weergeeft van twee geometrieën |
intersects | Test of een geometrie een andere kruist. Geeft 1 (true) terug als de geometrieën elkaar ruimtelijk kruisen (een stukje ruimte met elkaar delen) en 0 als zij dat niet doen. |
intersects_bbox | Test of een begrenzingsvak van een geometrie het begrenzingsvak van een andere geometrie overlapt. Geeft 1 (true) terug als de geometrieën ruimtelijk kruisen (een stukje ruimte met elkaar delen) met hun begrenzingsvak en 0 als zij dat niet doen. |
is_closed | Geeft true terug als een lijn gesloten is (begin- en eindpunt zijn hetzelfde), false als een lijn niet gesloten is en null als de geometrie geen lijn is |
length | Geeft de lengte van een object lijngeometrie terug (of de lengte van een tekenreeks) |
m | Geeft de waarde m van een puntgeometrie terug |
make_line | Maakt een lijngeometrie van een verzameling puntgeometrieën |
make_point(x,y,z,m) | Maakt een puntgeometrie van x- en y-waarden (en optioneel z- en m-waarden) |
make_point_m(x,y,m) | Maakt een puntgeometrie van X- en Y-coördinaten en waarden M. |
make_polygon | Maakt een polygoongeometrie van een buitenring- en optioneel een verzameling van binnenringgeometrieën |
nodes_to_points | Geeft een multipunt geometrie terug, bestaande uit elke knoop in de invoergeometrie |
num_geometries | Geeft het aantal geometrieën terug uit een verzameling geometrieën, of null als de invoergeometrie geen verzameling is |
num_interior_rings | Geeft het aantal binnenste ringen terug uit een polygoon of verzameling van geometrie, of null als de invoergeometrie geen polygoon of verzameling van geometrie is |
num_points | Geeft het aantal punten in een geometrie terug |
num_rings | Geeft het aantal ringen (inclusief buitenste ringen) terug uit een polygoon of verzameling van geometrie, of null als de invoergeometrie geen polygoon of verzameling is |
order_parts | Sorteert de delen van een MultiGeometrie op opgegeven criteria |
overlaps | Test of een geometrie een andere overlapt. Geeft 1 (true) terug als de geometrieën ruimte delen, van dezelfde dimensie zijn, maar niet volledig door elkaar worden omvat |
perimeter | Geeft de perimeter terug van een geometrie polygoonobject. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
point_n | Geeft een specifieke knoop uit een geometrie terug |
point_on_surface | Geeft een punt terug dat gegarandeerd is gelegen op het oppervlak van een geometrie |
relate | Test of geeft de weergave Dimensional Extended 9 Intersection Model (DE-9IM) van de relatie tussen twee geometrieën weer |
reverse | Draait de richting van een lijn om door de volgorde van zijn punten om te draaien |
segments_to_lines | Geeft een multilijn geometrie terug, bestaande uit een lijn voor elk segment in de invoergeometrie |
shortest_line | Geeft de kortste lijn terug die twee geometrieën met elkaar verbindt. De resulterende lijn zal beginnen op geometrie 1 en eindigen op geometrie 2 |
start_point | Geeft de eerste knoop uit een geometrie terug |
sym_difference | Geeft een geometrie terug die het gedeelte weergeeft van twee geometrieën die elkaar niet kruisen |
touches | Test of een geometrie een andere raakt. Geeft 1 (true) terug als de geometrieën tenminste één gemeenschappelijk punt hebben, maar hun interieurs kruisen niet |
transform | Geeft de getransformeerde geometrie terug van een bron-CRS naar een doel-CRS |
translate | Geeft een vertaalde versie van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
union | Geeft een geometrie terug die de verenigde verzameling van punten weergeeft van de geometrieën |
within (a,b) | Test of een geometrie in een andere ligt. Geeft 1 (true) terug als geometrie a volledig binnen geometrie b ligt |
x | Geeft de X-coördinaat van een puntgeometrie terug, of de X-coördinaat van het zwaartepunt van een niet-puntgeometrie |
x_min | Geeft de minimum X-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
x_max | Geeft de maximum X-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie. |
y | Geeft de Y-coördinaat van een puntgeometrie terug, of de Y-coördinaat van het zwaartepunt van een niet-puntgeometrie |
y_min | Geeft de minimum Y-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
y_max | Geeft de maximum Y-coördinaat van een geometrie terug. Berekeningen zijn in het ruimtelijke referentiesysteem van deze geometrie |
z | Geeft de Z-coördinaat van een puntgeometrie terug |
Enkele voorbeelden:
Geeft de X-coördinaat terug van of het zwaartepunt van het huidige object:
x($geometry)
Stuur een waarde terug overeenkomstig het gebied van het object:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
Deze groep bevat functies voor het bewerken van unieke record-ID’s.
Functie |
Omschrijving |
---|---|
$currentfeature | Geeft het huidige object weer dat wordt geëvalueerd. Dit kan worden gebruikt met de functie ‘attribute’ om waarden van attributen van het huidige object te evalueren. |
$id | Geeft het object-ID van de huidige rij terug |
$map | Geeft het ID van het huidige kaartitem terug als de kaart wordt getekend in een lay-out, of “canvas” indien de kaart wordt getekend in het hoofdvenster van QGIS |
$rownum | Geeft het nummer van de huidige rij terug |
$scale | Geeft de huidige schaal van het kaartvenster terug |
attribute | Geeft de waarde van een gespecificeerd attribuut van een object terug. |
get_feature | Geeft het eerste object uit een laag terug dat voldoet aan een bepaalde opgegeven waarde voor een attribuut. |
uuid | Genereert een Universally Unique Identifier (UUID) voor elke rij. Elke UUID is 38 tekens lang |
Enkele voorbeelden:
Geeft het eerste object terug uit laag “LaagA” waarvan het veld “id” dezelfde waarde heeft als het veld “name” van het huidige object (een soort samenvoeging):
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Bereken het gebied van het samengevoegde object uit het vorige voorbeeld:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
Deze groep bevat functies die werken op tekst (bijv. vervangen, omzetten naar hoofdletters).
Functie |
Omschrijving |
---|---|
concat | Voegt verscheidene tekenreeksen samen tot één |
format | Maakt een tekenreeks op met behulp van de opgegeven argumenten |
format_date | maakt een type datum of tekenreeks op in een aangepaste indeling voor een tekenreeks |
format_number | Geeft een getal terug dat is opgemaakt met het lokale scheidingsteken voor duizendtallen (breekt ook het getal af tot het opgegeven aantal plaatsen achter de komma) |
left(string, n) | Geeft een subtekenreeks terug die de n meest links gelegen tekens van de tekenreeks bevat |
length | Geeft de lengte van een tekenreeks terug (of de lengte van een object lijngeometrie) |
lower | converteert een tekenreeks naar kleine letters |
lpad | Geeft een tekenreeks terug van de opgegeven breedte die vanaf links is uitgevuld met een vulteken |
regexp_replace | Geeft een tekenreeks terug waarin de opgegeven reguliere expressie is vervangen |
regexp_substr | Geeft het gedeelte van een tekenreeks terug dat overeenkomt met een opgegeven reguliere expressie |
replace | Geeft een tekenreeks terug waarin de opgegeven reguliere expressie is vervangen |
right(string, n) | Geeft een subtekenreeks terug die de n meest rechts gelegen tekens van de tekenreeks bevat |
rpad | Geeft een tekenreeks terug van de opgegeven breedte die vanaf links is uitgevuld met een vulteken |
strpos | Geeft de index terug voor een reguliere expressie in een tekenreeks |
substr | Geeft een deel van een tekenreeks terug |
title | Converteert alle woorden van een tekenreeks naar titels (alle woorden in kleine letters met hoofdletter aan het begin) |
trim | Verwijdert alle voor- en achterliggende witruimte (spaties, tabs, etc) uit een tekenreeks |
upper | Converteert een tekenreeks naar hoofdletters |
wordwrap | Geeft een tekenreeks terug die is afgebroken tot een maximum/minimum aantal tekens |
Deze groep bevat recent gebruikte functies. Elke in het dialoogvenster expressie gebruikte expressie wordt toegevoegd aan de lijst, gesorteerd van de meest recente tot de minder recente. Dit helpt om snel een eerdere expressie terug te vinden.
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 Selecteer object m.b.v. een reguliere expressie
in het dialoogvenster Laageigenschappen
in de Printvormgeving
Om deze functies te gebruiken in een expressie zouden zij moeten worden voorafgegaan door het teken @ (bijv. @row_number). Betrokken zijn:
Functie |
Omschrijving |
---|---|
atlas_feature | Geeft het huidige object in atlas terug (als Atlas-object). |
atlas_featureid | Geeft het huidige Atlas object-ID terug |
atlas_featurenumber | Geeft het totale aantal pagina’s in de lay-out terug |
atlas_filename | Geeft de huidige bestandsnaam voor Atlas terug |
atlas_geometry | Geeft de huidige geometrie voor het Atlas-object terug |
atlas_pagename | Geeft de huidige paginanaam voor Atlas terug |
atlas_totalfeatures | Geeft het totale aantal objecten in de atlas terug |
grid_axis | Huidige as voor annotatie raster (bijv, ‘x’ voor longitude, ‘y’ voor latitude). |
grid_number | Geeft de huidige waarde annotatie raster terug |
item_id | Geeft huidige gebruikers-ID van item Printvormgeving terug (niet noodzakelijkerwijze uniek). |
item_uuid | Geeft unieke ID van item Printvormgeving terug |
layer_id | Geeft ID van huidige laag terug |
layer_name | Geeft de naam van de huidige laag terug |
layout_dpi | Geeft de resolutie van de lay-out terug (DPI) |
layout_numpages | Geeft het aantal pagina’s in de lay-out terug |
layout_pageheight | Geeft de hoogte van pagina in lay-out in mm terug |
layout_pagewidth | Geeft de breedte van pagina in lay-out in mm terug |
map_id | Geeft de ID van huidige doel op de kaart terug. Dit zal ‘canvas’ zijn voor renders van het kaartvenster, en het item-ID voor renders van de Printvormgeving. |
map_extent_center | Geeft het puntobject in het midden van het kaartvenster terug |
map_extent_height | Geeft de huidige hoogte van de kaart terug |
kaart_bereik_breedte |
Geeft de huidige breedte van de kaart terug |
map_rotation | Geeft de huidige rotatie van de kaart terug |
map_scale | Geeft de huidige schaal van de kaart terug |
project_filename | Geeft de bestandsnaam van het huidige project terug |
project_folder | Geeft de map voor het huidige project terug |
project_path | Geeft het volledige pad (inclusief bestandsnaam) van het huidige project terug |
project_title | Geeft de titel van het huidige project terug |
qgis_os_name | Geeft de naam van het huidige besturingssysteem terug, bijv ‘Windows’, ‘Linux’ of ‘OSX’ |
qgis_platform | Geeft het platform voor QGIS terug, bijv ‘desktop’ of ‘server’ |
qgis_release_name | Geeft de huidige naam van de uitgave voor QGIS terug |
qgis_version | Geeft de tekenreeks voor de versie van QGIS terug |
qgis_version_no | Geeft het huidige versienummer voor QGIS terug |
symbol_angle | Geeft de hoek van symbool terug die is gebruikt om het object te renderen (alleen geldig voor markeringssymbolen) |
symbol_color | Geeft de kleur van het symbool terug dat is gebruikt voor het renderen van het object |
user_account_name | Geeft de accountnaam van de gebruiker voor het huidige besturingssysteem terug |
user_full_name | Geeft de gebruikersnaam van gebruiker voor het huidige besturingssysteem |
row_number | Slaat het nummer van de huidige rij op |
Met de Functiebewerker bent u in staat om uw eigen aangepaste functies voor Python op een comfortabele manier te definiéren.
Figure Expression 2:
De functiebewerker zal nieuwe bestanden voor Python maken in qgis2pythonexpressions en zal automatisch alle functies laden, die zijn gedefinieerd, bij het starten van QGIS. Onthoud goed dat nieuwe functies alleen worden opgeslagen in de map expressions en niet in het projectbestand. Als u een project heeft dat een van uw aangepaste functies gebruikt, dient u ook het .py-bestand te delen in de map expressions.
Hier is een kort voorbeeld over hoe u uw eigen aangepaste functies maakt:
@qgsfunction(args="auto", group='Custom')
def myfunc(value1, value2, feature, parent):
pass
Het korte voorbeeld maakt een functie ‘myfunc’ die u een functie zal geven met twee waarden. Bij het gebruiken van het argument voor de functie args=’auto’ zal het aantal argumenten voor de functie worden berekend door het aantal argumenten waarmee de functie werd gedefinieerd in Python (minus 2 - object, en ouder).
Deze functie kan dan worden gebruikt met de volgende expressie:
myfunc('test1', 'test2')
Uw functie zal worden geïmplementeerd in de groep functies :guilabel:’Custom’ op de tab Expressie na het gebruiken van de knop Script uitvoeren.
Meer informatie over het maken van code voor Python kan worden gevonden in het PyQGIS Developer Cookbook.
De functiebewerker is niet alleen beperkt tot het werken met Veldberekening, hij is overal te vinden waar u met expressies werkt.