Funcționalitatea Expresiilor este disponibilă în mai multe zone ale QGIS. Aceasta poate fi accesată de către Constructorul de Expresii, Selectarea după o Expresie..., opțiunea stratului pentru simboluri de tipul Generator de Geometrie, Calculatorul de câmpuri sau instrumentul de Suprascriere a definițiilor cu ajutorul datelor. Pe baza datelor stratului și a funcțiilor precompilate sau definite de utilizator, vi se oferă o modalitate puternică de a manipula valorile atributelor, geometria și variabilele, în scopul schimbării, în mod dinamic, a stilului de geometrie, a conținutului sau a poziției etichetei, valoarea diagramei, înălțimea unui element de compozitor, selecția unele entități, crearea câmpului virtual ...
Câteva exemple:
De la câmp Calculator, se calculează câmpul “pop_density” folosind câmpurile existente “total_pop” și “area_km2”:
"total_pop" / "area_km2"
Actualizarea câmpului “density_level” cu categorii, în funcție de valorile “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
Aplicarea unui stil categorisit pentru toate entitățile, în funcție de prețul mediu al casei, dacă este mai mică sau mai mare de 10000€ pe metru pătrat:
"price_m2" > 10000
Folosind instrumentul de “Selectare După Expresie...”, selectați toate entitățile care reprezintă zonele cu “Densitate ridicată a populației” și în care prețul mediu pentru o casă este mai mare de 10000€ pe metru pătrat:
"density_level" = 'High population density' and "price_m2" > 10000
În acelaşi mod, expresia anterioară ar putea fi utilizată pentru a stabili ce entități trebuie să fie etichetate sau afișate pe hartă. Folosirea expresiilor vă oferă o mulțime de posibilități.
Expresiile oferă acces la:
fila Expresiilor, care enumeră funcțiile ce pot fi utilizate
fila Editorului de Funcții care ajută la crearea unor funcții personalizate, dedicate utilizării în expresii.
Figure Expression 1:
Fila Expresiilor conține, alături de funcții, câmpurile și valorile stratului. Ea conține controale grafice pentru:
introducerea de expresii care utilizează funcții și/sau câmpuri. O previzualizare a rezultatului expresiei este afișată în partea de jos a dialogului.
selectarea funcției adecvate dintr-o listă. O casetă de căutare este disponibilă pentru a filtra lista și pentru a găsi rapid o anumită funcție sau un câmp. Un dublu-clic pe numele unui element va produce adăugarea acestuia în expresia introdusă.
afișarea ajutorului pentru fiecare funcție selectată. Atunci când un câmp este selectat, acest control grafic prezintă o mostră a valorilor sale. Un dublu-clic pe o valoare va produce adăugarea acesteia în expresia introdusă.
Pentru a găsi rapid o funcție, acestea sunt organizate în grupuri. În Operatori, găsiți operatorii matematici. Uitați-vă în Matematică pentru funcții matematice. Grupul Conversiilor conține funcții care transformă un tip de date într-altul. Grupul Șirurilor oferă funcții pentru șiruri de date, cum ar fi Data și Ora, care se ocupă de dată și oră. În grupul Geometriilor, veți găsi funcții pentru obiectele geometrice. Cu ajutorul grupului de funcții Înregistrare, puteți adăuga o numerație setului dvs. de date, în timp ce grupul Câmpurilor și Valorilor ajută la vizualizarea tuturor atributelor tabelului de atribute. Grupul funcțiilor Personalizate conține funcțiile create sau importate de către utilizator. Există multe alte grupuri, enumerate mai jos.
Acest grup cuprinde operatorii (ex.: +, -, *). De notat că pentru majoritatea funcțiilor matematice de mai jos, în cazul în care una dintre intrări are valoarea NULL, atunci rezultatul este NULL.
Funcția |
Descriere |
---|---|
a + b | Adunarea a două valori (a plus b) |
a - b | Scăderea a două valori (a minus b) |
a * b | Înmulțirea a două valori (a înmulțit cu b) |
a / b | Împărțirea a două valori (a împărțit la b) |
a % b | Restul împărțirii lui a la b (ex.: 7 % 2 = 1, sau 2 se potrivește de trei ori în 7, având restul 1) |
a ^ b | Puterea a două valori (de exemplu, 2^2=4 or 2^3=8) |
a < b | Compară două valori și le evaluează la 1, dacă valoarea din stânga este mai mică decât cea din dreapta. (a este mai mic decât b) |
a <= b | Compară două valori și le evaluează la 1, dacă valoarea din stânga este mai mică sau egală cu cea din dreapta |
a <> b | Compară două valori, și le evaluează la 1 dacă acestea nu sunt egale |
a = b | Compară două valori și le evaluează la 1, dacă acestea sunt egale |
a != b | a și b nu sunt egale |
a > b | Compară două valori și le evaluează la 1, dacă valoarea din stânga este mai mare decât cea din dreapta (a este mai mare decât b) |
a >= b | Compară două valori și le evaluează la 1, dacă valoarea din stânga este mai mare sau egală cu cea din dreapta |
a ~ b | a se potrivește cu expresia regulată b |
|| | Îmbină două valori într-un șir. Dacă una dintre valori este NULL, atunci rezultatul va fi NULL. |
‘\n’ | Introduce o nouă linie într-un șir |
LIKE | Returnează 1 dacă primul parametru se potrivește cu modelul furnizat |
ILIKE | Returnează 1 dacă primul parametru se potrivește, în mod insensibil la context, cu modelul furnizat. (ILIKE poate fi folosit în loc de LIKE, pentru a realiza o identificare insensibilă la context) |
a IS b | Stabilește dacă două valori sunt identice. Returnează 1 dacă a este similar cu b |
a OR b | Returnează 1 atunci când condițiile a sau b sunt adevărate |
a AND b | Returnează 1 atunci când condițiile a și b sunt adevărate |
NOT | Neagă o condiție |
nume de coloană “numele coloanei” |
Valoarea din câmpul reprezentat de numele coloanei; a se vedea mai jos, pentru a nu face confuzie cu ghilimelele simple |
‘șir’ |
o valoare de tip șir; a se vedea mai sus, pentru a nu face confuzie cu ghilimelele duble |
NULL | valoarea NULL |
a IS NULL | a nu are nici o valoare |
a IS NOT NULL | a are o valoare |
a IN (value[,value]) | a se află în lista de valori |
a NOT IN (value[,value]) | a nu se află în lista de valori |
Câteva exemple:
Îmbină un șir cu o valoare din numele unei coloane:
'My feature''s id is: ' || "gid"
Testați dacă atributul câmpului “description” începe cu șirul ‘Hello’ (notați poziția caracterului %):
"description" LIKE 'Hello%'
Acest grup conține funcții care gestionează verificările condiționale din expresii.
Funcția |
Descriere |
---|---|
CASE WHEN ... THEN ... END | Evaluează o expresie și returnează un rezultat dacă este adevărat. Aveți posibilitatea să testați mai multe condiții |
CASE WHEN ... THEN ... ELSE ... END | Evaluează o expresie și returnează diverse rezultate, în funcție de valorile returnate, true sau false. Aveți posibilitatea de a testa mai multe condiții |
coalesce | Returnează prima valoare non-NULL din lista de expresii |
if | Teste o condiție și returnează un rezultat diferit, în funcție de verificarea condițională |
regexp_match | Returneaza true dacă orice parte dintr-un șir se potrivește cu expresia regulată specificată |
Câteva exemple:
Trimite înapoi o valoare în cazul în care prima condiție este adevărată, altfel, transmite o altă valoare:
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
Acest grup conține funcții matematice (ex.: rădăcina pătrată, sin și cos).
Funcția |
Descriere |
---|---|
abs | Returnează valoarea absolută a unui număr |
acos | Returnează cosinusul invers al unei valori, în radiani |
asin | Returnează sinusul invers al unei valori, în radiani |
atan | Returnează cosinusul invers al unei valori, în radiani |
atan2(y,x) | Returnează tangenta inversă a y/d, folosind semnele a două argumente pentru a determina cadranul rezultatului |
azimuth(a,b) | Returnează azimutul, în funcție de nord, ca unghiul măsurat în radiani, în sens orar, pe verticală, de la punctul a la punctul b |
ceil | Rotunjește în sus un număr |
clamp | Restricționează într-un interval specificat o valoare de intrare |
cos | Returnează cosinusul unei valori, în radiani |
degrees | Convertește din radiani în grade |
exp | Returnează exponentul unei valori |
floor | Rotunjește în jos un număr |
ln | Returnează logaritmul natural al expresiei transmise |
log | Returnează valoarea logaritmului pentru valoarea și baza transmise |
log10 | Returnează valoarea logaritmului în baza 10 pentru expresia transmisă |
max | Returnează cea mai mare valoare dintr-un set de valori |
min | Returnează cea mai mică valoare dintr-un set de valori |
pi | Returnează valoarea pi, pentru calcule |
radians | Convertește din grade în radiani |
rand | Returnează un număr aleator întreg, în intervalul specificat de argumentele minim și maxim (inclusiv). |
randf | Returnează un număr aleator zecimal, în intervalul specificat de argumentele minim și maxim (inclusiv) |
round | Rotunjește la numărul de poziții zecimale |
scale_exp | Transformă o valoare dată dintr-un domeniu de intrare la un interval de ieșire, folosind o curbă exponențială |
scale_linear | Transformă o valoare dată dintr-un domeniu de intrare la un interval de ieșire, folosind o interpolare liniară |
sin | Returnează sinusul unui unghi |
sqrt | Returnează rădăcina pătrată a unei valori |
tan | Returnează tangenta unui unghi |
Acest grup conține funcții pentru manipularea culorilor.
Funcția |
Descriere |
---|---|
color_cmyk | Returnează o reprezentare de tip șir a unei culori, în funcție de componentele ei cyan, magenta, galben și negru |
color_cmyka | Returnează o reprezentare de tip șir a unei culori, în funcție de componentele ei cyan, magenta, galben, negru și alpha (transparență) |
color_hsl | Returnează o reprezentare de tip șir a culorii, pe baza atributelor nuanței, saturației și luminozității |
color_hsla | Returnează o reprezentare de tip șir a culorii, pe baza atributelor nuanței, saturației, luminozității și alpha (transparență) |
color_hsv | Returnează o reprezentare de tip șir a culorii, pe baza atributelor nuanței, saturației și valorii |
color_hsva | Returnează o reprezentare de tip șir a culorii, pe baza atributelor nuanței, saturației, valorii și alpha (transparență) |
color_part | Returnează o componentă specifică dintr-un șir de culoare, de exemplu, o componentă roșie sau o componentă alfa |
color_rgb | Returnează o reprezentare de tip șir a culorii, pe baza componentelor roșie, verde și albastră |
color_rgba | Returnează o reprezentare de tip șir a culorii, pe baza componentelor roșie, verde, albastră și alpha (transparență) |
darker | Returnează o culoare, de tip șir, mai închisă (sau mai deschisă) |
lighter | Returnează o culoare, de tip șir, mai deschisă (sau mai închisă) |
project_color | Returnează o culoare din schema de culori a proiectului |
ramp_color | Returnează o reprezentare de tip șir a culorii, dintr-un interval de culori |
set_color_part | Setează o componentă de culoare specifică pentru un șir de culoare, cum ar fi o componentă roșie sau o componentă alfa |
Acest grup conține funcții pentru transformarea dintr-un tip de dată în altul (ex.: din șir în întreg, din întreg în șir).
Funcția |
Descriere |
---|---|
to_date | Convertește un șir într-un obiect de tip dată |
to_datetime | Convertește un șir într-un obiect datetime |
to_int | Convertește un șir într-un număr întreg |
to_interval | Convertește un șir într-un interval (poate fi folosit pentru a returna zilele, orele, lunile, etc dintr-o dată) |
to_real | Convertește un șir într-un număr real |
to_string | Convertește un număr într-un șir |
to_time | Convertește un șir într-un obiect time |
Acest grup conține funcții create de către utilizatori. Vedeți function_editor pentru mai multe detalii.
Acest grup conține funcții care gestionează datele calendaristice și ora.
Funcția |
Descriere |
---|---|
age | Returnează diferența dintre două date sau de tip datetimes, sub formă de interval |
day | Extrage ziua dintr-o dată sau dintr-o valoare datetime, sau numărul de zile dintr-un interval. |
day_of_week | Returnează un număr corespunzător zilei din săptămână, pentru data sau valoarea datetime specificată |
hour | Extrage partea corespunzătoare orei dintr-o valoare datetime sau time, sau numărul de ore dintr-un interval |
minute | Extrage partea corespunzătoare minutelor dintr-o valoare datetime sau time, sau numărul de minute dintr-un interval. |
month | Extrage partea corespunzătoare lunii dintr-o valoare datetime sau time, sau numărul lunii dintr-un interval. |
now() | Returnează data și ora curente |
secundă |
Extrage partea corespunzătoare secundelor dintr-o valoare time sau datetime, sau numărul de secunde dintr-un interval |
week | Extrage numărul săptămânii dintr-o valoare date sau datetime, sau numărul de săptămâni dintr-un interval |
year | Extrage partea corespunzătoare anului dintr-o valoare datetime sau time, sau numărul de ani dintr-un interval |
Câteva exemple:
Obține luna și anul curente, în formatul “10/2014”
month(now()) || '/' || year(now())
Conține o listă de câmpuri dintr-un strat.
În general, puteți utiliza diferite câmpuri, valori și funcții, pentru a construi expresia de calcul, sau o puteți introduce în casetă, pur și simplu.
Pentru a afișa valorile unui câmp, trebuie doar să faceți clic pe câmpul corespunzător și să alegeți între Încărcarea primelor 10 valori și Încărcarea tuturor valorilor unice. În partea dreaptă se află lista cu Valorile Câmpurilor, în care sunt extrase valorile unice. În partea de sus a listei, o casetă de căutare ajută la filtrarea valorilor. Pentru a adăuga o valoare expresiei pe care o scrieți, faceți dublu clic pe numele ei.
De asemenea, valorile eșantion pot fi accesate printr-un clic-dreapta. Selectați numele câmpului din listă, apoi efectuați un clic-dreapta pentru a accesa meniul contextual cu opțiuni, pentru a încărca valorile eșantion din câmpul selectat.
În cadrul expresiei, numele câmpurilor ar trebui să se afle între ghilimele duble. Valorile sau șirurile trebuie să fie incluse între ghilimele simple.
Acest grup conține funcții pentru comparații fuzzy între valori.
Funcția |
Descriere |
---|---|
hamming_distance | Returnează numărul de caractere la pozițiile corespunzătoare acelora din șirurilor de intrare, ale căror caractere sunt diferite |
levensheim | Returnează numărul minim de modificări de caractere (inserări, ștersături sau înlocuiri) necesare pentru a schimba un șir într-altul. Măsoară similitudinea dintre două șiruri |
longest_common_substring | Returnează cel mai lung subșir comun dintre două șiruri |
soundex | Returnează reprezentarea Soundex a unui șir de caractere |
Acest grup conține diverse funcții generale.
Funcția |
Descriere |
---|---|
eval | Evaluează o expresie care este transmisă într-un șir. Folosește pentru a extinde parametrii dinamici transmiși ca variabile de context sau câmpuri |
layer_property | Returnează o proprietate a unui strat sau o valoare a metadatelor sale. Aceasta poate fi numele stratului, crs-ul, tipul geometriei, numărul de entități... |
var | Returnează valoarea stocată într-o variabilă specificată. A se vedea funcțiile variabile de mai jos |
Acest grup conține funcții care operează asupra geometriei obiectelor (de ex.: lungimea, suprafața).
Funcția |
Descriere |
---|---|
$area | Returnează aria entității curente |
$geometry | Returnează geometria entității curente (se poate folosi pentru prelucrarea cu alte funcții) |
$length | Returnează lungimea entității curente de tip linie |
$perimeter | Returnează perimetrul entității curente de tip poligon |
$x | Returnează coordonata x a entității curente |
$x_at(n) | Returnează coordonata x al nodului n din geometria entității curente |
$y | Returnează coordonata y a entității curente |
$y_at(n) | Returnează coordonata y a nodului n din geometria entității curente |
area | Returnează aria unei entități de geometrie poligonală. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
bounds | Returnează o geomerie care reprezintă caseta de încadrare a unei geometrii de intrare. Calculele sunt în Sistemul de Referință Spațială al acestei Geometrii |
bounds_height | Returnează înălțimea unei casete de încadrare a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei Geometrii |
bounds_width | Returnează lățimea casetei de încadrare a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei Geometrii |
buffer | Returnează o geometrie care reprezintă toate punctele a căror distanță de la această geometrie este mai mică sau egală cu distanța specificată. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
centroid | Returnează centrul geometric al unei geometrii |
closest_point | Returnează cel mai apropiat punct al unei geometrii față de o alta |
combine | Returnează combinația a două geometrii |
contains(a,b) | Returnează 1 (true) dacă și numai dacă nici un punct al geometriei b nu se află în exteriorul geometriei a, și cel puțin un punct din interiorul lui b se află în interiorul lui a |
convex_hull | Returnează anvelopa convexă a unei geometrii (aceasta reprezentând geometria convexă minimă care include toate geometriile din cadrul setului) |
crosses | Returnează 1 (true) dacă geometriile respective au unele puncte interioare, dar nu toate, în comun |
difference(a,b) | Returnează o geometrie care reprezintă porțiunea din geometria a care nu se intersectează cu geometria b |
disjoint | Returnează 1 (true) dacă geometriile nu partajează nici un fel de spațiu |
distance | Returnează distanța minimă (bazată pe referința spațială) dintre două geometrii în unități proiectate |
end_point | Returnează ultimul nod dintr-o geometrie |
exterior_ring | Returnează o linie sub formă de șir, reprezentând inelul exterior al unei geometrii de tip poligon. În cazul în care geometria nu reprezintă un poligon, atunci rezultatul va fi null |
extrude(geom,x,y) | Returnează o versiune extrudată a intrării (Multi-)Curbă sau o geometrie (Multi-)Linie având o extensie specificată de x și y |
geom_from_gml | Returnează geometria dintr-o reprezentare GML a unei geometrii |
geom_from_wkt | Returnează o geometrie creată dintr-o reprezentare Well-Known Text (WKT) |
geom_to_wkt | Returnează reprezentarea Well-Known Text (WKT) a unei geometrii, fără metadatele SRID |
geometrie |
Returnează geometria unei entități |
geometry_n | Returnează geometria n dintr-o colecție de geometrii, sau null dacă geometria de intrare nu reprezintă o colecție |
interior_ring_n | Returnează inel interior n dintr-o geometrie poligonală, sau null dacă geometria de intrare nu reprezintă un poligon |
intersection | Returnează o geometrie care reprezintă porțiunea comună a două geometrii |
intersects | Testează dacă o geometrie intersectează o alta. Returnează 1 (true) dacă geometriile se intersectează spațial (partajează oricare parte din spațiu) și 0 în caz contrar |
intersects_bbox | Testează dacă o casetă de încadrare a unei geometrii intersectează o alta. Returnează 1 (true) dacă geometriile se intersectează (partajează oricare parte din spațiu) și 0 în caz contrar |
is_closed | Returnează true dacă o linie sub formă de șir este închisă (punctele de start și de final coincid), false dacă linia nu este închisă și null dacă geometria nu reprezintă o linie sub formă de șir |
length | Returnează lungimea unei entități cu geometria de tip linie (sau lungimea unui șir de caractere) |
m | Returnează valoarea m dintr-o geometrie de tip punct |
make_line | Creează o geometrie de tip linie, dintr-o serie de geometrii de tip punct |
make_point(x,y,z,m) | Returnează o geometrie de tip punct din valorile x și y (și opțional valorile z și m) |
make_point_m(x,y,m) | Creează o geometrie de tip punct din coordonatele x, y și din valoarea m |
make_polygon | Creează o geometrie de tip poligon, dintr-un inel exterior și dintr-o serie de geometrii inelare interioare |
nodes_to_points | Returnează o geometrie multipunct constând în fiecare nod din geometria de intrare |
num_geometries | Returnează numărul de geometrii dintr-o colecție geometrică, sau null dacă geometria de intrare nu reprezintă o colecție |
num_interior_rings | Returnează numărul de inele interioare dintr-un poligon sau dintr-o colecție geometrică, sau null dacă geometria de intrare nu reprezintă un poligon sau o colecție |
num_points | Returnează numărul de vertecși dintr-o geometrie |
num_rings | Returnează numărul de inele (incluzând inelele exterioare) dintr-un poligon sau dintr-o colecție geometrică, sau null dacă geometria de intrare nu reprezintă un poligon sau o colecție |
order_parts | Ordonează părțile unei MultiGeometrii după anumite criterii |
overlaps | Testează dacă o geometrie se suprapune peste alta. Returnează 1 (true) dacă geometriile partajează un spațiu, sunt de aceeași dimensiune, dar nu sunt complet conținute una în cealaltă |
perimeter | Returnează perimetrul unei entități de geometrie poligonală. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
point_n | Returnează un nod specific dintr-o geometrie |
point_on_surface | Returnează un punct care, garantat, se situează pe suprafața unei geometrii |
relate | Testează sau returnează Modelul Dimensional Extins cu 9 Intersecții (DE-9IM), de reprezentare a relațiilor dintre două geometrii |
reverse | Inversează direcția unui șir de tip linie, prin inversarea ordinii vertecșilor săi |
segments_to_lines | Returnează o geometrie multi linie constând într-o linie pentru fiecare segment din geometria de intrare |
shortest_line | Returnează cea mai scurtă linie care unește două geometrii. Linia rezultată va începe la geometria 1 și se va încheia la geometria 2 |
start_point | Returnează primul nod dintr-o geometrie |
sym_difference | Returnează o geometrie care reprezintă porțiunea comună a două geometrii care nu se intersectează |
touches | Testează dacă o geometrie o atinge pe alta. Returnează 1 (true) dacă geometriile respective au cel puțin un punct în comun, dar interioarele lor nu se intersectează |
transform | Returnează geometriea transformată dintr-un CRS sursă într-un CRS destinație |
translate | Returnează o versiune deplasată a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
union | Returnează o geometrie care reprezintă setul de puncte reunit al geometriilor |
within (a,b) | Testează dacă o geometrie este conținută în alta. Returnează 1 (true) dacă geometria a este complet inclusă în geometria b |
x | Returnează coordonata x a unei geometrii de tip punct, sau coordonata x a centrului de greutate pentru o geometrie non-punct. |
x_min | Returnează coordonata x minimă a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
x_max | Returnează coordonata x maximă a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
y | Returnează coordonata y a unei geometrii de tip punct, sau coordonata y a centrului de greutate pentru o geometrie non-punct |
y_min | Returnează coordonata y minimă a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
y_max | Returnează coordonata y maximă a unei geometrii. Calculele sunt în Sistemul de Referință Spațială al acestei geometrii |
z | Returnează coordonata z dintr-o geometrie de tip punct |
Câteva exemple:
Returnează coordonata x a centroidului entității curente:
x($geometry)
Trimite înapoi o valoare în funcție de suprafața entității:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
Acest grup conține funcții care operează asupra identificatorilor de înregistrare.
Funcția |
Descriere |
---|---|
$currentfeature | Returnează entitatea care este evaluată în mod curent. Se poate utiliza cu funcția ‘atribut’ pentru a evalua valorile atributelor din entitatea curentă. |
$id | Returnează id-ul entității din rândul curent |
$map | Returnează ID-ul elementului curent al hărții, în cazul în care harta este desenată într-o compoziție, sau “canvas” în cazul în care harta este în desenată în cadrul ferestrei principale QGIS |
$rownum | Returnează numărul rândului curent |
$scale | Returnează scara curentă a canevasului hărții |
atribut |
Returnează valoarea unui atribut specificat dintr-o entitate. |
get_feature | Returnează prima entitate a unui strat, care se potrivește cu o valoare de atribut dată. |
uuid | Generează un Identificator Unic Universal (UUID) pentru fiecare rând. Fiecare UUID are o lungime de 38 caractere |
Câteva exemple:
Returnează prima entitate din stratul “LayerA”, al cărui câmp “id” are aceeași valoare ca și câmpul “nume” al entității curente (un fel de relație):
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Se calculează aria entității îmbinate, din exemplul anterior:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
Acest grup conține funcții care operează asupra șirurilor, (de ex: înlocuirea, conversia în majuscule).
Funcția |
Descriere |
---|---|
concat | Concatenează mai multe șiruri într-unul |
format | Formatează un șir folosind argumentele furnizate |
format_date | Formatează un tip de dată sau un șir într-un format personalizat de tip text |
format_number | Returnează un număr formatat, cu separatorul local pentru mii (trunchiază, de asemenea, la numărul de cifre specificate) |
left(string, n) | Returnează un subșir care conține n caractere din stânga șirului |
length | Returnează lungimea unui șir (sau lungimea unei entități cu geometria de tip linie) |
lower | Convertește un șir în litere mici |
lpad | Returnează un șir completat până la lungimea dorită, folosind un caracter de umplere |
regexp_replace | Returnează șirul înlocuit cu expresia regulată furnizată |
regexp_substr | Returnează porțiunea dintr-un șir care se potrivește cu expresia regulată specificată |
replace | Returnează șirul înlocuit cu expresia regulată furnizată |
right(string, n) | Returnează un subșir care conține n caractere din stânga șirului |
rpad | Returnează un șir completat până la lungimea dorită, folosind un caracter de umplere |
strpos | Returnează șirul înlocuit cu expresia regulată furnizată |
substr | Returnează o parte dintr-un șir |
title | Convertește, în nume proprii, toate cuvintele unui șir (toate cuvintele fiind scrise cu minuscule, având o majusculă la început). |
trim | Elimină toate spațiile albe de la începutul și de la sfârșitul unui șir (spații, tab-uri, etc) |
upper | Convertește un șir în majuscule. |
wordwrap | Returnează un șir cu un număr maxim/minim de caractere per linie |
Acest grup cuprinde funcțiile utilizate recent. Funcțiile utilizate în dialogul Expresiilor sunt adăugate în listă, fiind ordonate începând de la cea mai recent utilizată. Acest lucru ajută la preluarea rapidă a oricărei expresii anterioare.
Acest grup cuprinde variabile dinamice referitoare la aplicație, fișierul de proiect și alte setări. Aceasta înseamnă că anumite funcții pot nu fie disponibile, în funcție de context:
din dialogul cu proprietățile stratului
din compozitorul de hărți
Pentru a utiliza aceste funcții într-o expresie, acestea ar trebui să fie precedate de caracterul @ (ex.: @row_number). Sunt luate în considerare:
Funcția |
Descriere |
---|---|
atlas_feature | Returnează entitatea curentă a atlasului (ca obiect entitate) |
atlas_featureid | Returnează ID-ul entității curente a atlasului |
atlas_featurenumber | Returnează numărul de pagini din compoziție |
atlas_filename | Returnează numele curent al fișierului atlasului |
atlas_geometry | Returnează geometria entității curente a atlasului |
atlas_pagename | Returnează numele paginii curente a atlasului |
atlas_totalfeatures | Returnează numărul total de entități din atlas |
grid_axis | Returnează axele actuale ale adnotării din grilă (de exemplu, ‘x’ pentru longitudine, ‘y’ pentru latitudine) |
grid_number | Returnează valoarea actuală a adnotării din grilă |
item_id | Returnează ID-ul de utilizator pentru elementul compozitorului (nu neapărat unic) |
item_uuid | Returnează ID-ul unic pentru elementul compozitorului |
layer_id | Returnează ID-ul stratului curent |
layer_name | Returnează numele stratului curent |
layout_dpi | Returnează rezoluția compoziției (DPI) |
layout_numpages | Returnează numărul de pagini din compoziție |
layout_pageheight | Returnează înălțimea compoziției, în mm |
layout_pagewidth | Returnează lățimea compoziției, în mm |
map_id | Returnează ID-ul destinației hărții curente. Acesta va fi ‘canvas’ pentru rendere, și ID-ul elementului pentru renderele din compozitorul de hărți |
map_extent_center | Returnează entitatea de tip punct din centrul hărții |
map_extent_height | Returnează înalțimea curentă a hărții |
map_extent_width | Returnează lățimea curentă a hărții |
map_rotation | Returnează rotația curentă a hărții |
map_scale | Returnează scara curentă a hărții |
project_filename | Returnează numele de fișier al proiectului curent |
project_folder | Returnează dosarul proiectului curent |
project_path | Returnează calea completă (inclusiv numele de fișier) a proiectului curent |
project_title | Returnează titlul proiectului curent |
qgis_os_name | Returnează numele Sistemului de Operare curent, ex.: ‘windows’, ‘linux’ sau ‘osx’ |
qgis_platform | Returnează platforma QGIS, ex.: ‘desktop’ sau ‘server’ |
qgis_release_name | Returnează numele versiunii curente de QGIS |
qgis_version | Returnează textul versiunii curente de QGIS |
qgis_version_no | Returnează numărul versiunii curente de QGIS |
symbol_angle | Returnează unghiul simbolului utilizat pentru randarea entității (valabil numai pentru însemnele simbolurilor) |
symbol_color | Returnează culoarea simbolului utilizat pentru a randa entitatea |
user_account_name | Returnează numele de cont al utilizatorului curent din sistemul de operare |
user_full_name | Returnează numele utilizatorului curent din sistemul de operare |
row_number | Stochează numărul rândului curent |
Cu ajutorul Editorului de Funcții aveți posibilitatea de a vă crea propriile funcții Python, într-un mod facil.
Figure Expression 2:
Editorul de funcții va crea noi fișiere Python în folderul .qgis2\python\expressions și va încărca automat toate funcțiile definite, la pornirea QGIS. Rețineți că noile funcții sunt salvate numai în folderul expressions și nu în fișierul proiectului. De asemenea, dacă aveți un proiect care utilizează una dintre funcțiile personalizate, va trebui să permiteți accesul la fișierul .py din directorul expresiilor.
Iată un scurt exemplu cu privire la modul de creare a propriilor funcții:
@qgsfunction(args="auto", group='Custom')
def myfunc(value1, value2, feature, parent):
pass
Exemplul Scurt crează funcția ‘myfunc’, care vă va oferi o funcție cu două valori. Când se utilizează argumentul args = ‘auto’, numărul de argumente ale funcției va fi calculat în funcție de numărul de argumente definit în Python (minus 2 - entitatea și părintele).
Această funcție poate fi utilizată cu următoarea expresie:
myfunc('test1', 'test2')
Funcția dvs. va fi implementată în grupul de funcții Personalizate ale filei Expresiilor, după utilizarea butonului Rulare Script.
Mai multe informații despre crearea de cod Python pot fi găsite în Cartea de rețete a dezvoltatorului PyQGIS.
Editorul de funcții nu se limitează doar la lucrul cu calculatorul de câmpuri, el putând fi utilizat de fiecare dată în lucrul cu expresii.