Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

9.2. Lista över funktioner

De funktioner, operatorer och variabler som finns tillgängliga i QGIS listas nedan, grupperade efter kategorier.

9.2.1. Aggregat Funktioner

Den här gruppen innehåller funktioner som aggregerar värden över lager och fält.

9.2.1.1. aggregate

Returnerar ett aggregerat värde som beräknats med hjälp av funktioner från ett annat lager.

Syntax

aggregate(layer, aggregate, expression, [filter], [concatenator=’’], [order_by])

[] markerar valfria argument

Argument

  • layer - en sträng som representerar antingen ett lagernamn eller ett lager-ID

  • aggregate - en sträng som motsvarar det aggregat som ska beräknas. Giltiga alternativ är:

    • count

    • count_distinct

    • count_missing

    • minimum eller min

    • maximalt eller max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: första kvartilen

    • q3: tredje kvartilen

    • iqr: intervall mellan kvartiler

    • min_length: minsta stränglängd

    • max_length: maximal stränglängd

    • konkatenera: sammanfoga strängar med en konkatenator

    • concatenate_unique: sammanfoga unika strängar med en konkatenator

    • collect: skapa en aggregerad multipartgeometri

    • array_agg: skapa en array med aggregerade värden

  • expression - underuttryck eller fältnamn som ska aggregeras

  • filter - valfritt filteruttryck för att begränsa de funktioner som används för att beräkna aggregatet. Fält och geometri kommer från objekten i det sammanfogade skiktet. Källfunktionen kan nås med variabeln @parent.

  • concatenator - valfri sträng som ska användas för att sammanfoga värden för aggregaten ”concatenate” och ”concatenate_unique

  • order_by - valfritt filteruttryck för att ordna de funktioner som används för att beräkna aggregatet. Fält och geometri är från funktionerna i det sammanfogade skiktet. Som standard kommer funktionerna att returneras i en ospecificerad ordning.

Exempel

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → summan av alla värden från fältet passengers i skiktet rail_stations

  • aggregate('rail_stations','sum', "passengers"/7) → beräknar ett dagligt genomsnitt av ”passengers” genom att dela fältet ”passengers” med 7 och sedan summera värdena

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → summerar alla värden från fältet ”passengers” från funktioner där attributet ”class” endast är större än 3

  • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → kommaseparerad lista över namnfältet för alla funktioner i skiktet rail_stations

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( @geometry, geometry(@parent) ) ) → Landskoden för ett korsande land i skiktet ”countries

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, @geometry ) ) → summan av alla värden från fältet passengers i rail_stations inom den aktuella atlasfunktionen

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid(@geometry), filter:="region_name" = attribute(@parent,'name') ) → aggregerar centroidgeometrier för rail_stations i samma region som den aktuella funktionen

9.2.1.2. array_agg

Returnerar en array med aggregerade värden från ett fält eller uttryck.

Syntax

array_agg(expression, [group_by], [filter], [order_by])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

  • order_by - valfritt uttryck att använda för att ordna funktioner som används för att beräkna aggregat. Som standard returneras funktionerna i en ospecificerad ordning.

Exempel

  • array_agg("name",group_by:="state") → lista över namnvärden, grupperade efter fältet state

9.2.1.3. collect

Returnerar multipartgeometrin för aggregerade geometrier från ett uttryck

Syntax

collect(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - geometriskt uttryck att aggregera

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • collect( @geometri ) → flerdelad geometri av aggregerade geometrier

  • collect( centroid(@geometry), group_by:="region", filter:= "use" = 'civilian' ) → aggregerade centroider av de civila funktionerna baserat på deras regionvärde

9.2.1.4. concatenate

Returnerar alla aggregerade strängar från ett fält eller uttryck som förenas av en avgränsare.

Syntax

concatenate(expression, [group_by], [filter], [concatenator], [order_by])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

  • concatenator - valfri sträng som ska användas för att sammanfoga värden. Tom som standard.

  • order_by - valfritt uttryck att använda för att ordna funktioner som används för att beräkna aggregat. Som standard returneras funktionerna i en ospecificerad ordning.

Exempel

  • concatenate("town_name",group_by:="state",concatenator:=',') → kommaseparerad lista över town_names, grupperade efter state-fält

9.2.1.5. concatenate_unique

Returnerar alla unika strängar från ett fält eller uttryck med en avgränsare.

Syntax

concatenate_unique(expression, [group_by], [filter], [concatenator], [order_by])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

  • concatenator - valfri sträng som ska användas för att sammanfoga värden. Tom som standard.

  • order_by - valfritt uttryck att använda för att ordna funktioner som används för att beräkna aggregat. Som standard returneras funktionerna i en ospecificerad ordning.

Exempel

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → kommaseparerad lista över unika town_names, grupperade efter state-fält

9.2.1.6. count

Returnerar antalet matchande funktioner.

Syntax

count(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • count("stations",group_by:="state") → antal stationer, grupperade efter delstatsfält

9.2.1.7. count_distinct

Returnerar antalet distinkta värden.

Syntax

count_distinct(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • count_distinct("stations",group_by:="state") → antal distinkta stationsvärden, grupperade efter fältet state

9.2.1.8. count_missing

Returnerar antalet saknade (NULL) värden.

Syntax

count_missing(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • count_missing("stations",group_by:="state") → antal saknade (NULL) stationsvärden, grupperade efter state-fält

9.2.1.9. iqr

Returnerar det beräknade intervallet mellan kvartilerna från ett fält eller uttryck.

Syntax

iqr(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • iqr("population",group_by:="state") → interkvartilintervall för befolkningsvärde, grupperat efter delstatsfält

9.2.1.10. majority

Returnerar den sammanlagda majoriteten av värden (det vanligast förekommande värdet) från ett fält eller uttryck.

Syntax

majority(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • majority("class",group_by:="state") → vanligast förekommande klassvärde, grupperat efter state-fält

9.2.1.11. max_length

Returnerar den maximala längden på strängar från ett fält eller uttryck.

Syntax

max_length(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • max_length("town_name",group_by:="state") → maximal längd på town_name, grupperat efter state-fält

9.2.1.12. maximum

Returnerar det aggregerade maxvärdet från ett fält eller uttryck.

Syntax

maximum(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • maximum("population",group_by:="state") → maximalt befolkningsvärde, grupperat efter delstatsfält

9.2.1.13. mean

Returnerar det aggregerade medelvärdet från ett fält eller uttryck.

Syntax

mean(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • mean("population",group_by:="state") → populationens medelvärde, grupperat efter delstatsfält

9.2.1.14. median

Returnerar det aggregerade medianvärdet från ett fält eller uttryck.

Syntax

median(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • median("population",group_by:="state") → medianvärde för befolkningen, grupperat efter delstatsfält

9.2.1.15. min_length

Returnerar den minsta längden på strängar från ett fält eller uttryck.

Syntax

min_length(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • min_length("town_name",group_by:="state") → minsta längd på town_name, grupperat efter state-fält

9.2.1.16. minimum

Returnerar det aggregerade minimivärdet från ett fält eller uttryck.

Syntax

minimum(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • minimum("population",group_by:="state") → minsta befolkningsvärde, grupperat efter delstatsfält

9.2.1.17. minority

Returnerar den aggregerade minoriteten av värden (minst förekommande värde) från ett fält eller uttryck.

Syntax

minority(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • minority("class",group_by:="state") → minst förekommande klassvärde, grupperat efter state-fält

9.2.1.18. q1

Returnerar den beräknade första kvartilen från ett fält eller uttryck.

Syntax

q1(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • q1("population",group_by:="state") → första kvartilen av befolkningsvärdet, grupperat efter delstatsfält

9.2.1.19. q3

Returnerar den beräknade tredje kvartilen från ett fält eller uttryck.

Syntax

q3(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • q3("population",group_by:="state") → tredje kvartilen av befolkningsvärdet, grupperat efter delstatsfält

9.2.1.20. range

Returnerar det aggregerade värdeintervallet (maximum - minimum) från ett fält eller uttryck.

Syntax

range(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • range("population",group_by:="state") → intervall av befolkningsvärden, grupperade efter delstatsfält

9.2.1.21. relation_aggregate

Returnerar ett aggregerat värde som beräknas med hjälp av alla matchande underordnade funktioner från en lagerrelation.

Syntax

relation_aggregate(relation, aggregate, expression, [concatenator=’’], [order_by])

[] markerar valfria argument

Argument

  • relation - en sträng som representerar ett relations-ID

  • aggregate - en sträng som motsvarar det aggregat som ska beräknas. Giltiga alternativ är:

    • count

    • count_distinct

    • count_missing

    • minimum eller min

    • maximalt eller max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: första kvartilen

    • q3: tredje kvartilen

    • iqr: intervall mellan kvartiler

    • min_length: minsta stränglängd

    • max_length: maximal stränglängd

    • konkatenera: sammanfoga strängar med en konkatenator

    • concatenate_unique: sammanfoga unika strängar med en konkatenator

    • collect: skapa en aggregerad multipartgeometri

    • array_agg: skapa en array med aggregerade värden

  • expression - underuttryck eller fältnamn som ska aggregeras

  • concatenator - valfri sträng som ska användas för att sammanfoga värden för ”concatenate”-aggregatet

  • order_by - valfritt uttryck för att ordna de funktioner som används för att beräkna aggregatet. Fält och geometri kommer från funktionerna i det sammanfogade skiktet. Som standard returneras funktionerna i en ospecificerad ordning.

Exempel

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → medelvärde för alla matchande underordnade funktioner med hjälp av relationen ’my_relation’

  • relation_aggregate('my_relation','sum', "passengers"/7) → summan av fältet passengers dividerat med 7 för alla matchande underordnade funktioner som använder relationen ”my_relation

  • relation_aggregate('my_relation','concatenate',"towns", concatenator:=',') → kommaseparerad lista över fältet towns för alla matchande underordnade funktioner som använder relationen ’my_relation’

  • relation_aggregate('my_relation','array_agg', "id") → array av fältet id från alla matchande underordnade funktioner som använder relationen ’my_relation’

Ytterligare läsning: vektor_relationer

9.2.1.22. stdev

Returnerar det aggregerade standardavvikelsevärdet från ett fält eller uttryck.

Syntax

stdev(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • stdev("population",group_by:="state") → standardavvikelse för populationsvärde, grupperat efter delstatsfält

9.2.1.23. sum

Returnerar det aggregerade summerade värdet från ett fält eller uttryck.

Syntax

sum(expression, [group_by], [filter])

[] markerar valfria argument

Argument

  • expression - underuttryck för fältet som ska aggregeras

  • group_by - valfritt uttryck att använda för att gruppera aggregerade beräkningar

  • filter - valfritt uttryck att använda för att filtrera egenskaper som används för att beräkna aggregat

Exempel

  • sum("population",group_by:="state") → summerat befolkningsvärde, grupperat efter delstatsfält

9.2.2. Array-funktioner

Den här gruppen innehåller funktioner för att skapa och manipulera matriser (även kända som listdatastrukturer). Ordningen på värdena i matrisen har betydelse, till skillnad från ’map’ datastruktur, där ordningen på nyckel-värde-paren är irrelevant och värdena identifieras av sina nycklar.

9.2.2.1. array

Returnerar en array som innehåller alla värden som skickats som parameter.

Syntax

array(värde1, värde2, …)

Argument

  • värde - ett värde

Exempel

  • array(2,10) → [ 2, 10 ]

  • array(2,10)[0] → 2

9.2.2.2. array_all

Returnerar TRUE om en array innehåller alla värden i en given array.

Syntax

array_all(array_a, array_b)

Argument

  • array_a - en matris

  • array_b - den matris med värden som ska sökas

Exempel

  • array_all(array(1,2,3),array(2,3)) → TRUE

  • array_all(array(1,2,3),array(1,2,4)) → FALSE

9.2.2.3. array_append

Returnerar en array med det angivna värdet tillagt i slutet.

Syntax

array_append(array, value)

Argument

  • array - en matris

  • värde - det värde som ska läggas till

Exempel

  • array_append(array(1,2,3),4) → [ 1, 2, 3, 4 ]

9.2.2.4. array_cat

Returnerar en array som innehåller alla de angivna arrayer som är sammanlänkade.

Syntax

array_cat(array1, array2, …)

Argument

  • array - en matris

Exempel

  • array_cat(array(1,2),array(2,3)) → [ 1, 2, 2, 3 ]

9.2.2.5. array_contains

Returnerar TRUE om en array innehåller det angivna värdet.

Syntax

array_contains(array, value)

Argument

  • array - en matris

  • värde - det värde som ska sökas

Exempel

  • array_contains(array(1,2,3),2) → TRUE

9.2.2.6. array_count

Räknar antalet förekomster av ett givet värde i en array.

Syntax

array_count(array, value)

Argument

  • array - en matris

  • värde - det värde som ska räknas

Exempel

  • array_count(array('a', 'b', 'c', 'b'), 'b') → 2

9.2.2.7. array_distinct

Returnerar en array som innehåller distinkta värden av den angivna arrayen.

Syntax

array_distinct(array)

Argument

  • array - en matris

Exempel

  • array_distinct(array(1,2,3,2,1)) → [ 1, 2, 3 ]

9.2.2.8. array_filter

Returnerar en array med endast de objekt för vilka uttrycket utvärderas till sant.

Syntax

array_filter(array, uttryck, [limit=0])

[] markerar valfria argument

Argument

  • array - en matris

  • expression - ett uttryck som ska utvärderas för varje element. Variabeln @element kommer att ersättas med det aktuella värdet.

  • limit - maximalt antal element som ska returneras. Använd 0 för att returnera alla värden.

Exempel

  • array_filter(array(1,2,3),@element < 3) → [ 1, 2 ]

  • array_filter(array(1,2,3),@element < 3, 1) → [ 1 ]

9.2.2.9. array_find

Returnerar det lägsta indexet (0 för det första) för ett värde i en array. Returnerar -1 om värdet inte hittas.

Syntax

array_find(array, value)

Argument

  • array - en matris

  • värde - det värde som ska sökas

Exempel

  • array_find(array('a', 'b', 'c'), 'b') → 1

  • array_find(array('a', 'b', 'c', 'b'), 'b') → 1

9.2.2.10. array_first

Returnerar det första värdet i en array.

Syntax

array_first(array)

Argument

  • array - en matris

Exempel

  • array_first(array('a','b','c')) → ’a’

9.2.2.11. array_foreach

Returnerar en array med det angivna uttrycket utvärderat på varje objekt.

Syntax

array_foreach(array, expression)

Argument

  • array - en matris

  • expression - ett uttryck som ska utvärderas för varje objekt. Variabeln @element kommer att ersättas med det aktuella värdet och variabeln @counter med det aktuella indexet (börjar med 0).

Exempel

  • array_foreach(array('a','b','c'),upper(@element)) → [ ’A’, ’B’, ’C’ ]

  • array_foreach(array(1,2,3),@element + 10) → [ 11, 12, 13 ]

  • array_foreach(array(1,2,3),@element + @counter) → [ 1, 3, 5 ]

9.2.2.12. array_get

Returnerar det N:te värdet (0 för det första) eller det sista -N:te värdet (-1 för det sista) i en array.

Syntax

array_get(array, pos)

Argument

  • array - en matris

  • pos - det index som ska hämtas (0-baserat)

Exempel

  • array_get(array('a','b','c'),1) → ’b’

  • array_get(array('a','b','c'),-1) → ’c’

Råd

Du kan också använda indexoperatorn ([]) för att hämta ett värde från en array.

9.2.2.13. array_insert

Returnerar en array med det angivna värdet tillagt på den angivna positionen.

Syntax

array_insert(array, pos, value)

Argument

  • array - en matris

  • pos - positionen där tillägget ska göras (0-baserad)

  • värde - det värde som ska läggas till

Exempel

  • array_insert(array(1,2,3),1,100) → [ 1, 100, 2, 3 ]

9.2.2.14. array_intersect

Returnerar TRUE om minst ett element i array1 finns i array2.

Syntax

array_intersect(array1, array2)

Argument

  • array1 - en matris

  • array2 - en annan array

Exempel

  • array_intersect(array(1,2,3,4),array(4,0,2,5)) → TRUE

9.2.2.15. array_last

Returnerar det sista värdet i en array.

Syntax

array_last(array)

Argument

  • array - en matris

Exempel

  • array_last(array('a','b','c')) → ’c’

9.2.2.16. array_length

Returnerar antalet element i en array.

Syntax

array_length(array)

Argument

  • array - en matris

Exempel

  • array_length(array(1,2,3)) → 3

9.2.2.17. array_majority

Returnerar de vanligaste värdena i en array.

Syntax

array_majority(array, [option=’all’])

[] markerar valfria argument

Argument

  • array - en matris

  • option=’all’ - en sträng som anger hur returvärdena ska hanteras. Giltiga alternativ är:

    • alla: Standard, alla de vanligaste värdena returneras i en matris.

    • vilket som helst: Returnerar ett av de vanligaste värdena.

    • median: Returnerar medianen av de vanligaste värdena. Icke-aritmetiska värden ignoreras.

    • real_majority: Returnerar det värde som förekommer mer än hälften av arrayens storlek.

Exempel

  • array_majority(array(0,1,42,42,43), 'all') → [ 42 ]

  • array_majority(array(0,1,42,42,43,1), 'all') → [ 42, 1 ]

  • array_majority(array(0,1,42,42,43,1), 'any') → 1 or 42

  • array_majority(array(0,1,1,2,2), 'median') → 1.5

  • array_majority(array(0,1,42,42,43), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42,42), 'real_majority') → 42

9.2.2.18. array_max

Returnerar det maximala värdet i en array.

Syntax

array_max(array)

Argument

  • array - en matris

Exempel

  • array_max(array(0,42,4,2)) → 42

9.2.2.19. array_mean

Returnerar medelvärdet av aritmetiska värden i en matris. Icke-numeriska värden i matrisen ignoreras.

Syntax

array_mean(array)

Argument

  • array - en matris

Exempel

  • array_mean(array(0,1,7,66.6,135.4)) → 42

  • array_mean(array(0,84,'a','b','c')) → 42

9.2.2.20. array_median

Returnerar medianen för aritmetiska värden i en matris. Icke-aritmetiska värden i matrisen ignoreras.

Syntax

array_median(array)

Argument

  • array - en matris

Exempel

  • array_median(array(0,1,42,42,43)) → 42

  • array_median(array(0,1,2,42,'a','b')) → 1.5

9.2.2.21. array_min

Returnerar det lägsta värdet i en array.

Syntax

array_min(array)

Argument

  • array - en matris

Exempel

  • array_min(array(43,42,54)) → 42

9.2.2.22. array_minority

Returnerar de mindre vanliga värdena i en array.

Syntax

array_minority(array, [option=’all’])

[] markerar valfria argument

Argument

  • array - en matris

  • option=’all’ - en sträng som anger hur returvärdena ska hanteras. Giltiga alternativ är:

    • alla: Standard, alla mindre vanliga värden returneras i en matris.

    • vilket som helst: Returnerar ett av de mindre vanliga värdena.

    • median: Returnerar medianen av de mindre vanliga värdena. Icke-aritmetiska värden ignoreras.

    • verklig_minoritet: Returnerar värden som förekommer mindre än halva storleken på matrisen.

Exempel

  • array_minority(array(0,42,42), 'all') → [ 0 ]

  • array_minority(array(0,1,42,42), 'all') → [ 0, 1 ]

  • array_minority(array(0,1,42,42,43,1), 'any') → 0 or 43

  • array_minority(array(1,2,3,3), 'median') → 1.5

  • array_minority(array(0,1,42,42,43), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42,42), 'real_minority') → [ 43, 0, 1 ]

9.2.2.23. array_prepend

Returnerar en array med det angivna värdet tillagt i början.

Syntax

array_prepend(array, value)

Argument

  • array - en matris

  • värde - det värde som ska läggas till

Exempel

  • array_prepend(array(1,2,3),0) → [ 0, 1, 2, 3 ]

9.2.2.24. array_prioritize

Returnerar en array som är sorterad enligt den ordning som anges i en annan array. Värden som finns i den första arrayen men som saknas i den andra arrayen läggs till i slutet av resultatet.

Syntax

array_prioritize(array, array_prioritize)

Argument

  • array - en matris

  • array_prioritize - en array med värden ordnade efter prioritet

Exempel

  • array_prioritize(array(1, 8, 2, 5), array(5, 4, 2, 1, 3, 8)) → [ 5, 2, 1, 8 ]

  • array_prioritize(array(5, 4, 2, 1, 3, 8), array(1, 8, 6, 5)) → [ 1, 8, 5, 4, 2, 3 ]

9.2.2.25. array_remove_all

Returnerar en array där alla poster med det angivna värdet har tagits bort.

Syntax

array_remove_all(array, value)

Argument

  • array - en matris

  • värde - de värden som ska tas bort

Exempel

  • array_remove_all(array('a','b','c','b'),'b') → [ ’a’, ’c’ ]

9.2.2.26. array_remove_at

Returnerar en array med elementet vid det angivna indexet borttaget. Stöder positivt (0 för det första elementet) och negativt (det sista -N:e värdet, -1 för det sista elementet) index.

Syntax

array_remove_at(array, pos)

Argument

  • array - en matris

  • pos - den position som ska tas bort (0-baserad)

Exempel

  • array_remove_at(array(1, 2, 3), 1) → [1, 3 ]

  • array_remove_at(array(1, 2, 3), -1) → [1, 2 ]

9.2.2.27. array_replace

Returnerar en array med det angivna värdet, arrayen eller värdekartan ersatt.

Värde- och matrisvariant

Returnerar en array med det angivna värdet eller värdearrayen ersatt av ett annat värde eller en värdearray.

Syntax

array_replace(array, before, after)

Argument

  • array - den matade matrisen

  • before - det värde eller den matris av värden som ska ersättas

  • after - det värde eller den matris av värden som ska användas som ersättning

Exempel

  • array_replace(array('QGIS','SHOULD','ROCK'),'SHOULD','DOES') → [ ’QGIS’, ’DOES’, ’ROCK’ ]

  • array_replace(array(3,2,1),array(1,2,3),array(7,8,9)) → [ 9, 8, 7 ]

  • array_replace(array('Q','G','I','S'),array('Q','S'),'-') → [ ’-’, ’G’, ’I’, ’-’ ]

Karta variant

Returnerar en array med de angivna map-nycklarna ersatta av sina parade värden.

Syntax

array_replace(array, map)

Argument

  • array - den matade matrisen

  • map - kartan som innehåller nycklar och värden

Exempel

  • array_replace(array('APP', 'SHOULD', 'ROCK'),map('APP','QGIS','SHOULD','DOES')) → [ ’QGIS’, ’DOES’, ’ROCK’ ]

Ytterligare läsning: replace, regexp_replace

9.2.2.28. array_reverse

Returnerar den angivna matrisen med matrisvärden i omvänd ordning.

Syntax

array_reverse(array)

Argument

  • array - en matris

Exempel

  • array_reverse(array(2,4,0,10)) → [ 10, 0, 4, 2 ]

9.2.2.29. array_slice

Returnerar en del av matrisen. Skivan definieras av argumenten start_pos och end_pos.

Syntax

array_slice(array, start_pos, end_pos)

Argument

  • array - en matris

  • start_pos - index för startpositionen för skivan (0-baserad). Indexet för start_pos ingår i skivan. Om du använder ett negativt start_pos räknas indexet från slutet av listan (-1-baserat).

  • end_pos - index för skivans slutposition (0-baserat). Indexet för end_pos ingår i skivan. Om du använder ett negativt end_pos räknas indexet från slutet av listan (-1-baserat).

Exempel

  • array_slice(array(1,2,3,4,5),0,3) → [ 1, 2, 3, 4 ]

  • array_slice(array(1,2,3,4,5),0,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),-5,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),0,0) → [ 1 ]

  • array_slice(array(1,2,3,4,5),-2,-1) → [ 4, 5 ]

  • array_slice(array(1,2,3,4,5),-1,-1) → [ 5 ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),1,2) → [ ’Valmiera’, ’Chugiak’ ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),-2,-1) → [ ’Chugiak’, ’Brighton’ ]

9.2.2.30. array_sort

Returnerar den angivna matrisen med dess element sorterade.

Syntax

array_sort(array, [ascending=true])

[] markerar valfria argument

Argument

  • array - en matris

  • ascending - sätt denna parameter till false för att sortera matrisen i fallande ordning

Exempel

  • array_sort(array(3,2,1)) → [ 1, 2, 3 ]

9.2.2.31. array_sum

Returnerar summan av aritmetiska värden i en array. Icke-numeriska värden i matrisen ignoreras.

Syntax

array_sum(array)

Argument

  • array - en matris

Exempel

  • array_sum(array(0,1,39.4,1.6,'a')) → 42.0

9.2.2.32. array_to_string

Sammanfogar arrayelement till en sträng som separeras med en avgränsare och använder en valfri sträng för tomma värden.

Syntax

array_to_string(array, [delimiter=’,’], [empty_value=’’])

[] markerar valfria argument

Argument

  • array - den matade matrisen

  • delimiter - den strängavgränsare som används för att separera sammanlänkade matriselement

  • empty_value - den valfria strängen som ska användas som ersättning för tomma (noll-längd) matchningar

Exempel

  • array_to_string(array('1','2','3')) → ’1,2,3’

  • array_to_string(array(1,2,3),'-') → ’1-2-3’

  • array_to_string(array('1','','3'),',','0') → ’1,0,3’

Ytterligare läsning: uttryck_funktion_arrayer_sträng_till_array

9.2.2.33. generate_series

Skapar en array som innehåller en sekvens av tal.

Syntax

generate_series(start, stop, [step=1])

[] markerar valfria argument

Argument

  • start - första värdet i sekvensen

  • stop - värde som avslutar sekvensen när den har nåtts

  • step - värde som används som steg mellan värdena

Exempel

  • generera_serier(1,5) → [ 1, 2, 3, 4, 5 ]

  • generera_serier(5,1,-1) → [ 5, 4, 3, 2, 1 ]

9.2.2.34. geometries_to_array

Delar upp en geometri i enklare geometrier i en array.

Syntax

geometries_to_array(geometry)

Argument

  • geometri - inmatningsgeometrin

Exempel

  • geometries_to_array(geom_from_wkt('MultiPoint (1 2, 5 21)')) → En matris som innehåller ’Point (1 2)’ och ’Point (5 21)’

  • geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')) → en array av en polygon och en linje geometrier

  • geom_to_wkt(geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')[0]) → ’Polygon ((5 8, 4 1, 3 2, 5 8))’

  • geometries_to_array(geom_from_wkt('MULTIPOLYGON(((5 5,0 0,0 10,5 5)),((5 5,10 10,10 0,5 5))')) → en array av två polygongeometrier

9.2.2.35. regexp_matches

Returnerar en array med alla strängar som fångats av fångstgrupper, i den ordning som grupperna själva förekommer i det angivna reguljära uttrycket mot en sträng.

Syntax

regexp_matches(string, regex, [empty_value=’’])

[] markerar valfria argument

Argument

  • sträng - strängen för att fånga grupper från mot det reguljära uttrycket

  • regex - det reguljära uttryck som används för att fånga grupper

  • empty_value - den valfria strängen som ska användas som ersättning för tomma (noll-längd) matchningar

Exempel

  • regexp_matches('QGIS=>rocks','(.*)=>(.*)') → [ ’QGIS’, ’rocks’ ]

  • regexp_matches('key=>','(.*)=>(.*)','tomt värde') → [ ’key’, ’tomt värde’ ]

Ytterligare läsning: substr, regexp_substr

9.2.2.36. string_to_array

Delar upp strängen i en array med hjälp av den medföljande avgränsaren och en valfri sträng för tomma värden.

Syntax

string_to_array(string, [delimiter=’,’], [empty_value=’’])

[] markerar valfria argument

Argument

  • sträng - inmatningssträngen

  • delimiter - den strängavgränsare som används för att dela upp indatasträngen

  • empty_value - den valfria strängen som ska användas som ersättning för tomma (noll-längd) matchningar

Exempel

  • string_to_array('1,2,3',',') → [ ’1’, ’2’, ’3’ ]

  • string_to_array('1,,3',',','0') → [ ’1’, ’0’, ’3’ ]

Ytterligare läsning: array_to_string

9.2.3. Färgfunktioner

Denna grupp innehåller funktioner för att manipulera färger.

9.2.3.1. color_cmyk

Returnerar en strängrepresentation av en färg baserad på dess cyan-, magenta-, gul- och svartkomponenter

Syntax

color_cmyk(cyan, magenta, yellow, black)

Argument

  • cyan - cyankomponent i färgen, som ett procentuellt heltalsvärde från 0 till 100

  • magenta - magentakomponent i färgen, som ett procentuellt heltalsvärde från 0 till 100

  • yellow - färgens gula komponent, som ett procentuellt heltalsvärde från 0 till 100

  • black - färgens svarta komponent, som ett procentuellt heltalsvärde från 0 till 100

Exempel

  • färg_cmyk(100,50,0,10) → ’0,115,230’

9.2.3.2. color_cmyka

Returnerar en strängrepresentation av en färg baserad på dess cyan-, magenta-, gul-, svart- och alfa-komponenter (transparens)

Syntax

color_cmyka(cyan, magenta, yellow, black, alpha)

Argument

  • cyan - cyankomponent i färgen, som ett procentuellt heltalsvärde från 0 till 100

  • magenta - magentakomponent i färgen, som ett procentuellt heltalsvärde från 0 till 100

  • yellow - färgens gula komponent, som ett procentuellt heltalsvärde från 0 till 100

  • black - färgens svarta komponent, som ett procentuellt heltalsvärde från 0 till 100

  • alpha - alfakomponent som ett heltalsvärde från 0 (helt transparent) till 255 (ogenomskinlig).

Exempel

  • färg_cmyka(100,50,0,10,200) → ’0,115,230,200’

9.2.3.3. color_cmykf

Returnerar ett färgobjekt baserat på dess cyan-, magenta-, gul-, svart- och alfakomponenter.

Syntax

color_cmykf(cyan, magenta, gul, svart, [alpha=1.0])

[] markerar valfria argument

Argument

  • cyan - cyankomponent som ett flottörvärde från 0,0 till 1,0

  • magenta - magentakomponent som ett flottörvärde från 0,0 till 1,0

  • yellow - gul komponent som ett flottörvärde från 0,0 till 1,0

  • svart - svart komponent som ett flottörvärde från 0,0 till 1,0

  • alpha - alfakomponent som ett flottörvärde från 0,0 till 1,0

Exempel

  • färg_cmykf(1,0.9,0.81,0.62) → CMYKA: 1.00,0.90,0.81,0.62,1.00

9.2.3.4. color_grayscale_average

Applicerar ett gråskalefilter på en färg och returnerar den. Returnerad typ är samma som färgargumentet, dvs. en färgsträngrepresentation eller ett färgobjekt.

Syntax

color_grayscale_average(color)

Argument

  • color - en representation av en färgsträng eller ett färgobjekt

Exempel

  • color_grayscale_average('255,100,50') → ’135,135,135,255’

  • color_grayscale_average(color_cmykf(0.6,0.5,0.1,0.8)) → CMYKA: 0.40,0.40,0.40,0.80,1.00

9.2.3.5. color_hsl

Returnerar en strängrepresentation av en färg baserat på dess attribut för nyans, mättnad och ljushet.

Syntax

color_hsl(hue, saturation, lightness)

Argument

  • hue - färgens nyans, som ett heltalsvärde från 0 till 360

  • saturation - mättnadsprocent för färgen som ett heltal från 0 till 100

  • lightness - färgens ljushetsprocent som ett heltalsvärde från 0 till 100

Exempel

  • färg_hsl(100,50,70) → ’166,217,140’

9.2.3.6. color_hsla

Returnerar en strängrepresentation av en färg baserat på dess attribut för nyans, mättnad, ljushet och alfa (transparens)

Syntax

color_hsla(hue, saturation, lightness, alpha)

Argument

  • hue - färgens nyans, som ett heltalsvärde från 0 till 360

  • saturation - mättnadsprocent för färgen som ett heltal från 0 till 100

  • lightness - färgens ljushetsprocent som ett heltalsvärde från 0 till 100

  • alpha - alfakomponent som ett heltalsvärde från 0 (helt transparent) till 255 (ogenomskinlig).

Exempel

  • färg_hsla(100,50,70,200) → ’166,217,140,200’

9.2.3.7. color_hslf

Returnerar ett färgobjekt baserat på dess attribut för nyans, mättnad och ljushet.

Syntax

color_hslf(nyans, mättnad, ljushet, [alpha=1.0])

[] markerar valfria argument

Argument

  • hue - färgens nyans, som ett flottörvärde från 0,0 till 1,0

  • saturation - färgens mättnad som ett flottörvärde från 0,0 till 1,0

  • lightness - färgens ljushet som ett floatvärde från 0,0 till 1,0

  • alpha - alfakomponent som ett flottörvärde från 0,0 till 1,0

Exempel

  • färg_hslf(0,3,0,52,0,7) → HSLA: 0,30,0,52,0,70,1,00

9.2.3.8. color_hsv

Returnerar en strängrepresentation av en färg baserat på dess attribut för nyans, mättnad och värde.

Syntax

color_hsv(hue, saturation, value)

Argument

  • hue - färgens nyans, som ett heltalsvärde från 0 till 360

  • saturation - mättnadsprocent för färgen som ett heltal från 0 till 100

  • värde - värdeprocent för färgen som ett heltal från 0 till 100

Exempel

  • färg_hsv(40,100,100) → ’255,170,0’

9.2.3.9. color_hsva

Returnerar en strängrepresentation av en färg baserat på dess attribut för nyans, mättnad, värde och alfa (transparens).

Syntax

color_hsva(hue, saturation, value, alpha)

Argument

  • hue - färgens nyans, som ett heltalsvärde från 0 till 360

  • saturation - mättnadsprocent för färgen som ett heltal från 0 till 100

  • värde - värdeprocent för färgen som ett heltal från 0 till 100

  • alpha - alfakomponent som ett heltalsvärde från 0 (helt transparent) till 255 (ogenomskinlig)

Exempel

  • färg_hsva(40,100,100,200) → ’255,170,0,200’

9.2.3.10. color_hsvf

Returnerar ett färgobjekt baserat på dess attribut för nyans, mättnad och värde.

Syntax

färg_hsvf(nyans, mättnad, värde, [alfa=1,0])

[] markerar valfria argument

Argument

  • hue - färgens nyans, som ett flottörvärde från 0,0 till 1,0

  • saturation - färgens mättnad som ett flottörvärde från 0,0 till 1,0

  • värde - färgens värde i form av ett flottörvärde från 0,0 till 1,0

  • alpha - alfakomponent som ett flottörvärde från 0,0 till 1,0

Exempel

  • färg_hsvf(0,4,1,0,6) → HSVA: 0,40,1,00,0,60,1,00

9.2.3.11. color_mix

Returnerar en färg som blandar röd-, grön-, blå- och alfavärdena för två angivna färger baserat på ett givet förhållande. Returnerad typ är samma som färgargumenten, dvs. en färgsträngrepresentation eller ett färgobjekt.

Syntax

color_mix(color1, color2, ratio)

Argument

  • color1 - en färgsträng eller ett färgobjekt

  • color2 - en färgsträng eller ett färgobjekt

  • ratio - ett förhållande

Exempel

  • color_mix_rgb('0,0,0','255,255,255',0.5) → ’127,127,127,255’

  • color_mix(color_cmykf(0.9,0.9,0.9,0.9),color_cmykf(0.1,0.1,0.1,0.1),0.5) → CMYKA: 0.50,0.50,0.50,0.50,1.00

9.2.3.12. color_mix_rgb

Returnerar en sträng som representerar en färg som blandar röd-, grön-, blå- och alfavärdena för två angivna färger baserat på ett givet förhållande.

Syntax

color_mix_rgb(color1, color2, ratio)

Argument

  • färg1 - en färgsträng

  • color2 - en färgsträng

  • ratio - ett förhållande

Exempel

  • color_mix_rgb('0,0,0','255,255,255',0.5) → ’127,127,127,255’

9.2.3.13. color_part

Returnerar en specifik komponent från en färgsträng eller ett färgobjekt, t.ex. den röda komponenten eller alfakomponenten.

Syntax

color_part(color, component)

Argument

  • color - en färgsträng eller ett färgobjekt

  • component - en sträng som motsvarar den färgkomponent som ska returneras. Giltiga alternativ är:

    • röd: RGB röd komponent (0-255)

    • grön: RGB grön komponent (0-255)

    • blå: RGB blå komponent (0-255)

    • alfa: värde för alfa (transparens) (0-255)

    • nyans: HSV-nyans (0-360)

    • mättnad: HSV-mättnad (0-100)

    • värde: HSV-värde (0-100)

    • hsl_hue: HSL-nyans (0-360)

    • hsl_saturation: HSL-mättnad (0-100)

    • ljushet: HSL-ljushet (0-100)

    • cyan: CMYK-cyankomponent (0-100)

    • magenta: CMYK-komponent för magenta (0-100)

    • gul: CMYK gul komponent (0-100)

    • svart: CMYK svart komponent (0-100)

Exempel

  • färg_del('200,10,30','grön') → 10

  • till_int(färg_del(färg_cmykf(0,1,0,2,0,3,0,9),'svart')) → 90

9.2.3.14. color_rgb

Returnerar en strängrepresentation av en färg baserad på dess röda, gröna och blå komponenter.

Syntax

color_rgb(red, green, blue)

Argument

  • red - röd komponent som ett heltalsvärde från 0 till 255

  • green - grön komponent som ett heltalsvärde från 0 till 255

  • blue - blå komponent som ett heltalsvärde från 0 till 255

Exempel

  • färg_rgb(255,127,0) → ’255,127,0’

9.2.3.15. color_rgba

Returnerar en strängrepresentation av en färg baserad på dess röda, gröna, blå och alfa (transparens) komponenter.

Syntax

color_rgba(red, green, blue, alpha)

Argument

  • red - röd komponent som ett heltalsvärde från 0 till 255

  • green - grön komponent som ett heltalsvärde från 0 till 255

  • blue - blå komponent som ett heltalsvärde från 0 till 255

  • alpha - alfakomponent som ett heltalsvärde från 0 (helt transparent) till 255 (ogenomskinlig).

Exempel

  • färg_rgba(255,127,0,200) → ’255,127,0,200’

9.2.3.16. color_rgbf

Returnerar ett färgobjekt baserat på dess röd-, grön-, blå- och alfakomponenter.

Syntax

color_rgbf(röd, grön, blå, [alpha=1,0])

[] markerar valfria argument

Argument

  • red - röd komponent som ett flytvärde från 0,0 till 1,0

  • green - grön komponent som ett flottörvärde från 0,0 till 1,0

  • blue - blå komponent som ett flottörvärde från 0,0 till 1,0

  • alpha - alfakomponent som ett flottörvärde från 0,0 till 1,0

Exempel

  • färg_rgbf(1,0,0,5,0) → RGBA: 1,00,0,50,0,00,1,00

9.2.3.17. create_ramp

Returnerar en gradientramp från en karta med färgsträngar och steg.

Syntax

create_ramp(map, [discrete=false])

[] markerar valfria argument

Argument

  • map - en karta över färgsträngar och steg

  • discrete - sätt denna parameter till true för att skapa en diskret färgramp

Exempel

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → ’255,0,0,255’

9.2.3.18. darker

Returnerar en mörkare (eller ljusare) färg. Returnerad typ är samma som för färgargument, dvs. en färgsträngrepresentation eller ett färgobjekt.

Syntax

darker(color, factor)

Argument

  • color - en färgsträng eller ett färgobjekt

  • factor - ett heltal som motsvarar mörkläggningsfaktorn:

    • om faktorn är större än 100 ger funktionen en mörkare färg (om faktorn är 200 får man t.ex. en färg som är hälften så ljus);

    • om faktorn är mindre än 100 är returfärgen ljusare, men det rekommenderas att använda funktionen lighter() för detta ändamål;

    • om faktorn är 0 eller negativ är returvärdet ospecificerat.

Exempel

  • mörkare('200,10,30', 200) → ’100,5,15,255’

För vidare läsning: lighter

9.2.3.19. lighter

Returnerar en ljusare (eller mörkare) färg. Returnerad typ är samma som för färgargument, dvs. en färgsträngrepresentation eller ett färgobjekt.

Syntax

lighter(color, factor)

Argument

  • color - en färgsträng eller ett färgobjekt

  • factor - ett heltal som motsvarar blixtfaktorn:

    • om faktorn är större än 100 ger funktionen en ljusare färg (om faktorn är 150 blir färgen t.ex. 50% ljusare);

    • om faktorn är mindre än 100 är returfärgen mörkare, men det rekommenderas att använda funktionen darker() för detta ändamål;

    • om faktorn är 0 eller negativ är returvärdet ospecificerat.

Exempel

  • lighter('200,10,30', 200) → ’255,158,168,255’

För vidare läsning: uttrycksfunktion_färg_mörkare

9.2.3.20. project_color

Returnerar en färg från projektets färgschema.

Syntax

project_color(name)

Argument

  • namn - ett namn på en färg

Exempel

  • project_color('Logofärg') → ’20,140,50’

Ytterligare läsning: Ställa in projektfärger

9.2.3.21. project_color_object

Returnerar en färg från projektets färgschema. I motsats till project_color som returnerar en färgsträng, returnerar project_color_object ett färgobjekt.

Syntax

project_color_object(name)

Argument

  • namn - ett namn på en färg

Exempel

  • project_color_object('Logofärg') → RGBA: 0,08,0,55,0,20,1,00

9.2.3.22. ramp_color

Returnerar en sträng som representerar en färg från en färgramp.

Sparad rampvariant

Returnerar en sträng som representerar en färg från en sparad ramp

Syntax

ramp_color(ramp_name, value)

Argument

  • ramp_name - namnet på färgrampen i form av en sträng, t.ex. ”Spectral

  • värde - den position på rampen som färgen ska väljas från som ett verkligt tal mellan 0 och 1

Exempel

  • ramp_color('Spectral',0.3) → ’253,190,115,255’

Observera

De tillgängliga färgramperna varierar mellan olika QGIS-installationer. Den här funktionen kanske inte ger förväntat resultat om du flyttar ditt QGIS-projekt mellan olika installationer.

Uttryck-skapad rampvariant

Returnerar en sträng som representerar en färg från en ramp som skapats med ett uttryck

Syntax

ramp_color(ramp, value)

Argument

  • ramp - färgen ramp

  • värde - den position på rampen som färgen ska väljas från som ett verkligt tal mellan 0 och 1

Exempel

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → ’255,0,0,255’

Ytterligare läsning: Inställning av en färgramp, Kortkommando för färgrampens rullgardinsmeny

9.2.3.23. ramp_color_object

Returnerar ett färgobjekt från en färgramp. I motsats till ramp_color som returnerar en färgsträngrepresentation, returnerar ramp_color_object ett färgobjekt.

Sparad rampvariant

Returnerar ett färgobjekt från en sparad ramp

Syntax

ramp_color_object(ramp_name, value)

Argument

  • ramp_name - namnet på färgrampen i form av en sträng, t.ex. ”Spectral

  • värde - den position på rampen som färgen ska väljas från som ett verkligt tal mellan 0 och 1

Exempel

  • ramp_color_object('Spectral',0.3) → RGBA: 0.99,0.75,0.45,1.00

Observera

De tillgängliga färgramperna varierar mellan olika QGIS-installationer. Den här funktionen kanske inte ger förväntat resultat om du flyttar ditt QGIS-projekt mellan olika installationer.

Uttryck-skapad rampvariant

Returnerar ett färgobjekt från en ramp som skapats med ett uttryck

Syntax

ramp_color_object(ramp, value)

Argument

  • ramp - färgen ramp

  • värde - den position på rampen som färgen ska väljas från som ett verkligt tal mellan 0 och 1

Exempel

  • ramp_color_object(create_ramp(map(0,color_rgbf(0,0,0),1,color_rgbf(1,0,0)),1) → RGBA: 1,00,0,00,0,00,1,00

9.2.3.24. set_color_part

Ställer in en specifik färgkomponent för en färgsträng eller ett färgobjekt, t.ex. röd komponent eller alfakomponent.

Syntax

set_color_part(color, component, value)

Argument

  • color - en färgsträng eller ett färgobjekt

  • component - en sträng som motsvarar den färgkomponent som ska ställas in. Giltiga alternativ är:

    • röd: RGB röd komponent (0-255)

    • grön: RGB grön komponent (0-255)

    • blå: RGB blå komponent (0-255)

    • alfa: värde för alfa (transparens) (0-255)

    • nyans: HSV-nyans (0-360)

    • mättnad: HSV-mättnad (0-100)

    • värde: HSV-värde (0-100)

    • hsl_hue: HSL-nyans (0-360)

    • hsl_saturation: HSL-mättnad (0-100)

    • ljushet: HSL-ljushet (0-100)

    • cyan: CMYK-cyankomponent (0-100)

    • magenta: CMYK-komponent för magenta (0-100)

    • gul: CMYK gul komponent (0-100)

    • svart: CMYK svart komponent (0-100)

  • värde - nytt värde för färgkomponenten, med hänsyn till de intervall som anges ovan

Exempel

  • set_color_part('200,10,30','green',50) → ’200,50,30,255’

  • set_color_part(color_cmykf(0.21,0,0.92,0.70),'black',100) → CMYKA: 0.21,0.00,0.92,1.00,1.00

9.2.4. Villkorliga funktioner

Den här gruppen innehåller funktioner för att hantera villkorliga kontroller i uttryck.

9.2.4.1. CASE

CASE används för att utvärdera en serie villkor och returnera ett resultat för det första villkoret som uppfylls. Villkoren utvärderas sekventiellt, och om ett villkor är sant stoppas utvärderingen och motsvarande resultat returneras. Om inget av villkoren är sant returneras värdet i ELSE-satsen. Om ingen ELSE-sats anges och inget av villkoren uppfylls, returneras dessutom NULL.

CASE

WHEN villkor THEN resultat

[ …n ]

[ ELSE resultat ]

END

[ ] markerar valfria komponenter

Argument

  • WHEN condition - Ett villkorsuttryck som ska utvärderas

  • THEN result - Om condition utvärderas till True utvärderas och returneras result.

  • ELSE result - Om inget av ovanstående villkor utvärderas till True utvärderas och returneras result.

Exempel

  • CASE WHEN "name" IS NULL THEN "None" END → Returnerar strängen ”None” om fältet ”name” är NULL

  • CASE WHEN $area > 10000 THEN 'Stor fastighet' WHEN $area > 5000 THEN 'Medelstor fastighet' ELSE 'Liten fastighet' END → Returnerar strängen ’Stor fastighet’ om området är större än 10000, ’Medelstor fastighet’ om området är mellan 5000 och 10000 och ’Liten fastighet’ för övriga

9.2.4.2. coalesce

Returnerar det första icke-NULL-värdet från uttrycksförteckningen.

Denna funktion kan ta ett valfritt antal argument.

Syntax

coalesce(uttryck1, uttryck2, …)

Argument

  • expression - vilket giltigt uttryck eller värde som helst, oavsett typ.

Exempel

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

  • coalesce(7, NULL, 3*2) → 7

  • coalesce("fieldA", "fallbackField", 'ERROR') → värdet av fieldA om det är icke-NULL annars värdet av ”fallbackField” eller strängen ’ERROR’ om båda är NULL

9.2.4.3. if

Testar ett villkor och returnerar ett annat resultat beroende på den villkorliga kontrollen.

Syntax

if(condition, result_when_true, result_when_false)

Argument

  • villkor - det villkor som ska kontrolleras

  • result_when_true - det resultat som returneras när villkoret är sant eller ett annat värde som inte omvandlas till falskt.

  • result_when_false - det resultat som returneras när villkoret är falskt eller ett annat värde som konverteras till falskt, t.ex. 0 eller ’’. NULL kommer också att konverteras till false.

Exempel

  • if( 1+1=2, 'Ja', 'Nej' ) → ’Ja’

  • if( 1+1=3, 'Ja', 'Nej' ) → ’Nej’

  • if( 5 > 3, 1, 0) → 1

  • if( '', 'Det är sant (inte tomt)', 'Det är falskt (tomt)' ) → ’Det är falskt (tomt)’

  • if( ' ', 'Det är sant (inte tomt)', 'Det är falskt (tomt)' ) → ’Det är sant (inte tomt)’

  • if( 0, 'Ett', 'Noll' ) → ’Noll’

  • if( 10, 'Ett', 'Noll' ) → ’Ett’

9.2.4.4. nullif

Returnerar ett NULL-värde om värde1 är lika med värde2; annars returneras värde1. Detta kan användas för att villkorligt ersätta värden med NULL.

Syntax

nullif(värde1, värde2)

Argument

  • value1 - Det värde som antingen ska användas eller ersättas med NULL.

  • value2 - Det kontrollvärde som kommer att utlösa NULL-ersättningen.

Exempel

  • nullif('(ingen)', '(ingen)') → NULL

  • nullif('text', '(ingen)') → ’text’

  • nullif("name", '') → NULL, om name är en tom sträng (eller redan NULL), namnet i alla andra fall.

9.2.4.5. regexp_match

Returnerar den första matchande positionen som matchar ett reguljärt uttryck i en unikodsträng, eller 0 om delsträngen inte hittas.

Syntax

regexp_match(input_string, regex)

Argument

  • input_string - den sträng som ska testas mot det reguljära uttrycket

  • regex - Det reguljära uttryck som ska testas mot. Backslash-tecken måste dubbeleskapsas (t.ex. ”\\s” för att matcha ett tecken med vitt utrymme eller ”\\b” för att matcha en ordgräns).

Exempel

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

  • regexp_match('Budač','udač\\b') → 2

9.2.4.6. try

Prövar ett uttryck och returnerar dess värde om det är felfritt. Om uttrycket ger ett fel returneras ett alternativt värde när det anges, annars returnerar funktionen NULL.

Syntax

try(expression, [alternative])

[] markerar valfria argument

Argument

  • expression - det uttryck som ska köras

  • alternative - det resultat som kommer att returneras om uttrycket returnerar ett fel.

Exempel

  • try( to_int( '1' ), 0 ) → 1

  • try( to_int( 'a' ), 0 ) → 0

  • try( to_date( 'invalid_date' ) ) → NULL

9.2.5. Konverteringar Funktioner

Denna grupp innehåller funktioner för att konvertera en datatyp till en annan (t.ex. sträng från/till heltal, binär från/till sträng, sträng till datum, …).

9.2.5.1. from_base64

Avkodar en sträng i Base64-kodning till ett binärt värde.

Syntax

from_base64(string)

Argument

  • sträng - den sträng som ska avkodas

Exempel

  • from_base64('UUdJUw==') → ’QGIS’

9.2.5.2. hash

Skapar en hash från en sträng med en given metod. En byte (8 bitar) representeras av två hexadecimala ”siffror”, så ”md4” (16 byte) ger en 16 * 2 = 32 tecken lång hexadisk sträng och ”keccak_512” (64 byte) ger en 64 * 2 = 128 tecken lång hexadisk sträng.

Syntax

hash(string, method)

Argument

  • sträng - strängen som ska hashas

  • method - Hashmetod bland följande: ”md4”, ”md5”, ”sha1”, ”sha224”, ”sha384”, ”sha512”, ”sha3_224”, ”sha3_256”, ”sha3_384”, ”sha3_512”, ”keccak_224”, ”keccak_256”, ”keccak_384”, ”keccak_512

Exempel

  • hash('QGIS', 'md4') → ’c0fc71c241cdebb6e888cbac0e2b68eb’

  • hash('QGIS', 'md5') → ’57470aaa9e22adaefac7f5f342f1c6da’

  • hash('QGIS', 'sha1') → ’f87cfb2b74cdd5867db913237024e7001e62b114’

  • hash('QGIS', 'sha224') → ’4093a619ada631c770f44bc643ead18fb393b93d6a6af1861fcfece0’

  • hash('QGIS', 'sha256') → ’eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309’

  • hash('QGIS', 'sha384') → ’91c1de038cc3d09fdd512e99f9dd9922efadc39ed21d3922e69a4305cc25506033aee388e554b78714c8734f9cd7e610’

  • hash('QGIS', 'sha512') → ’c2c092f2ab743bf8edbeb6d028a745f30fc720408465ed369421f0a4e20fa5e27f0c90ad72d3f1d836eaa5d25cd39897d4cf77e19984668ef58da6e3159f18ac’

  • hash('QGIS', 'sha3_224') → ’467f49a5039e7280d5d42fd433e80d203439e338eaabd701f0d6c17d’

  • hash('QGIS', 'sha3_256') → ’540f7354b6b8a6e735f2845250f15f4f3ba4f666c55574d9e9354575de0e980f’

  • hash('QGIS', 'sha3_384') → ’96052da1e77679e9a65f60d7ead961b287977823144786386eb43647b0901fd8516fa6f1b9d243fb3f28775e6dde6107’

  • hash('QGIS', 'sha3_512') → ’900d079dc69761da113980253aa8ac0414a8bd6d09879a916228f8743707c4758051c98445d6b8945ec854ff90655005e02aceb0a2ffc6a0ebf818745d665349’

  • hash('QGIS', 'keccak_224') → ’5b0ce6acef8b0a121d4ac4f3eaa8503c799ad4e26a3392d1fb201478’

  • hash('QGIS', 'keccak_256') → ’991c520aa6815392de24087f61b2ae0fd56abbfeee4a8ca019c1011d327c577e’

  • hash('QGIS', 'keccak_384') → ’c57a3aed9d856fa04e5eeee9b62b6e027cca81ba574116d3cc1f0d48a1ef9e5886ff463ea8d0fac772ee473bf92f810d’

9.2.5.3. md5

Skapar en md5-hash från en sträng.

Syntax

md5(string)

Argument

  • sträng - strängen som ska hashas

Exempel

  • md5('QGIS') → ’57470aaa9e22adaefac7f5f342f1c6da’

9.2.5.4. sha256

Skapar en sha256-hash från en sträng.

Syntax

sha256(string)

Argument

  • sträng - strängen som ska hashas

Exempel

  • sha256('QGIS') → ’eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309’

9.2.5.5. to_base64

Kodar ett binärt värde till en sträng med hjälp av Base64-kodning.

Syntax

to_base64(value)

Argument

  • värde - det binära värdet som ska kodas

Exempel

  • to_base64('QGIS') → ’UUdJUw==’

9.2.5.6. to_date

Konverterar en sträng till ett datumobjekt. En valfri formatsträng kan anges för att analysera strängen; se QDate::fromString eller dokumentationen av funktionen format_date för ytterligare dokumentation om formatet. Som standard används den aktuella QGIS-användarens locale.

Syntax

to_date(string, [format], [language])

[] markerar valfria argument

Argument

  • sträng - sträng som representerar ett datumvärde

  • format - format som används för att konvertera strängen till ett datum

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att konvertera strängen till ett datum. Som standard används den aktuella QGIS-användarens språk.

Exempel

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, om aktuell lokal använder namnet ’June’ för den sjätte månaden, annars uppstår ett fel

  • to_date('29 juni, 2019','d MMMM, åååå','fr') → 2019-06-29

För vidare läsning: format_date

9.2.5.7. to_datetime

Konverterar en sträng till ett datetime-objekt. En valfri formatsträng kan anges för att analysera strängen; se QDate::fromString, QTime::fromString eller dokumentationen av funktionen format_date för ytterligare dokumentation om formatet. Som standard används den aktuella QGIS-användarens locale.

Syntax

to_datetime(string, [format], [language])

[] markerar valfria argument

Argument

  • sträng - sträng som representerar ett datetime-värde

  • format - format som används för att konvertera strängen till en datetime

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att konvertera strängen till en datetime. Som standard används den aktuella QGIS-användarens språk.

Exempel

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, om den aktuella lokala använder namnet ’June’ för den sjätte månaden, annars uppstår ett fel

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

För vidare läsning: format_date

9.2.5.8. to_decimal

Konverterar en koordinat för grader, minuter och sekunder till dess decimala motsvarighet.

Syntax

to_decimal(value)

Argument

  • värde - En sträng med grader, minuter och sekunder.

Exempel

  • till_decimal('6°21\'16.445') → 6.3545680555

9.2.5.9. to_dm

Konverterar en koordinat till grad, minut.

Syntax

to_dm(coordinate, axis, precision, [formatting=])

[] markerar valfria argument

Argument

  • koordinat - Ett värde för latitud eller longitud.

  • axis - Koordinatens axel. Antingen ”x” eller ”y”.

  • precision - Antal decimaler.

  • formatting - Anger formateringstypen. Acceptabla värden är NULL (standard), ’aligned’ eller ’suffix’.

Exempel

  • till_dm(6.1545681, 'x', 3) → 6°9.274′

  • to_dm(6.1545681, 'y', 4, 'aligned') → 6°09.2741′N

  • to_dm(6.1545681, 'y', 4, 'suffix') → 6°9.2741′N

9.2.5.10. to_dms

Konverterar en koordinat till grad, minut, sekund.

Syntax

to_dms(coordinate, axis, precision, [formatting=])

[] markerar valfria argument

Argument

  • koordinat - Ett värde för latitud eller longitud.

  • axis - Koordinatens axel. Antingen ”x” eller ”y”.

  • precision - Antal decimaler.

  • formatting - Anger formateringstypen. Acceptabla värden är NULL (standard), ’aligned’ eller ’suffix’.

Exempel

  • till_dms(6.1545681, 'x', 3) → 6°9′16.445″

  • to_dms(6.1545681, 'y', 4, 'aligned') → 6°09′16.4452″N

  • to_dms(6.1545681, 'y', 4, 'suffix') → 6°9′16.4452″N

9.2.5.11. to_int

Konverterar en sträng till ett heltal. Om ett värde inte kan konverteras till heltal är uttrycket ogiltigt (t.ex. ”123asd” är ogiltigt).

Syntax

to_int(string)

Argument

  • sträng - sträng som ska konverteras till heltal

Exempel

  • to_int('123') → 123

9.2.5.12. to_interval

Konverterar en sträng till en intervalltyp. Kan användas för att ta dagar, timmar, månad etc. från ett datum.

Syntax

to_interval(string)

Argument

  • sträng - en sträng som representerar ett intervall. Tillåtna format är {n} dagar {n} timmar {n} månader.

Exempel

  • to_interval('1 dag 2 timmar') → intervall: 1,08333 dagar

  • to_interval( '0,5 timmar' ) → intervall: 30 minuter

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 dag 2 timmar') → 2012-05-04T10:00:00

9.2.5.13. to_real

Konverterar en sträng till ett reellt tal. Om ett värde inte kan konverteras till ett reellt tal är uttrycket ogiltigt (t.ex. ”123.56asd” är ogiltigt). Tal avrundas efter att ändringar har sparats om precisionen är mindre än resultatet av konverteringen.

Syntax

to_real(string)

Argument

  • sträng - sträng som ska konverteras till reellt tal

Exempel

  • till_verklig('123.45') → 123.45

9.2.5.14. to_string

Konverterar ett tal till en sträng.

Syntax

to_string(number)

Argument

  • number - Heltal eller verkligt värde. Det tal som ska konverteras till sträng.

Exempel

  • to_string(123) → ’123’

Ytterligare läsning: format_number

9.2.5.15. to_time

Konverterar en sträng till ett tidsobjekt. En valfri formatsträng kan anges för att analysera strängen; se QTime::fromString för ytterligare dokumentation om formatet.

Syntax

to_time(string, [format], [language])

[] markerar valfria argument

Argument

  • sträng - sträng som representerar ett tidsvärde

  • format - format som används för att konvertera strängen till en tid

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att konvertera strängen till en tid

Exempel

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

För vidare läsning: format_date

9.2.6. Anpassade funktioner

Denna grupp innehåller funktioner som skapats av användaren. Se Funktion Redaktör för mer information.

9.2.7. Datum- och tidsfunktioner

Denna grupp innehåller funktioner för hantering av datum- och tidsdata. Den här gruppen delar flera funktioner med grupperna Konverteringar Funktioner (to_date, to_time, to_datetime, to_interval) och Strängfunktioner (format_date).

Observera

Lagring av datum, datatid och intervall i fält

Möjligheten att lagra datum-, tid- och datumtid-värden direkt i fält beror på datakällans leverantör (t.ex. accepterar Shapefile datum-format, men inte datumtid- eller tid-format). Följande är några förslag för att övervinna denna begränsning:

  • date, datetime och time kan konverteras och lagras i fält av texttyp med hjälp av funktionen format_date().

  • Intervall kan lagras i fält av heltals- eller decimaltyp efter användning av en av funktionerna för datumutdragning (t.ex. day() för att få intervallet uttryckt i dagar)

9.2.7.1. age

Returnerar skillnaden mellan två datum eller datatider.

Skillnaden returneras som en Interval och måste användas med någon av följande funktioner för att få ut användbar information:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Syntax

age(datetime1, datetime2)

Argument

  • datetime1 - en sträng, ett datum eller en datetime som representerar det senare datumet

  • datetime2 - en sträng, ett datum eller en datetime som representerar det tidigare datumet

Exempel

  • day(age('2012-05-12','2012-05-02')) → 10

  • timme(ålder('2012-05-12','2012-05-02')) → 240

9.2.7.2. datetime_from_epoch

Returnerar en datatid vars datum och tid är antalet millisekunder, msecs, som har passerat sedan 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC), och konverterat till Qt.LocalTime.

Syntax

datetime_from_epoch(int)

Argument

  • int - antal (millisekunder)

Exempel

  • datatid_från_epoch(1483225200000) → 2017-01-01T00:00:00

9.2.7.3. day

Extraherar dagen från ett datum, eller antalet dagar från ett intervall.

Datumvariant

Extraherar dagen från ett datum eller en datetime.

Syntax

day(date)

Argument

  • date - ett datum- eller datetime-värde

Exempel

  • dag('2012-05-12') → 12

Intervallvariant

Beräknar längden i dagar för ett intervall.

Syntax

day(interval)

Argument

  • interval - intervallvärde för att returnera antal dagar från

Exempel

  • day(to_interval('3 dagar')) → 3

  • dag(till_intervall('3 veckor 2 dagar')) → 23

  • dag(ålder('2012-01-01','2010-01-01')) → 730

9.2.7.4. day_of_week

Returnerar veckodagen för ett angivet datum eller en angiven datatid. Det returnerade värdet sträcker sig från 0 till 6, där 0 motsvarar en söndag och 6 en lördag.

Syntax

day_of_week(date)

Argument

  • date - datum eller datetime-värde

Exempel

  • dag_av_vecka(till_datum('2015-09-21')) → 1

9.2.7.5. epoch

Returnerar intervallet i millisekunder mellan unix-epoken och ett givet datumvärde.

Syntax

epoch(date)

Argument

  • date - ett datum- eller datetime-värde

Exempel

  • epoch(to_date('2017-01-01')) → 1483203600000

9.2.7.6. format_date

Formaterar en datatyp eller sträng till ett anpassat strängformat. Använder Qt datum/tid formatsträngar. Se QDateTime::toString.

Syntax

format_date(datetime, format, [language])

[] markerar valfria argument

Argument

  • datetime - datum, tid eller datetime-värde

  • format - Strängmall som används för att formatera strängen.

    Uttryck

    Utmatning

    d

    dagen som ett nummer utan inledande nolla (1 till 31)

    dd

    dagen som ett nummer med en inledande nolla (01 till 31)

    ddd

    det förkortade lokala dagsnamnet (t.ex. ”mån” till ”sön”)

    dddd

    det långa lokaliserade dagsnamnet (t.ex. ”måndag” till ”söndag”)

    M

    månaden som ett nummer utan inledande nolla (1-12)

    MM

    månaden som ett nummer med en inledande nolla (01-12)

    MMM

    det förkortade lokala månadsnamnet (t.ex. ”Jan” till ”Dec”)

    MMMM

    det långa lokaliserade månadsnamnet (t.ex. ”januari” till ”december”)

    yy

    årtalet som tvåsiffrigt nummer (00-99)

    yyyy

    året som ett fyrsiffrigt tal

    Dessa uttryck kan användas för tidsdelen av formatsträngen:

    Uttryck

    Utmatning

    h

    timmen utan inledande nolla (0 till 23 eller 1 till 12 om AM/PM-visning)

    hh

    timmen med en inledande nolla (00 till 23 eller 01 till 12 om AM/PM-visning)

    H

    timmen utan inledande nolla (0 till 23, även med AM/PM-visning)

    HH

    timmen med en inledande nolla (00 till 23, även med AM/PM-visning)

    m

    minuten utan inledande nolla (0 till 59)

    mm

    minuten med en inledande nolla (00 till 59)

    s

    den andra siffran utan inledande nolla (0 till 59)

    ss

    den andra siffran med en inledande nolla (00 till 59)

    z

    millisekunder utan nollor efter (0 till 999)

    zzz

    millisekunder med nollor efter (000 till 999)

    AP eller A

    tolkas som en AM/PM-tid. AP måste vara antingen ’AM’ eller ’PM’.

    ap eller en

    Tolkas som en AM/PM-tid. ap måste vara antingen ’am’ eller ’pm’.

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att formatera datumet till en anpassad sträng. Som standard används den aktuella QGIS-användarens språk.

Exempel

  • format_date('2012-05-15','dd.MM.åååå') → ’15.05.2012’

  • format_date('2012-05-15','d MMMM åååå','fr') → ’15 maj 2012’

  • format_date('2012-05-15','dddd') → ”Tuesday”, om den aktuella locale är en engelsk variant

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → ’15.05.12’

  • format_date('13:54:20','hh:mm AP') → ’01:54 PM’

9.2.7.7. hour

Extraherar timdelen från en datetime eller tid, eller antalet timmar från ett intervall.

Tidsvariant

Extraherar timdelen från en tid eller datetime.

Syntax

hour(datetime)

Argument

  • datetime - ett tids- eller datetime-värde

Exempel

  • timme( till_datetime('2012-07-22 13:24:57') ) → 13

Intervallvariant

Beräknar längden i timmar för ett intervall.

Syntax

hour(interval)

Argument

  • interval - intervallvärde för att returnera antal timmar från

Exempel

  • timme(till_intervall('3 timmar')) → 3

  • hour(age('2012-07-22T13:00:00','2012-07-22T10:00:00')) → 3

  • timme(ålder('2012-01-01','2010-01-01')) → 17520

9.2.7.8. make_date

Skapar ett datumvärde från siffrorna år, månad och dag.

Syntax

make_date(year, month, day)

Argument

  • year - Årtalets nummer. År 1 till 99 tolkas som de är. År 0 är ogiltigt.

  • month - Månadsnummer, där 1=Januari

  • day - Dagnummer, börjar med 1 för den första dagen i månaden

Exempel

  • make_date(2020,5,4) → datumvärde 2020-05-04

9.2.7.9. make_datetime

Skapar ett datetime-värde från siffrorna år, månad, dag, timme, minut och sekund.

Syntax

make_datetime(year, month, day, hour, minute, second)

Argument

  • year - Årtalets nummer. År 1 till 99 tolkas som de är. År 0 är ogiltigt.

  • month - Månadsnummer, där 1=Januari

  • day - Dagnummer, börjar med 1 för den första dagen i månaden

  • hour - Timnummer

  • minut - Minuter

  • sekund - Sekunder (fraktionerade värden inkluderar millisekunder)

Exempel

  • make_datetime(2020,5,4,13,45,30.5) → datetime-värde 2020-05-04 13:45:30.500

9.2.7.10. make_interval

Skapar ett intervallvärde från värdena år, månad, veckor, dagar, timmar, minuter och sekunder.

Syntax

make_interval([years=0], [months=0], [weeks=0], [days=0], [hours=0], [minutes=0], [seconds=0])

[] markerar valfria argument

Argument

  • years - Antal år (förutsätter en årslängd på 365,25 dagar).

  • months - Antal månader (förutsätter en månadslängd på 30 dagar)

  • weeks - Antal veckor

  • days - Antal dagar

  • hours - Antal timmar

  • minuter - Antal minuter

  • sekunder - Antal sekunder

Exempel

  • make_interval(hours:=3) → intervall: 3 timmar

  • make_interval(dagar:=2, timmar:=3) → intervall: 2,125 dagar

  • make_interval(minuter:=0,5, sekunder:=5) → intervall: 35 sekunder

9.2.7.11. make_time

Skapar ett tidsvärde från tim-, minut- och sekundtal.

Syntax

make_time(hour, minute, second)

Argument

  • hour - Timnummer

  • minut - Minuter

  • sekund - Sekunder (fraktionerade värden inkluderar millisekunder)

Exempel

  • make_time(13,45,30.5) → tidsvärde 13:45:30.500

9.2.7.12. minute

Extraherar minutdelen från en datatid eller tid, eller antalet minuter från ett intervall.

Tidsvariant

Extraherar minutdelen från en tid eller datetime.

Syntax

minute(datetime)

Argument

  • datetime - ett tids- eller datetime-värde

Exempel

  • minut( to_datetime('2012-07-22 13:24:57') ) → 24

Intervallvariant

Beräknar längden i minuter för ett intervall.

Syntax

minute(interval)

Argument

  • interval - intervallvärde för att returnera antal minuter från

Exempel

  • minute(to_interval('3 minuter')) → 3

  • minute(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 20

  • minute(age('2012-01-01','2010-01-01')) → 1051200

9.2.7.13. month

Extraherar månadsdelen från ett datum, eller antalet månader från ett intervall.

Datumvariant

Extraherar månadsdelen från ett datum eller en datetime.

Syntax

month(date)

Argument

  • date - ett datum- eller datetime-värde

Exempel

  • månad('2012-05-12') → 05

Intervallvariant

Beräknar längden i månader för ett intervall.

Syntax

month(interval)

Argument

  • interval - intervallvärde för att returnera antal månader från

Exempel

  • månad(till_intervall('3 månader')) → 3

  • månad(ålder('2012-01-01','2010-01-01')) → 4.03333

9.2.7.14. now

Returnerar aktuellt datum och aktuell tid. Funktionen är statisk och ger konsekventa resultat när den utvärderas. Den tid som returneras är den tid då uttrycket förbereds.

Syntax

now()

Exempel

  • now() → 2012-07-22T13:24:57

9.2.7.15. sekund

Extraherar sekunddelen från en datetime eller tid, eller antalet sekunder från ett intervall.

Tidsvariant

Extraherar sekunddelen från en tid eller datetime.

Syntax

sekund(datetime)

Argument

  • datetime - ett tids- eller datetime-värde

Exempel

  • sekund( to_datetime('2012-07-22 13:24:57') ) → 57

Intervallvariant

Beräknar längden i sekunder för ett intervall.

Syntax

second(interval)

Argument

  • interval - intervallvärde för att returnera antal sekunder från

Exempel

  • sekund(till_intervall('3 minuter')) → 180

  • second(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 1200

  • sekund(ålder('2012-01-01','2010-01-01')) → 63072000

9.2.7.16. to_date

Konverterar en sträng till ett datumobjekt. En valfri formatsträng kan anges för att analysera strängen; se QDate::fromString eller dokumentationen av funktionen format_date för ytterligare dokumentation om formatet. Som standard används den aktuella QGIS-användarens locale.

Syntax

to_date(string, [format], [language])

[] markerar valfria argument

Argument

  • sträng - sträng som representerar ett datumvärde

  • format - format som används för att konvertera strängen till ett datum

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att konvertera strängen till ett datum. Som standard används den aktuella QGIS-användarens språk.

Exempel

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, om aktuell lokal använder namnet ’June’ för den sjätte månaden, annars uppstår ett fel

  • to_date('29 juni, 2019','d MMMM, åååå','fr') → 2019-06-29

För vidare läsning: format_date

9.2.7.17. to_datetime

Konverterar en sträng till ett datetime-objekt. En valfri formatsträng kan anges för att analysera strängen; se QDate::fromString, QTime::fromString eller dokumentationen av funktionen format_date för ytterligare dokumentation om formatet. Som standard används den aktuella QGIS-användarens locale.

Syntax

to_datetime(string, [format], [language])

[] markerar valfria argument

Argument

  • sträng - sträng som representerar ett datetime-värde

  • format - format som används för att konvertera strängen till en datetime

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att konvertera strängen till en datetime. Som standard används den aktuella QGIS-användarens språk.

Exempel

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, om den aktuella lokala använder namnet ’June’ för den sjätte månaden, annars uppstår ett fel

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

För vidare läsning: format_date

9.2.7.18. to_interval

Konverterar en sträng till en intervalltyp. Kan användas för att ta dagar, timmar, månad etc. från ett datum.

Syntax

to_interval(string)

Argument

  • sträng - en sträng som representerar ett intervall. Tillåtna format är {n} dagar {n} timmar {n} månader.

Exempel

  • to_interval('1 dag 2 timmar') → intervall: 1,08333 dagar

  • to_interval( '0,5 timmar' ) → intervall: 30 minuter

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 dag 2 timmar') → 2012-05-04T10:00:00

9.2.7.19. to_time

Konverterar en sträng till ett tidsobjekt. En valfri formatsträng kan anges för att analysera strängen; se QTime::fromString för ytterligare dokumentation om formatet.

Syntax

to_time(string, [format], [language])

[] markerar valfria argument

Argument

  • sträng - sträng som representerar ett tidsvärde

  • format - format som används för att konvertera strängen till en tid

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att konvertera strängen till en tid

Exempel

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

För vidare läsning: format_date

9.2.7.20. week

Extraherar veckonumret från ett datum, eller antalet veckor från ett intervall.

Datumvariant

Extraherar veckonumret från ett datum eller en datetime.

Syntax

week(date)

Argument

  • date - ett datum- eller datetime-värde

Exempel

  • vecka('2012-05-12') → 19

Intervallvariant

Beräknar längden i veckor för ett intervall.

Syntax

week(interval)

Argument

  • interval - intervallvärde för att returnera antal månader från

Exempel

  • vecka(till_intervall('3 veckor')) → 3

  • vecka(ålder('2012-01-01','2010-01-01')) → 104.285

9.2.7.21. year

Extraherar årsdelen från ett datum, eller antalet år från ett intervall.

Datumvariant

Extraherar årsdelen från ett datum eller en datetime.

Syntax

year(date)

Argument

  • date - ett datum- eller datetime-värde

Exempel

  • år('2012-05-12') → 2012

Intervallvariant

Beräknar längden i år för ett intervall.

Syntax

year(interval)

Argument

  • interval - intervallvärde för att returnera antal år från

Exempel

  • år(to_interval('3 år')) → 3

  • år(ålder('2012-01-01','2010-01-01')) → 1,9986

**Några exempel: **

Förutom dessa funktioner ger subtraktion av datum, datumtider eller tider med hjälp av operatorn - (minus) ett intervall.

Om du adderar eller subtraherar ett intervall till datum, datetime eller tid med operatörerna + (plus) och - (minus) får du tillbaka en datetime.

  • Få antalet dagar tills QGIS 3.0 släpps:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • Samma sak med tiden:

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • Hämta datatiden för 100 dagar från och med nu:

    now() + to_interval('100 days')
    -- Returns <datetime: 2017-06-18 01:00:00>
    

9.2.8. Fält och värden

Innehåller en lista över fält från det aktiva skiktet och specialvärden. Fältlistan innehåller de som lagras i datasetet, virtual och auxiliary samt från joins.

Dubbelklicka på ett fältnamn för att lägga till det i ditt uttryck. Du kan också skriva fältnamnet (helst inom dubbla citattecken) eller dess alias.

För att hämta fältvärden som ska användas i ett uttryck väljer du lämpligt fält och i den widget som visas väljer du mellan 10 Samples och All Unique. De begärda värdena visas sedan och du kan använda rutan Search högst upp i listan för att filtrera resultatet. Exempelvärden kan också nås genom att högerklicka på ett fält.

Om du vill lägga till ett värde i det uttryck du skriver, dubbelklickar du på det i listan. Om värdet är av strängtyp ska det ha ett enkelt citattecken, annars behövs inget citattecken.

9.2.8.1. NULL

Motsvarar ett NULL-värde.

Syntax

NULL

Exempel

  • NULL → ett NULL-värde

Observera

Om du vill testa för NULL använder du ett IS NULL- eller IS NOT NULL-uttryck.

9.2.9. Funktioner för filer och sökvägar

Denna grupp innehåller funktioner som manipulerar fil- och sökvägsnamn.

9.2.9.1. base_file_name

Returnerar filens basnamn utan katalog- eller filsuffix.

Syntax

base_file_name(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • base_file_name('/home/qgis/data/country_boundaries.shp') → ’country_boundaries’

9.2.9.2. exif

Hämtar exif-taggvärden från en bildfil.

Syntax

exif(path, [tag])

[] markerar valfria argument

Argument

  • path - En sökväg till en bildfil eller ett värde för ett kartskikt. Om ett värde för ett kartlager anges kommer filkällan för lagret att användas.

  • tag - Den tagg som ska returneras. Om den är tom returneras en karta med alla exif-taggvärden.

Exempel

  • exif('/my/photo.jpg','Exif.Image.Orientation') → 0

9.2.9.3. file_exists

Returnerar TRUE om en filsökväg finns.

Syntax

file_exists(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • file_exists('/home/qgis/data/country_boundaries.shp') → TRUE

9.2.9.4. file_name

Returnerar namnet på en fil (inklusive filtillägget), exklusive katalogen.

Syntax

file_name(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • file_name('/home/qgis/data/country_boundaries.shp') → ’country_boundaries.shp’

9.2.9.5. file_path

Returnerar katalogkomponenten i en filsökväg. Detta inkluderar inte filnamnet.

Syntax

file_path(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • file_path('/home/qgis/data/country_boundaries.shp') → ’/home/qgis/data’

9.2.9.6. file_size

Returnerar storleken (i byte) på en fil.

Syntax

file_size(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • file_size('/home/qgis/data/country_boundaries.geojson') → 5674

9.2.9.7. file_suffix

Returnerar filsuffixet (tillägget) från en filsökväg.

Syntax

file_suffix(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • file_suffix('/home/qgis/data/country_boundaries.shp') → ’shp’

9.2.9.8. is_directory

Returnerar TRUE om en sökväg motsvarar en katalog.

Syntax

is_directory(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • is_directory('/home/qgis/data/country_boundaries.shp') → FALSE

  • is_directory('/home/qgis/data/') → TRUE

9.2.9.9. is_file

Returnerar TRUE om en sökväg motsvarar en fil.

Syntax

is_file(path)

Argument

  • path - en filsökväg eller ett värde för ett kartskikt. Om ett värde för ett kartskikt anges kommer skiktets filkälla att användas.

Exempel

  • is_file('/home/qgis/data/country_boundaries.shp') → TRUE

  • is_file('/home/qgis/data/') → FALSE

9.2.10. Formulär Funktioner

Den här gruppen innehåller funktioner som uteslutande fungerar i attributformulärskontexten. Till exempel i inställningarna för fältets widgets.

9.2.10.1. current_parent_value

Denna funktion kan endast användas i ett inbäddat formulär och returnerar det aktuella, osparade värdet för ett fält i det överordnade formulär som för närvarande redigeras. Detta kommer att skilja sig från den överordnade funktionens faktiska attributvärden för funktioner som för närvarande redigeras eller som ännu inte har lagts till i ett överordnat skikt. När den här funktionen används i ett filteruttryck för en widget med värderelation bör den förpackas i en ”coalesce()” som kan hämta den faktiska överordnade funktionen från skiktet när formuläret inte används i ett inbäddat sammanhang.

Syntax

current_parent_value(field_name)

Argument

  • field_name - ett fältnamn i det aktuella överordnade formuläret

Exempel

  • current_parent_value( 'FIELD_NAME' ) → Det aktuella värdet för fältet ’FIELD_NAME’ i det överordnade formuläret.

9.2.10.2. current_value

Returnerar det aktuella, osparade värdet för ett fält i formuläret eller tabellraden som för närvarande redigeras. Detta skiljer sig från objektets faktiska attributvärden för objekt som håller på att redigeras eller som ännu inte har lagts till i ett skikt.

Syntax

current_value(field_name)

Argument

  • field_name - ett fältnamn i det aktuella formuläret eller tabellraden

Exempel

  • current_value( 'FIELD_NAME' ) → Det aktuella värdet för fältet ’FIELD_NAME’.

9.2.11. Fuzzy matchningsfunktioner

Denna grupp innehåller funktioner för fuzzy-jämförelser mellan värden.

9.2.11.1. hamming_distance

Returnerar Hamming-avståndet mellan två strängar. Detta motsvarar antalet tecken vid motsvarande positioner i indatasträngarna där tecknen är olika. Inmatningssträngarna måste vara lika långa och jämförelsen är skiftlägeskänslig.

Syntax

hamming_distance(sträng1, sträng2)

Argument

  • sträng1 - en sträng

  • sträng2 - en sträng

Exempel

  • hamming_distance('abc','xec') → 2

  • hamming_distance('abc','ABc') → 2

  • hamming_distance(övre('abc'),övre('ABC')) → 0

  • hamming_distance('abc','abcd') → NULL

9.2.11.2. levenshtein

Returnerar Levenshtein-editeringsavståndet mellan två strängar. Detta motsvarar det minsta antal teckenredigeringar (infogningar, borttagningar eller substitutioner) som krävs för att ändra en sträng till en annan.

Levenshtein-avståndet är ett mått på likheten mellan två strängar. Mindre avstånd innebär att strängarna är mer lika, och större avstånd innebär att strängarna är mer olika. Avståndet är skiftlägeskänsligt.

Syntax

levenshtein(string1, string2)

Argument

  • sträng1 - en sträng

  • sträng2 - en sträng

Exempel

  • levenshtein('kattungar','vante') → 2

  • levenshtein('Kitten','kitten') → 1

  • levenshtein(övre('Kitten'),övre('kitten')) → 0

9.2.11.3. longest_common_substring

Returnerar den längsta gemensamma delsträngen mellan två strängar. Denna delsträng är den längsta sträng som är en delsträng av de två indatasträngarna. Till exempel är den längsta gemensamma delsträngen av ”ABABC” och ”BABCA” ”BABC”. Substrängen är skiftlägeskänslig.

Syntax

longest_common_substring(string1, string2)

Argument

  • sträng1 - en sträng

  • sträng2 - en sträng

Exempel

  • längsta_vanliga_substräng('ABABC','BABCA') → ’BABC’

  • längsta_vanliga_substräng('abcDeF','abcdef') → ’abc’

  • längsta_vanliga_substräng(övre('abcDeF'),övre('abcdex')) → ’ABCDE’

9.2.11.4. soundex

Returnerar Soundex-representationen av en sträng. Soundex är en fonetisk matchningsalgoritm, så strängar med liknande ljud bör representeras av samma Soundex-kod.

Syntax

soundex(string)

Argument

  • sträng - en sträng

Exempel

  • soundex('robert') → ’R163’

  • soundex('rupert') → ’R163’

  • soundex('rubin') → ’R150’

9.2.12. Allmänna funktioner

Denna grupp innehåller allmänt sammansatta funktioner.

9.2.12.1. env

Hämtar en miljövariabel och returnerar dess innehåll som en sträng. Om variabeln inte hittas returneras NULL. Detta är praktiskt för att injicera systemspecifik konfiguration som enhetsbeteckningar eller sökvägsprefix. Definitionen av miljövariabler beror på operativsystemet, kontrollera med din systemadministratör eller dokumentationen för operativsystemet hur detta kan ställas in.

Syntax

env(name)

Argument

  • name - Namnet på den miljövariabel som ska hämtas.

Exempel

  • env( 'LANG' ) → ’en_US.UTF-8’

  • env( 'MY_OWN_PREFIX_VAR' ) → ’Z:’

  • env( 'I_DO_NOT_EXIST' ) → NULL

9.2.12.2. eval

Utvärderar ett uttryck som skickas i form av en sträng. Användbart för att expandera dynamiska parametrar som skickas som kontextvariabler eller fält.

Syntax

eval(expression)

Argument

  • expression - en uttryckssträng

Exempel

  • ``eval(’'nice'’) `` → ’nice’

  • eval(@expression_var) → [vad resultatet av utvärderingen av @expression_var än kan bli…]

9.2.12.3. eval_template

Utvärderar en mall som skickas i form av en sträng. Användbar för att expandera dynamiska parametrar som skickas som kontextvariabler eller fält.

Syntax

eval_template(template)

Argument

  • mall - en mallsträng

Exempel

  • eval_template('QGIS [% upper(\'rocks\') %]') → QGIS ROCKS

9.2.12.4. is_layer_visible

Returnerar TRUE om ett angivet lager är synligt.

Syntax

is_layer_visible(layer)

Argument

  • layer - en sträng som representerar antingen ett lagernamn eller ett lager-ID

Exempel

  • is_layer_visible('baseraster') → TRUE

9.2.12.5. mime_type

Returnerar mimetypen för binärdata.

Syntax

mime_type(bytes)

Argument

  • bytes - den binära datan

Exempel

  • mime_type('<html><body></body></html>') → text/html

  • mime_type(from_base64('R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAIAOw==')) → image/gif

9.2.12.6. var

Returnerar det värde som lagrats i en angiven variabel.

Syntax

var(name)

Argument

  • namn - ett variabelnamn

Exempel

  • var('qgis_version') → ’2.12’

Ytterligare läsning: Lista över standard variabler

9.2.12.7. with_variable

Denna funktion ställer in en variabel för varje uttryckskod som kommer att anges som 3:e argument. Detta är endast användbart för komplicerade uttryck, där samma beräknade värde måste användas på olika ställen.

Syntax

with_variable(name, value, expression)

Argument

  • namn - namnet på den variabel som ska ställas in

  • värde - det värde som ska ställas in

  • expression - det uttryck som variabeln ska vara tillgänglig för

Exempel

  • med_variabel('min_summa', 1 + 2 + 3, @min_summa * 2 + @min_summa * 5) → 42

9.2.13. Geometri Funktioner

Den här gruppen innehåller funktioner som arbetar med geometriska objekt (t.ex. buffert, transform, $area).

9.2.13.1. affine_transform

Returnerar geometrin efter en affin transformation. Beräkningarna görs i geometrins rumsliga referenssystem. Operationerna utförs i ordningen skala, rotation, translation. Om det finns en Z- eller M-offset men koordinaten inte finns i geometrin kommer den att läggas till.

Syntax

affine_transform(geometry, delta_x, delta_y, rotation_z, scale_x, scale_y, [delta_z=0], [delta_m=0], [scale_z=1], [scale_m=1])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • delta_x - översättning av x-axeln

  • delta_y - förskjutning av y-axeln

  • rotation_z - rotation runt z-axeln i grader moturs

  • scale_x - Skalfaktor för x-axeln

  • scale_y - Skalfaktor för y-axeln

  • delta_z - översättning av z-axeln

  • delta_m - förskjutning av m-axeln

  • scale_z - Skalfaktor för z-axeln

  • scale_m - Skalfaktor för m-axeln

Exempel

  • geom_to_wkt(affine_transform(geom_from_wkt('LINESTRING(1 1, 2 2)'), 2, 2, 0, 1, 1)) → ’LineString (3 3, 4 4)’

  • geom_to_wkt(affine_transform(geom_from_wkt('POLYGON((0 0, 0 3, 2 2, 0 0))'), 0, 0, -90, 1, 2)) → ’Polygon ((0 0, 6 0, 4 -2, 0 0))’

  • geom_to_wkt(affine_transform(geom_from_wkt('POINT(3 1)'), 0, 0, 0, 0, 1, 1, 5, 0)) → ’PointZ (3 1 5)’

../../../_images/affinetransform.png

Fig. 9.4 Vektorpunktlager (gröna prickar) före (vänster) och efter (höger) en affin transformation (översättning).

9.2.13.2. angle_at_vertex

Returnerar bisektorvinkeln (medelvinkeln) till geometrin för ett angivet vertex på en linjestringgeometri. Vinklar anges i grader medurs från norr.

Syntax

angle_at_vertex(geometry, vertex)

Argument

  • geometri - en geometri med linjestring

  • vertex - vertexindex, med början från 0; om värdet är negativt kommer det valda vertexindexet att vara dess totala antal minus det absoluta värdet

Exempel

  • vinkel_vid_vertex(geometri:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 45,0

9.2.13.3. apply_dash_pattern

Använder ett streckmönster på en geometri och returnerar en MultiLineString-geometri som är indatageometrin som streckas längs varje linje/ring med det angivna mönstret.

Syntax

apply_dash_pattern(geometry, pattern, [start_rule=no_rule], [end_rule=no_rule], [adjustment=both], [pattern_offset=0])

[] markerar valfria argument

Argument

  • geometry - en geometri (accepterar (multi)linjestrings eller (multi)polygoner).

  • pattern - streckmönster, som en matris av siffror som representerar längden på streck och mellanrum. Måste innehålla ett jämnt antal element.

  • start_rule - valfri regel för begränsning av mönstrets början. Giltiga värden är ”no_rule”, ”full_dash”, ”half_dash”, ”full_gap”, ”half_gap”.

  • end_rule - valfri regel för att begränsa slutet på mönstret. Giltiga värden är ”no_rule”, ”full_dash”, ”half_dash”, ”full_gap”, ”half_gap”.

  • adjustment - valfri regel för att ange vilken del av mönstret som ska justeras för att passa de önskade mönsterreglerna. Giltiga värden är ”both”, ”dash”, ”gap”.

  • pattern_offset - Valfritt avstånd som anger ett specifikt avstånd längs mönstret att börja på.

Exempel

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1))) → MultiLineString ((1 1, 4 1),(5 1, 8 1),(9 1, 10 1, 10 1))

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1), start_rule:='half_dash')) → MultiLineString ((1 1, 2,5 1),(3,5 1, 6,5 1),(7,5 1, 10 1, 10 1))

9.2.13.4. $area

Returnerar arean för den aktuella funktionen. Den area som beräknas med den här funktionen respekterar både ellipsoidinställningen och inställningarna för areaenhet i det aktuella projektet. Om t.ex. en ellipsoid har ställts in för projektet kommer den beräknade arean att vara ellipsoidisk, och om ingen ellipsoid har ställts in kommer den beräknade arean att vara planimetrisk.

Syntax

$area

Exempel

  • $area → 42

9.2.13.5. area

Returnerar arean för ett geometriskt polygonobjekt. Beräkningar är alltid planimetriska i det rumsliga referenssystemet (SRS) för denna geometri, och enheterna för den returnerade ytan kommer att matcha enheterna för SRS. Detta skiljer sig från de beräkningar som utförs av funktionen $area, som utför ellipsoidiska beräkningar baserat på projektets inställningar för ellipsoid och areaenheter.

Syntax

area(geometry)

Argument

  • geometry - geometriobjekt för polygoner

Exempel

  • area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8,0

9.2.13.6. azimuth

Returnerar den nordbaserade azimuten som vinkeln i radianer mätt medurs från vertikalen på punkt_a till punkt_b.

Syntax

azimuth(point_a, point_b)

Argument

  • point_a - punktgeometri

  • point_b - punktgeometri

Exempel

  • grader( azimut( make_point(25, 45), make_point(75, 100) ) ) → 42.273689

  • grader( azimut( make_point(75, 100), make_point(25,45) ) ) → 222.273689

9.2.13.7. bearing

Returnerar den nordbaserade bäringen som vinkeln i radianer mätt medurs på ellipsoiden från vertikalen på punkt_a till punkt_b.

Syntax

bearing(point_a, point_b, [source_crs], [ellipsoid])

[] markerar valfria argument

Argument

  • point_a - punktgeometri

  • point_b - punktgeometri

  • source_crs - en valfri sträng som representerar punkternas CRS-källa. Som standard används det aktuella skiktets CRS.

  • ellipsoid - en valfri sträng som representerar akronymen eller auktoriteten:ID (t.ex. ”EPSG:7030”) för den ellipsoid som bäringen ska mätas på. Som standard används det aktuella projektets ellipsoidinställning.

Exempel

  • grader( bäring( make_point(16198544, -4534850), make_point(18736872, -1877769), 'EPSG:3857', 'EPSG:7030') ) → 49,980071

  • grader( bäring( make_point(18736872, -1877769), make_point(16198544, -4534850), 'EPSG:3857', 'WGS84') ) → 219.282386

9.2.13.8. boundary

Returnerar stängningen av geometrins kombinatoriska gräns (dvs. geometrins topologiska gräns). Till exempel kommer en polygongeometri att ha en gräns som består av linjestringarna för varje ring i polygonen. Vissa geometrityper har inte någon definierad gräns, t.ex. punkter eller geometrisamlingar, och returnerar NULL.

Syntax

boundary(geometry)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ’LineString(1 1,0 0,-1 1,1 1)’

  • geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → ’MultiPoint ((1 1),(-1 1))’

../../../_images/boundary_polygon.png

Fig. 9.5 Gräns (svart streckad linje) för källans polygonlager

Ytterligare läsning: Begränsning-algoritm

9.2.13.9. bounds

Returnerar en geometri som representerar begränsningsboxen för en indatageometri. Beräkningar görs i det rumsliga referenssystemet för denna geometri.

Syntax

bounds(geometry)

Argument

  • geometri - en geometri

Exempel

  • bounds(@geometry) → avgränsningsbox för den aktuella funktionens geometri

  • geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ’Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))’

../../../_images/bounding_box.png

Fig. 9.6 Svarta linjer representerar de avgränsande boxarna för varje polygonfunktion

Ytterligare läsning: Begränsande boxar algoritm

9.2.13.10. bounds_height

Returnerar höjden på den avgränsande boxen för en geometri. Beräkningar görs i geometrins rumsliga referenssystem.

Syntax

bounds_height(geometry)

Argument

  • geometri - en geometri

Exempel

  • bounds_height(@geometry) → höjden på begränsningsrutan för den aktuella funktionens geometri

  • bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1

9.2.13.11. bounds_width

Returnerar bredden på den avgränsande boxen för en geometri. Beräkningar görs i geometrins rumsliga referenssystem.

Syntax

bounds_width(geometry)

Argument

  • geometri - en geometri

Exempel

  • bounds_width(@geometry) → bredden på begränsningsrutan för den aktuella funktionens geometri

  • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2

9.2.13.12. buffer

Returnerar en geometri som representerar alla punkter vars avstånd från denna geometri är mindre än eller lika med distance. Beräkningar görs i det rumsliga referenssystemet för denna geometri.

Syntax

buffert(geometri, avstånd, [segment=8], [cap=’round’], [join=’round’], [miter_limit=2])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • distance - buffertavstånd i lagerenheter

  • segments - antal segment som ska användas för att representera en kvartscirkel när en rund join-stil används. Ett större antal resulterar i en jämnare buffert med fler noder.

  • cap - typ av ändlock för buffert. Giltiga värden är ”rund”, ”platt” eller ”fyrkantig

  • join - fogningsstil för buffert. Giltiga värden är ”round”, ”bevel” eller ”miter”.

  • miter_limit - gräns för miteravstånd, för användning när fogningsstilen är inställd på ”miter

Exempel

  • buffer(@geometry, 10.5) → polygon av den aktuella funktionens geometri buffrad med 10,5 enheter

../../../_images/buffer1.png

Fig. 9.7 Buffert (i gult) för punkter, linjer, polygoner med positiv buffert och polygoner med negativ buffert

Ytterligare läsning: Buffra-algoritm

9.2.13.13. buffer_by_m

Skapar en buffert längs en linjegeometri där buffertdiametern varierar beroende på m-värdena i linjens hörnpunkter.

Syntax

buffert_by_m(geometri, [segment=8])

[] markerar valfria argument

Argument

  • geometry - geometri för inmatning. Måste vara en (multi)linjegeometri med m värden.

  • segments - antal segment för att approximera kvartscirkelkurvor i bufferten.

Exempel

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0,5, 4 2 0,2)'),segments:=8) → En buffert med variabel bredd som börjar med en diameter på 0,5 och slutar med en diameter på 0,2 längs linjestringens geometri.

../../../_images/variable_buffer_m.png

Fig. 9.8 Buffring av linjefunktioner med hjälp av m-värdet på topparna

Ytterligare läsning: Buffert med variabel bredd (av M-värde) algoritm

9.2.13.14. centroid

Returnerar den geometriska mittpunkten för en geometri.

Syntax

centroid(geometry)

Argument

  • geometri - en geometri

Exempel

  • centroid(@geometri) → en punktgeometri

../../../_images/centroids1.png

Fig. 9.9 De röda stjärnorna representerar centroiderna för funktionerna i inmatningslagret.

Ytterligare läsning: Centroider algoritm

9.2.13.15. close_line

Returnerar en sluten linjestring av den inmatade linjesträngen genom att lägga till den första punkten i slutet av linjen, om den inte redan är sluten. Om geometrin inte är en radsträng eller en sträng med flera rader blir resultatet NULL.

Syntax

close_line(geometry)

Argument

  • geometri - en geometri för en linjesträng

Exempel

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → ’LineString (0 0, 1 0, 1 1, 0 0)’

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → ’LineString (0 0, 1 0, 1 1, 0 0)’

9.2.13.16. closest_point

Returnerar den punkt på geometri1 som ligger närmast geometri2.

Syntax

closest_point(geometry1, geometry2)

Argument

  • geometri1 - geometri för att hitta närmaste punkt på

  • geometry2 - geometri för att hitta närmaste punkt till

Exempel

  • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → ’Point(73.0769 115.384)’

9.2.13.17. collect_geometries

Samlar en uppsättning geometrier till ett geometriobjekt med flera delar.

Lista över argument variant

Geometridelar anges som separata argument till funktionen.

Syntax

collect_geometries(geometri1, geometri2, …)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → ’MultiPoint ((1 2),(3 4),(5 6))’

Array-variant

Geometridelar specificeras som en array av geometridelar.

Syntax

collect_geometries(array)

Argument

  • array - array av geometriobjekt

Exempel

  • geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → ’MultiPoint ((1 2),(3 4),(5 6))’

Ytterligare läsning: Samla in geometrier algoritm

9.2.13.18. combine

Returnerar kombinationen av två geometrier.

Syntax

combine(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → ”MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) ) → ”LINESTRING(3 3, 4 4, 6 6, 2 1)

9.2.13.19. concave_hull

Returnerar en eventuellt konkav polygon som innehåller alla punkter i geometrin

Syntax

concave_hull(geometry, target_percent, [allow_holes=False])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • target_percent - den procentandel av området för den konvexa skålen som lösningen försöker närma sig. En target_percent på 1 ger samma resultat som det konvexa skrovet. En target_percent mellan 0 och 0,99 ger ett resultat som bör ha en mindre yta än den konvexa skalan.

  • allow_holes - valfritt argument som anger om hål ska tillåtas i utdatageometrin. Standardvärde är FALSE, inställt på TRUE för att tillåta hål i utdatageometrin.

Exempel

  • geom_to_wkt(concave_hull(geom_from_wkt('MULTILINESTRING((106 164,30 112,74 70,82 112,130 94,130 62,122 40,156 32,162 76,172 88),(132 178,134 148,128 136,96 128,132 108,150 130,170 142,174 110,156 96,158 90,158 88),(22 64,66 28,94 38,94 68,114 76,112 30,132 10,168 18,178 34,186 52,184 74,190 100,190 122,182 148,178 170,176 184,156 164,146 178,132 186,92 182,56 158,36 150,62 150,76 128,88 118))'), 0.99)) → ’Polygon ((30 112, 36 150, 92 182, 132 186, 176 184, 190 122, 190 100, 186 52, 178 34, 168 18, 132 10, 112 30, 66 28, 22 64, 30 112))’’

../../../_images/concave_hull_threshold.png

Fig. 9.10 Konkava skrov med ökande parameter för target_percent

Ytterligare läsning: convex_hull, Konkavt skrov algoritm

9.2.13.20. contains

Testar om en geometri innehåller en annan. Returnerar TRUE om och endast om inga punkter i geometri2 ligger i geometri1:s utsida och minst en punkt i geometri2:s insida ligger i geometri1:s insida.

Syntax

contains(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0,5 0,5 )' ) ) → TRUE

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

Ytterligare läsning: overlay_contains

9.2.13.21. convex_hull

Returnerar det konvexa skrovet för en geometri. Den representerar den minsta konvexa geometrin som omsluter alla geometrier i uppsättningen.

Syntax

convex_hull(geometry)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → ”POLYGON((3 3, 4 10, 4 4, 3 3))

../../../_images/convex_hull.png

Fig. 9.11 Svarta linjer identifierar det konvexa skrovet för varje funktion

Ytterligare läsning: concave_hull, Konvex skrovform algoritm

9.2.13.22. crosses

Testar om en geometri korsar en annan. Returnerar TRUE om de angivna geometrierna har vissa, men inte alla, inre punkter gemensamt.

Syntax

crosses(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • kors( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → SANT

  • kors( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

Ytterligare läsning: overlay_crosses

9.2.13.23. densify_by_count

Tar en polygon- eller linjelagergeometri och genererar en ny där geometrierna har ett större antal hörn än den ursprungliga.

Syntax

densify_by_count(geometry, vertices)

Argument

  • geometry - en geometri (accepterar (multi)linjestrings eller (multi)polygoner).

  • vertices - antal vertices som ska läggas till (per segment)

Exempel

  • geom_to_wkt(densify_by_count(geom_from_wkt('LINESTRING(1 1, 10 1)'), 3)) → LineString (1 1, 3,25 1, 5,5 1, 7,75 1, 10 1)

../../../_images/densify_geometry.png

Fig. 9.12 Röda punkter visar topparna före och efter förtätningen

Ytterligare läsning: Förtätning efter antal algoritm

9.2.13.24. densify_by_distance

Tar en polygon- eller linjelagergeometri och genererar en ny där geometrierna förtätas genom att lägga till ytterligare hörn på kanter som har ett maximalt avstånd på det angivna intervallavståndet.

Syntax

densify_by_distance(geometry, distance)

Argument

  • geometry - en geometri (accepterar (multi)linjestrings eller (multi)polygoner).

  • distance - maximalt intervallavstånd mellan topparna i utdatageometrin

Exempel

  • geom_to_wkt(densify_by_distance(geom_from_wkt('LINESTRING(1 1, 10 1)'), 4)) → LineString (1 1, 4 1, 7 1, 10 1)

../../../_images/densify_geometry_interval.png

Fig. 9.13 Förtäta geometrin vid ett givet intervall

Ytterligare läsning: Förtätning med intervall algoritm

9.2.13.25. difference

Returnerar en geometri som representerar den del av geometri1 som inte korsar geometri2.

Syntax

difference(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → ”LINESTRING(4 4, 5 5)

../../../_images/difference.png

Fig. 9.14 Skillnadsoperation mellan ett inmatningslager med två funktioner ”a” och ett överlagringslager med en funktion ”b” (vänster) - resulterar i ett nytt lager med de modifierade funktionerna från ”a” (höger)

Ytterligare läsning: Skillnad algoritm

9.2.13.26. disjoint

Testar om geometrier inte korsar varandra rumsligt. Returnerar TRUE om geometrierna inte delar något utrymme tillsammans.

Syntax

disjoint(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → FALSE

Ytterligare läsning: overlay_disjoint

9.2.13.27. distance

Returnerar det minsta avståndet (baserat på rumslig referens) mellan två geometrier i projicerade enheter.

Syntax

distance(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • avstånd( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4

9.2.13.28. distance_to_vertex

Returnerar avståndet längs geometrin till en angiven vertex.

Syntax

distance_to_vertex(geometry, vertex)

Argument

  • geometri - en geometri med linjestring

  • vertex - vertexindex, med början från 0; om värdet är negativt kommer det valda vertexindexet att vara dess totala antal minus det absoluta värdet

Exempel

  • avstånd_till_vertex(geometri:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0

9.2.13.29. end_point

Returnerar den sista noden från en geometri.

Syntax

end_point(geometry)

Argument

  • geometry - geometriobjekt

Exempel

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ”Punkt (0 2)

../../../_images/end_point.png

Fig. 9.15 Slutpunkt för en linjefunktion

Ytterligare läsning: start_point, Extrahera specifika toppar algoritm

9.2.13.30. exif_geotag

Skapar en punktgeometri från exif-geotaggarna i en bildfil.

Syntax

exif_geotag(path)

Argument

  • path - En sökväg till en bildfil eller ett värde för ett kartskikt. Om ett värde för ett kartlager anges kommer filkällan för lagret att användas.

Exempel

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → ”Punkt (2 4)

9.2.13.31. extend

Förlänger början och slutet av en linjestringgeometri med en angiven mängd. Linjer förlängs med hjälp av bäringen för det första och sista segmentet i linjen. För en multilinestring förlängs alla delar. Avstånden är i det rumsliga referenssystemet för denna geometri.

Syntax

extend(geometry, start_distance, end_distance)

Argument

  • geometri - en (multi)linjestringsgeometri

  • start_distance - avstånd för att förlänga linjens start

  • end_distance - avstånd för att förlänga linjens slut.

Exempel

  • geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → ’LineString (-1 0, 1 0, 1 3)’

  • geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → ’MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))’

../../../_images/extend_lines.png

Fig. 9.16 De röda strecken representerar den initiala och slutliga förlängningen av det ursprungliga lagret

Ytterligare läsning: Förlänga linjer algoritm

9.2.13.32. exterior_ring

Returnerar en radsträng som representerar den yttre ringen i en polygongeometri. Om geometrin inte är en polygon kommer resultatet att vara NULL.

Syntax

exterior_ring(geometry)

Argument

  • geometri - en polygongeometri

Exempel

  • geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0,1 0,1, 0,1 0,2, 0,2 0,2, 0,2, 0,1, 0,1 0,1))'))) → ’LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)’

../../../_images/exterior_ring.png

Fig. 9.17 Den streckade linjen representerar polygonens yttre ring

9.2.13.33. extrude

Returnerar en extruderad version av den inmatade (Multi-)Curve- eller (Multi-)Linestring-geometrin med en förlängning som anges av x och y.

Syntax

extrude(geometry, x, y)

Argument

  • geometri - en kurva eller en linjestrings geometri

  • x - x-förlängning, numeriskt värde

  • y - y-förlängning, numeriskt värde

Exempel

  • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → ’Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))’

  • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → ’MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))’’

../../../_images/extrude.png

Fig. 9.18 Generera en polygon genom att extrudera en linje med förskjutning i x- och y-riktningarna

9.2.13.34. flip_coordinates

Returnerar en kopia av geometrin med x- och y-koordinaterna ombytta. Användbar för att reparera geometrier som har fått sina latitud- och longitudvärden omkastade.

Syntax

flip_coordinates(geometry)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → ’Punkt (2 1)’

  • geom_to_wkt(flip_coordinates(geom_from_wkt('LineString(0 2, 1 0, 1 6)'))) → ’LineString (2 0, 0 1, 6 1)’

Ytterligare läsning: Byt X- och Y-koordinater algoritm

9.2.13.35. force_polygon_ccw

Tvingar en geometri att följa konventionen att yttre ringar är motsols och inre ringar är medsols.

Syntax

force_polygon_ccw(geometry)

Argument

  • geometri - en geometri. Alla icke-polygongeometrier returneras oförändrade.

Exempel

  • geom_to_wkt(force_polygon_ccw(geometry:=geom_from_wkt('Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'))) → ’Polygon ((-1 -1, 4 0, 4 2, 0 2, -1 -1))’

Ytterligare läsning: force_polygon_cw, force_rhr

9.2.13.36. force_polygon_cw

Tvingar en geometri att följa konventionen där yttre ringar är medurs och inre ringar är moturs.

Syntax

force_polygon_cw(geometry)

Argument

  • geometri - en geometri. Alla icke-polygongeometrier returneras oförändrade.

Exempel

  • geom_to_wkt(force_polygon_cw(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → ’Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))’

Ytterligare läsning: :ref:expression_function_GeometryGroup_force_polygon_ccw`, :ref:``expression_function_GeometryGroup_force_rhr

9.2.13.37. force_rhr

Tvingar en geometri att följa högerhandsregeln, enligt vilken det område som avgränsas av en polygon ligger till höger om gränsen. I synnerhet är den yttre ringen orienterad i medurs riktning och de inre ringarna i moturs riktning. På grund av inkonsekvensen i definitionen av Right-Hand-Rule i vissa sammanhang rekommenderas att man istället använder den explicita funktionen force_polygon_cw.

Syntax

force_rhr(geometry)

Argument

  • geometri - en geometri. Alla icke-polygongeometrier returneras oförändrade.

Exempel

  • geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → ’Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))’

Ytterligare läsning: Kraft högerhands-regel-algoritm, force_polygon_ccw, force_polygon_cw

9.2.13.38. geom_from_gml

Returnerar en geometri från en GML-representation av geometri.

Syntax

geom_from_gml(gml)

Argument

  • gml - GML-representation av en geometri som en sträng

Exempel

  • geom_from_gml(')<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → ett linjegeometriobjekt

9.2.13.39. geom_from_wkb

Returnerar en geometri som skapats från en WKB-representation (Well-Known Binary).

Syntax

geom_from_wkb(binary)

Argument

  • binary - WKB-representation (Well-Known Binary) av en geometri (som en binär blob)

Exempel

  • geom_från_wkb( geom_till_wkb( make_point(4,5) ) ) → ett punktgeometriobjekt

9.2.13.40. geom_from_wkt

Returnerar en geometri som skapats från en WKT-representation (Well-Known Text).

Syntax

geom_from_wkt(text)

Argument

  • text - WKT-representation (Well-Known Text) av en geometri

Exempel

  • geom_from_wkt( 'POINT(4 5)' ) → ett geometriobjekt

9.2.13.41. geom_to_wkb

Returnerar WKB-representationen (Well-Known Binary) av en geometri

Syntax

geom_to_wkb(geometry)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkb( @geometry ) → binär blob som innehåller ett geometriobjekt

9.2.13.42. geom_to_wkt

Returnerar WKT-representationen (Well-Known Text) av geometrin utan SRID-metadata.

Syntax

geom_to_wkt(geometri, [precision=8])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • precision - numerisk precision

Exempel

  • geom_to_wkt( make_point(6, 50) ) → ’POINT(6 50)’

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ’POINT(0 0.66666667)’

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → ’POINT(0 0,67)’

9.2.13.43. $geometry

Returnerar geometrin för den aktuella funktionen. Kan användas för bearbetning med andra funktioner. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsvariabeln @geometry istället.

Syntax

$geometry

Exempel

  • geom_to_wkt( $geometri ) → ’POINT(6 50)’

9.2.13.44. geometry

Returnerar en objekts geometri.

Syntax

geometry(feature)

Argument

  • feature - ett funktionsobjekt

Exempel

  • geometry( @feature ) → geometrin för den aktuella funktionen. Föredrar att använda @geometry.

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → geometrin i WKT för objektet med id 1 i skiktet ”streets”, t.ex. ”POINT(6 50)

  • intersects( @geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → TRUE om den aktuella funktionen rumsligt skär den namngivna funktionen ”Main St.” i skiktet ”streets

9.2.13.45. geometry_n

Returnerar en specifik geometri från en geometrisamling, eller NULL om indatageometrin inte är en samling. Returnerar även en del från en geometri med flera delar.

Syntax

geometry_n(geometry, index)

Argument

  • geometry - geometrisamling

  • index - index för den geometri som ska returneras, där 1 är den första geometrin i samlingen

Exempel

  • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → ’Punkt (1 0)’

9.2.13.46. geometry_type

Returnerar ett strängvärde som beskriver typen av geometri (punkt, linje eller polygon)

Syntax

geometry_type(geometry)

Argument

  • geometri - en geometri

Exempel

  • geometry_type( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → ’Linje’

  • geometry_type( geom_from_wkt( 'MULTILINESTRING((2 5, 3 6, 4 8), (1 1, 0 0))') ) → ’Linje’

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → ’Punkt’

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → ’Polygon’

9.2.13.47. hausdorff_distance

Returnerar Hausdorff-avståndet mellan två geometrier. Detta är i princip ett mått på hur lika eller olika 2 geometrier är, där ett lägre avstånd indikerar mer likartade geometrier.

Funktionen kan utföras med ett valfritt densify-fraktionsargument. Om inget anges används en approximation av standard Hausdorff-avstånd. Denna approximation är exakt eller tillräckligt nära för en stor undergrupp av användbara fall. Exempel på dessa är:

  • beräknar avståndet mellan Linestrings som är ungefär parallella med varandra och ungefär lika långa. Detta inträffar i matchande linjära nätverk.

  • Testar likheten mellan geometrierna.

Om den approximativa standardmetoden som tillhandahålls av denna metod är otillräcklig, ange det valfria argumentet densify fraction. Om du anger detta argument utförs en segmentförtätning innan det diskreta Hausdorff-avståndet beräknas. Parametern anger den fraktion som varje segment ska förtätas med. Varje segment delas upp i ett antal lika långa undersegment, vars fraktion av den totala längden är närmast den angivna fraktionen. Om parametern för densify fraction minskas kommer det returnerade avståndet att närma sig det verkliga Hausdorff-avståndet för geometrierna.

Syntax

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] markerar valfria argument

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

  • densify_fraction - mängd förtätningsfraktion

Exempel

  • hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 2

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0,5) → 70,0

9.2.13.48. inclination

Returnerar lutningen mätt från zenit (0) till nadir (180) på punkt_a till punkt_b.

Syntax

inclination(point_a, point_b)

Argument

  • point_a - punktgeometri

  • point_b - punktgeometri

Exempel

  • inklination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0,0

  • inklination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90,0

  • inklination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90,0

  • inklination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180,0

9.2.13.49. interior_ring_n

Returnerar en specifik inre ring från en polygongeometri, eller NULL om geometrin inte är en polygon.

Syntax

interior_ring_n(geometry, index)

Argument

  • geometri - polygongeometri

  • index - index för den interiör som ska returneras, där 1 är den första interiörringen

Exempel

  • geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0,1 -0,1, 0,4 0, 0,4 0,2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → ’LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))’

9.2.13.50. intersection

Returnerar en geometri som representerar den delade delen av två geometrier.

Syntax

intersection(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • geom_to_wkt( intersektion( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → ”LINESTRING(3 3, 4 4)

  • geom_to_wkt( intersektion( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → ”POINT(3.5 3.5)

Ytterligare läsning: Korsningar algoritm

9.2.13.51. intersects

Testar om en geometri skär en annan. Returnerar TRUE om geometrierna korsar varandra rumsligt (delar någon del av utrymmet) och false om de inte gör det.

Syntax

intersects(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • korsar( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → SANT

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → FALSE

Ytterligare läsning: overlay_intersects

9.2.13.52. intersects_bbox

Testar om en geometris avgränsningsbox överlappar en annan geometris avgränsningsbox. Returnerar TRUE om geometrierna rumsligt korsar den definierade begränsningsboxen och false om de inte gör det.

Syntax

intersects_bbox(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → FALSE

9.2.13.53. is_closed

Returnerar TRUE om en linjestring är sluten (start- och slutpunkter sammanfaller), eller false om en linjestring inte är sluten. Om geometrin inte är en linjestring blir resultatet NULL.

Syntax

is_closed(geometry)

Argument

  • geometri - en geometri för en linjesträng

Exempel

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → TRUE

9.2.13.54. is_empty

Returnerar TRUE om en geometri är tom (utan koordinater), false om geometrin inte är tom och NULL om det inte finns någon geometri. Se även is_empty_or_null.

Syntax

is_empty(geometry)

Argument

  • geometri - en geometri

Exempel

  • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_empty(geom_from_wkt('LINESTRING EMPTY')) → TRUE

  • is_empty(geom_from_wkt('POINT(7 4)')) → FALSE

  • is_empty(geom_from_wkt('POINT EMPTY')) → TRUE

Ytterligare läsning: is_empty_or_null

9.2.13.55. is_empty_or_null

Returnerar TRUE om en geometri är NULL eller tom (utan koordinater) eller false annars. Denna funktion är som uttrycket @geometri ÄR NULL eller is_empty(@geometri)’

Syntax

is_empty_or_null(geometry)

Argument

  • geometri - en geometri

Exempel

  • is_empty_or_null(NULL) → TRUE

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → TRUE

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → FALSE

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → TRUE

Ytterligare läsning: is_empty, NULL

9.2.13.56. is_multipart

Returnerar TRUE om geometrin är av typen Multi.

Syntax

is_multipart(geometry)

Argument

  • geometri - en geometri

Exempel

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → TRUE

  • is_multipart(geom_from_wkt('POINT (0 0)')) → FALSE

9.2.13.57. is_valid

Returnerar TRUE om en geometri är giltig; om den är välformad i 2D enligt OGC:s regler.

Syntax

is_valid(geometry)

Argument

  • geometri - en geometri

Exempel

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → TRUE

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → FALSE

Ytterligare läsning: make_valid, Kontrollera giltighet algoritm

9.2.13.58. $length

Returnerar längden på en linjestring. Om du behöver längden på en polygons kant använder du $perimeter istället. Den längd som beräknas med den här funktionen respekterar både ellipsoidinställningen och inställningarna för avståndsenheter i det aktuella projektet. Om till exempel en ellipsoid har ställts in för projektet kommer den beräknade längden att vara ellipsoidisk, och om ingen ellipsoid har ställts in kommer den beräknade längden att vara planimetrisk.

Syntax

$length

Exempel

  • $length → 42.4711

9.2.13.59. length

Returnerar antalet tecken i en sträng eller längden på en geometrisk linjestring.

String variant

Returnerar antalet tecken i en sträng.

Syntax

length(string)

Argument

  • sträng - sträng att räkna längden på

Exempel

  • längd('hello') → 5

Geometrivariant

Beräknar längden på ett geometriskt linjeobjekt. Beräkningar är alltid planimetriska i det rumsliga referenssystemet (SRS) för denna geometri, och enheterna för den returnerade längden kommer att matcha enheterna för SRS. Detta skiljer sig från de beräkningar som utförs av funktionen $length, som utför ellipsoidiska beräkningar baserat på projektets inställningar för ellipsoid och avståndsenheter.

Syntax

length(geometry)

Argument

  • geometry - objekt för linjegeometri

Exempel

  • längd(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4,0

För vidare läsning: expression_function_GeometryGroup_straight_distance_2d`

9.2.13.60. length3D

Beräknar 3D-längden för ett geometriskt linjeobjekt. Om geometrin inte är ett 3D-linjeobjekt returneras dess 2D-längd. Beräkningarna är alltid planimetriska i det rumsliga referenssystemet (SRS) för denna geometri, och enheterna för den returnerade längden kommer att överensstämma med enheterna för SRS. Detta skiljer sig från de beräkningar som utförs av funktionen $length, som utför ellipsoidiska beräkningar baserat på projektets inställningar för ellipsoid och avståndsenheter.

Syntax

length3D(geometry)

Argument

  • geometry - objekt för linjegeometri

Exempel

  • längd3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5,0

9.2.13.61. line_interpolate_angle

Returnerar vinkeln som är parallell med geometrin på ett angivet avstånd längs en linjestringgeometri. Vinklarna anges i grader medurs från norr.

Syntax

line_interpolate_angle(geometry, distance)

Argument

  • geometri - en geometri med linjestring

  • distance - avstånd längs linjen för att interpolera vinkeln vid

Exempel

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90,0

9.2.13.62. line_interpolate_point

Returnerar den punkt som interpolerats med ett angivet avstånd längs en linjestringsgeometri.

Syntax

line_interpolate_point(geometry, distance)

Argument

  • geometri - en geometri med linjestring

  • distance - avstånd längs linjen som ska interpoleras

Exempel

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 8 0)'), distance:=5)) → ’Punkt (5 0)’

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 1, 2 0)'), distance:=2,1)) → ’Punkt (1,48492424 0,51507576)’

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 0)'), distance:=2)) → NULL

../../../_images/interpolated_point.png

Fig. 9.19 Interpolerad punkt 500 meter från linjens början

Ytterligare läsning: Interpolera punkt på linje-algoritm

9.2.13.63. line_interpolate_point_by_m

Returnerar den punkt som interpoleras av ett matchande M-värde längs en linjestringsgeometri.

Syntax

line_interpolate_point_by_m(geometry, m, [use_3d_distance=false])

[] markerar valfria argument

Argument

  • geometri - en geometri med linjestring

  • m - ett M-värde

  • use_3d_distance - styr om 2D- eller 3D-avstånd mellan hörnpunkter ska användas vid interpolering (detta alternativ beaktas endast för linjer med z-värden)

Exempel

  • geom_to_wkt(line_interpolate_point_by_m(geom_from_wkt('LineStringM(0 0 0, 10 10 10)'), m:=5)) → ’Punkt (5 5)’

9.2.13.64. line_locate_m

Returnerar avståndet längs en linjestring som motsvarar det första matchande interpolerade M-värdet.

Syntax

line_locate_m(geometry, m, [use_3d_distance=false])

[] markerar valfria argument

Argument

  • geometri - en geometri med linjestring

  • m - ett M-värde

  • use_3d_distance - styr om 2D- eller 3D-avstånd mellan hörnpunkter ska användas vid interpolering (detta alternativ beaktas endast för linjer med z-värden)

Exempel

  • line_locate_m(geometry:=geom_from_wkt('LineStringM(0 0 0, 10 10 10)'),m:=5) → 7,07106

9.2.13.65. line_locate_point

Returnerar avståndet längs en linjestring som motsvarar den närmaste positionen linjestringen kommer till en angiven punktgeometri.

Syntax

line_locate_point(geometry, point)

Argument

  • geometri - en geometri med linjestring

  • point - punktgeometri för att lokalisera närmaste position på linjesträckan till

Exempel

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

9.2.13.66. line_merge

Returnerar en LineString- eller MultiLineString-geometri, där alla anslutna LineStrings från indatageometrin har sammanfogats till en enda linjestring. Denna funktion returnerar NULL om en geometri som inte är en LineString/MultiLineString skickas till den.

Syntax

line_merge(geometry)

Argument

  • geometri - en LineString/MultiLineString-geometri

Exempel

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → ’LineString(0 0,1 1,2 2)’

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → ’MultiLineString((0 0, 1 1),(11 1, 21 2))’

9.2.13.67. line_substring

Returnerar den del av en linjes (eller kurvas) geometri som ligger mellan de angivna start- och slutavstånden (mätt från linjens början). Z- och M-värden interpoleras linjärt från befintliga värden.

Syntax

line_substring(geometry, start_distance, end_distance)

Argument

  • geometri - en geometri för en linjestring eller kurva

  • start_distance - avstånd till början av understrängen

  • end_distance - avstånd till slutet av delsträngen

Exempel

  • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → ’LineString (2 0,6 0)’

../../../_images/substring.png

Fig. 9.20 Substringslinje med startavståndet inställt på 0 meter och slutavståndet på 250 meter.

Ytterligare läsning: Linje delsträng algoritm

9.2.13.68. m

Returnerar m-värdet (mått) för en punktgeometri.

Syntax

m(geometry)

Argument

  • geometri - en punktgeometri

Exempel

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

9.2.13.69. m_at

Hämtar en m-koordinat för geometrin, eller NULL om geometrin inte har något m-värde.

Syntax

m_at(geometry, vertex)

Argument

  • geometry - geometriobjekt

  • vertex - index för geometrins vertex (index börjar på 0; negativa värden gäller från det sista indexet, med början på -1)

Exempel

  • m_at(geom_from_wkt('LineStringZM(0 0 0 0, 10 10 0 0 5, 10 10 0 0)'), 1) → 5

9.2.13.70. m_max

Returnerar det maximala m-värdet (mått) för en geometri.

Syntax

m_max(geometry)

Argument

  • geometri - en geometri som innehåller m värden

Exempel

  • m_max( make_point_m( 0,0,1 ) ) → 1

  • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 2

9.2.13.71. m_min

Returnerar det minsta m-värdet (mått) för en geometri.

Syntax

m_min(geometry)

Argument

  • geometri - en geometri som innehåller m värden

Exempel

  • m_min( make_point_m( 0,0,1 ) ) → 1

  • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 0

9.2.13.72. main_angle

Returnerar vinkeln på den långa axeln (medurs, i grader från norr) för den orienterade minimala begränsande rektangeln, som helt täcker geometrin.

Syntax

main_angle(geometry)

Argument

  • geometri - en geometri

Exempel

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38,66

9.2.13.73. make_circle

Skapar en cirkulär polygon.

Syntax

make_circle(centrum, radie, [segment=36])

[] markerar valfria argument

Argument

  • center - cirkelns mittpunkt

  • radius - cirkelns radie

  • segments - valfritt argument för polygonsegmentering. Som standard är detta värde 36

Exempel

  • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → ’Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))’

  • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → ’PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))’

  • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → ’PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))’

9.2.13.74. make_ellipse

Skapar en elliptisk polygon.

Syntax

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segment=36])

[] markerar valfria argument

Argument

  • center - ellipsens mittpunkt

  • semi_major_axis - ellipsens semi-major-axel

  • semi_minor_axis - ellipsens halvminoraxel

  • azimut - ellipsens orientering

  • segments - valfritt argument för polygonsegmentering. Som standard är detta värde 36

Exempel

  • geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → ’Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))’

  • geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → ’PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))’

  • geom_to_wkt(make_ellipse(make_point(10,10,5,30), 5, 2, 90, 4)) → ’PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))’

9.2.13.75. make_line

Skapar en linjegeometri från en serie punktgeometrier.

Lista över argument variant

Linjepunkterna anges som separata argument till funktionen.

Syntax

make_line(punkt1, punkt2, …)

Argument

  • point - en punktgeometri (eller en array av punkter)

Exempel

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → ’LineString (2 4, 3 5)’

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5),make_point(9,7))) → ’LineString (2 4, 3 5, 9 7)’

Array-variant

Linjens hörnpunkter anges som en matris av punkter.

Syntax

make_line(array)

Argument

  • array - matris med punkter

Exempel

  • geom_to_wkt(make_line(array(make_point(2,4),make_point(3,5),make_point(9,7)))) → ’LineString (2 4, 3 5, 9 7)’

9.2.13.76. make_point

Skapar en punktgeometri från ett x- och y-värde (och valfritt z- och m-värde).

Syntax

make_point(x, y, [z], [m])

[] markerar valfria argument

Argument

  • x - x-koordinat för punkt

  • y - punktens y-koordinat

  • z - valfri z-koordinat för punkten

  • m - valfritt m-värde för punkten

Exempel

  • geom_to_wkt(make_point(2,4)) → ’Punkt (2 4)’

  • geom_to_wkt(make_point(2,4,6)) → ’PointZ (2 4 6)’

  • geom_to_wkt(make_point(2,4,6,8)) → ’PointZM (2 4 6 8)’

9.2.13.77. make_point_m

Skapar en punktgeometri från en x-, y-koordinat och ett m-värde.

Syntax

make_point_m(x, y, m)

Argument

  • x - x-koordinat för punkt

  • y - punktens y-koordinat

  • m - m-värde för punkt

Exempel

  • geom_to_wkt(make_point_m(2,4,6)) → ’PointM (2 4 6)’

9.2.13.78. make_polygon

Skapar en polygongeometri från en yttre ring och en valfri serie geometrier för inre ringar.

Syntax

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] markerar valfria argument

Argument

  • outerRing - geometri med sluten linje för polygonens yttre ring

  • innerRing - valfri geometri med sluten linje för innerringen

Exempel

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → ’Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))’

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0,1 0,1, 0,1 0,2, 0,2 0,2, 0,2 0,1, 0,1 0,1 )'),geom_from_wkt('LINESTRING( 0.8 0,8, 0,8 0,9, 0,9 0,9, 0,9 0,8, 0,8 0,8 )'))) → ’Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0,1 0,1, 0,1 0,2, 0,2 0,2, 0,2 0,1, 0,1 0,1),(0,8 0,8, 0,8 0,9, 0,9 0,9, 0,9 0,8, 0,8 0,8))’

9.2.13.79. make_rectangle_3points

Skapar en rektangel från 3 punkter.

Syntax

make_rectangle_3points(point1, point2, point3, [option=0])

[] markerar valfria argument

Argument

  • point1 - Första punkten.

  • point2 - Andra punkten.

  • point3 - Tredje punkten.

  • option - Ett valfritt argument för att konstruera rektangeln. Som standard är detta värde 0. Värdet kan vara 0 (avstånd) eller 1 (projicerad). Alternativ avstånd: Andra avståndet är lika med avståndet mellan 2:a och 3:e punkten. Alternativ projicerad: Andra avståndet är lika med avståndet för den vinkelräta projektionen av den 3:e punkten på segmentet eller dess förlängning.

Exempel

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 5), 0)) → ’Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))’

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 3), 1)) → ’Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))’

9.2.13.80. make_regular_polygon

Skapar en regelbunden polygon.

Syntax

make_regular_polygon(centrum, radie, antal_sidor, [cirkel=0])

[] markerar valfria argument

Argument

  • center - centrum av den regelbundna polygonen

  • radius - andra punkten. Den första om den reguljära polygonen är inskriven. Mittpunkten på den första sidan om den regelbundna polygonen är omskriven.

  • number_sides - Antal sidor/kanter på den regelbundna polygonen

  • circle - Valfritt argument för att konstruera den regelbundna polygonen. Som standard är detta värde 0. Värdet kan vara 0 (inskriven) eller 1 (omskriven)

Exempel

  • geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → ’Polygon ((0 5, 4,76 1,55, 2,94 -4,05, -2,94 -4,05, -4,76 1,55, 0 5))’

  • geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → ’Polygon ((0 5, 4,76 1,55, 2,94 -4,05, -2,94 -4,05, -4,76 1,55, 0 5))’

9.2.13.81. make_square

Skapar en kvadrat från en diagonal.

Syntax

make_square(point1, point2)

Argument

  • point1 - Första punkten på diagonalen

  • point2 - diagonalens sista punkt

Exempel

  • geom_to_wkt(make_square( make_point(0,0), make_point(5,5))) → ’Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))’

  • geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → ’Polygon ((5 0, 2,5 2,5, 5 5, 7,5 2,5, 5 0))’

9.2.13.82. make_triangle

Skapar en triangelpolygon.

Syntax

make_triangle(point1, point2, point3)

Argument

  • punkt1 - triangelns första punkt

  • punkt2 - triangelns andra punkt

  • punkt3 - triangelns tredje punkt

Exempel

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → ’Triangel ((0 0, 5 5, 0 10, 0 0))’

  • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → ’LineString (0 0, 5 5, 0 10, 0 0)’

9.2.13.83. make_valid

Returnerar en giltig geometri eller en tom geometri om geometrin inte kunde göras giltig.

Syntax

make_valid(geometry, [method=structure], [keep_collapsed=false])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • method - reparationsalgoritm. Kan vara antingen ”structure” eller ”linework”. Alternativet ”linework” kombinerar alla ringar till en uppsättning nodade linjer och extraherar sedan giltiga polygoner från detta linjesystem. Metoden ”structure” gör först alla ringar giltiga och slår sedan samman skal och subtraherar hål från skal för att generera ett giltigt resultat. Antar att hål och skal är korrekt kategoriserade.

  • keep_collapsed - om värdet är true behålls komponenter som har kollapsat till en lägre dimensionalitet. Till exempel en ring som kollapsar till en linje, eller en linje som kollapsar till en punkt.

Exempel

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'))) → ’Polygon ((3 2, 5 8, 4 1, 3 2))’

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'), 'linework')) → ’GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))’

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8))'), method:='linework')) → ’Polygon ((3 2, 4 1, 5 8, 3 2))’

  • make_valid(geom_from_wkt('LINESTRING(0 0)')) → En tom geometri

Ytterligare läsning: is_valid, Fixa geometrier algoritm

9.2.13.84. minimal_circle

Returnerar den minimala omslutande cirkeln för en geometri. Den representerar den minsta cirkeln som omsluter alla geometrier i uppsättningen.

Syntax

minimal_cirkel(geometri, [segment=36])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • segments - valfritt argument för polygonsegmentering. Som standard är detta värde 36

Exempel

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → ’Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))’

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → ’Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))’

../../../_images/minimum_enclosing_circles.png

Fig. 9.21 Minimal omslutande cirkel för varje funktion

Ytterligare läsning: Minsta omslutande cirklar algoritm

9.2.13.85. nodes_to_points

Returnerar en multipunktsgeometri som består av varje nod i indatageometrin.

Syntax

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] markerar valfria argument

Argument

  • geometry - geometriobjekt

  • ignore_closing_nodes - valfritt argument som anger om duplicerade noder som stänger ringar av linjer eller polygoner ska inkluderas. Standardvärdet är false, inställt på true för att undvika att inkludera dessa duplicerade noder i utdatasamlingen.

Exempel

  • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ’MultiPoint ((0 0),(1 1),(2 2))’’

  • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → ’MultiPoint ((-1 -1),(4 0),(4 2),(0 2))’’

../../../_images/extract_nodes.png

Fig. 9.22 Flerpunktsegenskaper extraherade från toppar

Ytterligare läsning: Extrahera toppar algoritm

9.2.13.86. num_geometries

Returnerar antalet geometrier i en geometrisamling, eller antalet delar i en geometri med flera delar. Funktionen returnerar NULL om indatageometrin inte är en samling.

Syntax

num_geometries(geometry)

Argument

  • geometry - geometrisamling eller geometri med flera delar

Exempel

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

  • num_geometries(geom_from_wkt('MULTIPOINT((0 1), (0 0), (1 0))')) → 3

9.2.13.87. num_interior_rings

Returnerar antalet inre ringar i en polygon eller geometrisamling, eller NULL om indatageometrin inte är en polygon eller samling.

Syntax

num_interior_rings(geometry)

Argument

  • geometri - inmatningsgeometri

Exempel

  • num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0,1 -0,1, 0,4 0, 0,4 0,2, 0 0,2, -0,1 -0,1))')) → 1

9.2.13.88. num_points

Returnerar antalet hörn i en geometri.

Syntax

num_points(geometry)

Argument

  • geometri - en geometri

Exempel

  • num_points(@geometry) → antal hörn i den aktuella funktionens geometri

9.2.13.89. num_rings

Returnerar antalet ringar (inklusive yttre ringar) i en polygon eller geometrisamling, eller NULL om indatageometrin inte är en polygon eller samling.

Syntax

num_rings(geometry)

Argument

  • geometri - inmatningsgeometri

Exempel

  • num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0,1 -0,1, 0,4 0, 0,4 0,2, 0 0,2, -0,1 -0,1)')) → 2

9.2.13.90. offset_curve

Returnerar en geometri som bildas genom att en linjestringgeometri förskjuts åt sidan. Avstånden är i det rumsliga referenssystemet för denna geometri.

Syntax

offset_curve(geometri, avstånd, [segment=8], [join=1], [miter_limit=2.0])

[] markerar valfria argument

Argument

  • geometri - en (multi)linjestringsgeometri

  • distance - offsetavstånd. Positiva värden buffras till vänster om raderna, negativa värden till höger

  • segments - antal segment som ska användas för att representera en kvartscirkel när en rund anslutningsstil används. Ett större antal resulterar i en jämnare linje med fler noder.

  • join - fogningsstil för hörn, där 1 = rund, 2 = gering och 3 = fasning

  • miter_limit - begränsning av mitterförhållandet som används för mycket skarpa hörn (endast vid användning av mitterförband)

Exempel

  • offset_curve(@geometry, 10.5) → linjen förskjuten åt vänster med 10,5 enheter

  • offset_curve(@geometry, -10.5) → linjen förskjuten åt höger med 10,5 enheter

  • offset_curve(@geometry, 10.5, segments:=16, join:=1) → linjen förskjuts åt vänster med 10,5 enheter, med fler segment för att få en jämnare kurva

  • offset_curve(@geometry, 10.5, join:=3) → linje förskjuten åt vänster med 10,5 enheter, med hjälp av en avfasad skarv

../../../_images/offset_lines.png

Fig. 9.23 I blått källskiktet, i rött det förskjutna skiktet

Ytterligare läsning: Offset-linjer algoritm

9.2.13.91. order_parts

Ordnar delarna i en MultiGeometry efter ett givet kriterium

Syntax

order_parts(geometry, orderby, [ascending=true])

[] markerar valfria argument

Argument

  • geometri - en geometri av flera typer

  • orderby - en uttryckssträng som definierar ordningskriterierna

  • ascending - boolean, True för stigande, False för fallande

Exempel

  • geom_to_wkt(order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area(@geometry)', False)) → ’MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1))))’

  • geom_to_wkt(order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True)) → ’LineString(1 2, 3 2, 4 3)’

9.2.13.92. oriented_bbox

Returnerar en geometri som representerar den minimala orienterade begränsningsboxen för en indatageometri.

Syntax

oriented_bbox(geometry)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → ”Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))

../../../_images/oriented_minimum_bounding_box.png

Fig. 9.24 Orienterad minsta avgränsande box

Ytterligare läsning: qgisorienteradminimumboundingbox-algoritm

9.2.13.93. overlaps

Testar om en geometri överlappar en annan. Returnerar TRUE om geometrierna delar utrymme, har samma dimension, men inte är helt inneslutna av varandra.

Syntax

overlaps(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

9.2.13.94. overlay_contains

Returnerar om den aktuella funktionen rumsligt innehåller minst en funktion från ett målskikt, eller en matris med uttrycksbaserade resultat för funktionerna i målskiktet som ingår i den aktuella funktionen.

Läs mer om det underliggande GEOS ”Contains”-predikatet, som beskrivs i PostGIS ST_Contains-funktion.

Syntax

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_contains('regions') → TRUE om den aktuella funktionen rumsligt innehåller en region

  • overlay_contains('regions', filter:= population > 10000) → TRUE om den aktuella funktionen rumsligt innehåller en region med en population som är större än 10000

  • overlay_contains('regions', name) → en matris med namn för de regioner som ingår i den aktuella funktionen

  • array_to_string(overlay_contains('regions', name)) → en sträng som en kommaseparerad lista med namn för de regioner som ingår i den aktuella funktionen

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som ingår i den aktuella funktionen och med en population större än 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som ingår i den aktuella funktionen

Ytterligare läsning: contains, array manipulation, Välj efter plats algoritm

9.2.13.95. overlay_crosses

Returnerar om den aktuella funktionen rumsligt korsar minst en funktion från ett målskikt, eller en uppsättning uttrycksbaserade resultat för de funktioner i målskiktet som korsas av den aktuella funktionen.

Läs mer om det underliggande GEOS ”Crosses”-predikatet, som beskrivs i PostGIS ST_Crosses-funktionen.

Syntax

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_crosses('regions') → TRUE om den aktuella funktionen rumsligt korsar en region

  • overlay_crosses('regions', filter:= population > 10000) → TRUE om den aktuella funktionen rumsligt korsar en region med en population som är större än 10000

  • overlay_crosses('regions', name) → en matris med namn för de regioner som korsas av den aktuella funktionen

  • array_to_string(overlay_crosses('regions', name)) → en sträng som en kommaseparerad lista med namn för de regioner som korsas av den aktuella funktionen

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som korsas av den aktuella funktionen och med en befolkning som är större än 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som korsas av den aktuella funktionen

Ytterligare läsning: crosses, array manipulation, Välj efter plats algoritm

9.2.13.96. overlay_disjoint

Returnerar om den aktuella funktionen är rumsligt disjunkt från alla funktioner i ett målskikt, eller en matris med uttrycksbaserade resultat för de funktioner i målskiktet som är disjunkta från den aktuella funktionen.

Läs mer om det underliggande GEOS ”Disjoint”-predikatet, som beskrivs i PostGIS ST_Disjoint function.

Syntax

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_disjoint('regions') → TRUE om den aktuella funktionen är rumsligt åtskild från alla regioner

  • overlay_disjoint('regions', filter:= population > 10000) → TRUE om den aktuella funktionen är rumsligt åtskild från alla regioner med en population som är större än 10000

  • overlay_disjoint('regions', name) → en matris med namn för de regioner som är rumsligt åtskilda från den aktuella funktionen

  • array_to_string(overlay_disjoint('regions', name)) → en sträng som en kommaseparerad lista med namn för de regioner som är rumsligt åtskilda från den aktuella funktionen

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som är rumsligt åtskilda från den aktuella funktionen och har en befolkning som är större än 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som är rumsligt åtskilda från den aktuella funktionen

Ytterligare läsning: disjoint, array manipulation, Välj efter plats algoritm

9.2.13.97. overlay_equals

Returnerar om den aktuella funktionen är rumsligt lika med minst en funktion från ett målskikt, eller en matris med uttrycksbaserade resultat för funktionerna i målskiktet som är rumsligt lika med den aktuella funktionen.

Läs mer om det underliggande GEOS ”Equals”-predikatet, som beskrivs i PostGIS ST_Equals-funktionen.

Syntax

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_equals('regions') → TRUE om den aktuella funktionen är rumsligt lika med en region

  • overlay_equals('regions', filter:= population > 10000) → TRUE om den aktuella funktionen är rumsligt lika med en region med en befolkning större än 10000

  • overlay_equals('regions', name) → en matris med namn för de regioner som är rumsligt lika med den aktuella funktionen

  • array_to_string(overlay_equals('regions', name)) → en sträng som en kommaseparerad lista med namn, för de regioner som är rumsligt lika med den aktuella funktionen

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som är rumsligt lika med den aktuella funktionen och har en befolkning som är större än 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som är rumsligt lika med den aktuella funktionen

Ytterligare läsning: array manipulation, Välj efter plats algoritm

9.2.13.98. overlay_intersects

Returnerar om den aktuella funktionen rumsligt skär minst en funktion från ett målskikt, eller en matris med uttrycksbaserade resultat för de funktioner i målskiktet som skärs av den aktuella funktionen.

Läs mer om det underliggande GEOS ”Intersects”-predikatet, som beskrivs i PostGIS ST_Intersects-funktion.

Syntax

overlay_intersects(layer, [expression], [filter], [limit], [cache=false], [min_overlap], [min_inscribed_circle_radius], [return_details], [sort_by_intersection_size])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

  • min_overlap - definierar ett valfritt uteslutningsfilter:

    • för polygoner, en minsta area i kvadratenheter för aktuell funktion för skärningspunkten. Om skärningspunkten resulterar i flera polygoner returneras skärningspunkten om minst en av polygonerna har en area som är större än eller lika med värdet

    • för linjer, en minimilängd i aktuella funktionsenheter. Om skärningen resulterar i flera linjer returneras skärningen om minst en av linjerna har en längd som är större än eller lika med värdet.

  • min_inscribed_circle_radius - definierar ett valfritt uteslutningsfilter (endast för polygoner): minsta radie i aktuella funktionsenheter för den maximalt inskrivna cirkeln i skärningspunkten. Om skärningspunkten resulterar i flera polygoner returneras skärningspunkten om minst en av polygonerna har en radie för den maximalt inskrivna cirkeln som är större än eller lika med värdet.

    Läs mer om det underliggande GEOS-predikatet, som beskrivs i PostGIS ST_MaximumInscribedCircle-funktionen.

    Detta argument kräver GEOS >= 3.9.

  • return_details - Sätt detta till true för att returnera en lista med kartor som innehåller (nyckelnamn inom citationstecken) funktionens ”id”, uttrycket ”result” och ”overlap”-värdet (för det största elementet vid multipart). Radien för den maximalt inskrivna cirkeln returneras också när målskiktet är en polygon. Endast giltig när den används med parametern expression

  • sort_by_intersection_size - endast giltigt när det används med ett uttryck, sätt detta till ”des” för att returnera resultaten ordnade efter överlappningsvärdet i fallande ordning eller sätt detta till ”asc” för stigande ordning.

Exempel

  • overlay_intersects('regions') → TRUE om den aktuella funktionen rumsligt skär en region

  • overlay_intersects('regions', filter:= population > 10000) → TRUE om den aktuella funktionen rumsligt skär en region med en befolkning större än 10000

  • overlay_intersects('regions', name) → en matris med namn för de regioner som genomkorsas av den aktuella funktionen

  • array_to_string(overlay_intersects('regions', name)) → en sträng som en kommaseparerad lista med namn för de regioner som genomkorsas av den aktuella funktionen

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som genomkorsas av den aktuella funktionen och med en befolkning som är större än 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som genomskärs av den aktuella funktionen

  • overlay_intersects(layer:='regions', min_overlap:=0.54) → TRUE om den aktuella funktionen rumsligt skär en region och skärningsområdet (för minst en av delarna när det gäller multipolygoner) är större än eller lika med 0.54

  • overlay_intersects(layer:='regions', min_inscribed_circle_radius:=0.54) → TRUE om den aktuella funktionen rumsligt skär en region och skärningsområdets maximala radie för den inskrivna cirkeln (för minst en av delarna om det gäller flera delar) är större än eller lika med 0,54

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), return_details:=true) → en matris med kartor som innehåller ’id’, ’result’, ’overlap’ och ’radius’

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), sort_by_intersection_size:='des') → en matris med geometrier (i WKT) ordnade efter överlappningsvärdet i fallande ordning

Ytterligare läsning: intersects, array manipulation, Välj efter plats algoritm

9.2.13.99. överlagring_närmaste

Returnerar om den aktuella funktionen har funktion(er) från ett målskikt inom ett givet avstånd, eller en matris med uttrycksbaserade resultat för funktionerna i målskiktet inom ett avstånd från den aktuella funktionen.

Obs: Denna funktion kan vara långsam och förbruka mycket minne för stora lager.

Syntax

overlay_nearest(lager, [uttryck], [filter], [limit=1], [max_avstånd], [cache=false])

[] markerar valfria argument

Argument

  • skikt - målskiktet

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner i målskiktet att användas.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om värdet inte anges returneras endast den närmaste funktionen. Om värdet sätts till -1 returneras alla matchande funktioner.

  • max_distance - ett valfritt avstånd för att begränsa sökningen efter matchande funktioner. Om det inte anges kommer alla funktioner i målskiktet att användas.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_nearest('airports') → TRUE om skiktet ”airports” har minst en funktion

  • overlay_nearest('airports', max_distance:= 5000) → TRUE om det finns en flygplats inom ett avstånd på 5000 kartenheter från den aktuella funktionen

  • overlay_nearest('airports', name) → namnet på den flygplats som ligger närmast den aktuella funktionen, som en matris

  • array_to_string(overlay_nearest('airports', name)) → namnet på den flygplats som ligger närmast den aktuella funktionen, som en sträng

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → namnet på den närmaste flygplatsen inom ett avstånd på 5000 kartenheter från den aktuella funktionen, som en matris

  • overlay_nearest(layer:='airports', expression:="name", filter:="Use"='Civilian', limit:=3) → en matris med namn, för upp till de tre närmaste civila flygplatserna ordnade efter avstånd

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → en matris med namn för alla flygplatser inom ett avstånd på 5000 kartenheter från den aktuella funktionen, ordnade efter avstånd

Ytterligare läsning: array manipulation, Sammanfoga attribut efter närmaste algoritm

9.2.13.100. överlägg_touches

Returnerar om den aktuella funktionen rumsligt berör minst en funktion från ett målskikt, eller en matris med uttrycksbaserade resultat för de funktioner i målskiktet som berörs av den aktuella funktionen.

Läs mer om det underliggande GEOS ”Touches” predikatet, som beskrivs i PostGIS ST_Touches funktion.

Syntax

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_touches('regions') → TRUE om den aktuella funktionen rumsligt berör en region

  • overlay_touches('regions', filter:= population > 10000) → TRUE om den aktuella funktionen rumsligt berör en region med en population som är större än 10000

  • overlay_touches('regions', name) → en matris med namn för de regioner som berörs av den aktuella funktionen

  • string_to_array(overlay_touches('regions', name)) → en sträng som en kommaseparerad lista med namn för de regioner som berörs av den aktuella funktionen

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som berörs av den aktuella funktionen och med en befolkning som är större än 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som berörs av den aktuella funktionen

Ytterligare läsning: touches, array manipulation, Välj efter plats algoritm

9.2.13.101. overlay_within

Returnerar om den aktuella funktionen är rumsligt inom minst en funktion från ett målskikt, eller en matris med uttrycksbaserade resultat för de funktioner i målskiktet som innehåller den aktuella funktionen.

Läs mer om det underliggande GEOS ”Within”-predikatet, som beskrivs i PostGIS ST_Within-funktion.

Syntax

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] markerar valfria argument

Argument

  • lager - det lager vars överlagring kontrolleras

  • expression - ett valfritt uttryck som ska utvärderas på funktionerna från målskiktet. Om det inte anges kommer funktionen bara att returnera ett booleanskt värde som anger om det finns minst en matchning.

  • filter - ett valfritt uttryck för att filtrera de målfunktioner som ska kontrolleras. Om det inte anges kommer alla funktioner att kontrolleras.

  • limit - ett valfritt heltal för att begränsa antalet matchande funktioner. Om inget anges kommer alla matchande funktioner att returneras.

  • cache - sätt detta till true för att bygga ett lokalt spatialt index (för det mesta är detta oönskat, såvida du inte arbetar med en särskilt långsam dataleverantör)

Exempel

  • overlay_within('regions') → TRUE om den aktuella funktionen är rumsligt inom en region

  • overlay_within('regions', filter:= population > 10000) → TRUE om den aktuella funktionen ligger rumsligt inom en region med en population som är större än 10000

  • overlay_within('regions', name) → en matris med namn för de regioner som innehåller den aktuella funktionen

  • array_to_string(overlay_within('regions', name)) → en sträng som en kommaseparerad lista med namn för de regioner som innehåller den aktuella funktionen

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → en ordnad matris med namn, för de regioner som innehåller den aktuella funktionen och har en befolkning som är större än 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → en array av geometrier (i WKT), för upp till två regioner som innehåller den aktuella funktionen

Ytterligare läsning: within, array manipulation, Välj efter plats algoritm

9.2.13.102. $perimeter

Returnerar omkretslängden för den aktuella funktionen. Den omkrets som beräknas med den här funktionen respekterar både ellipsoidinställningen och inställningarna för avståndsenhet i det aktuella projektet. Om t.ex. en ellipsoid har ställts in för projektet kommer den beräknade omkretsen att vara ellipsoidisk, och om ingen ellipsoid har ställts in kommer den beräknade omkretsen att vara planimetrisk.

Syntax

$perimeter

Exempel

  • $perimeter → 42

9.2.13.103. perimeter

Returnerar omkretsen för ett geometriskt polygonobjekt. Beräkningarna är alltid planimetriska i det rumsliga referenssystemet (SRS) för denna geometri, och enheterna för den returnerade omkretsen kommer att matcha enheterna för SRS. Detta skiljer sig från de beräkningar som utförs av funktionen $perimeter, som utför ellipsoidiska beräkningar baserat på projektets inställningar för ellipsoid och avståndsenheter.

Syntax

perimeter(geometry)

Argument

  • geometry - geometriobjekt för polygoner

Exempel

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12,0

9.2.13.104. point_n

Returnerar en specifik nod från en geometri.

Syntax

point_n(geometry, index)

Argument

  • geometry - geometriobjekt

  • index - index för den nod som ska returneras, där 1 är den första noden; om värdet är negativt kommer det valda vertexindexet att vara dess totala antal minus det absoluta värdet

Exempel

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → ’Punkt (4 0)’

Ytterligare läsning: Extrahera specifika toppar algoritm

9.2.13.105. point_on_surface

Returnerar en punkt som garanterat ligger på ytan av en geometri.

Syntax

point_on_surface(geometry)

Argument

  • geometri - en geometri

Exempel

  • point_on_surface(@geometry) → en punktgeometri

Ytterligare läsning: Punkt på ytan algoritm

9.2.13.106. pole_of_inaccessibility

Beräknar den ungefärliga otillgänglighetspolen för en yta, vilket är den mest avlägsna inre punkten från ytans gräns. Denna funktion använder ”polylabel”-algoritmen (Vladimir Agafonkin, 2016), som är en iterativ metod som garanterat hittar den verkliga otillgänglighetspolen inom en angiven tolerans. Mer exakta toleranser kräver fler iterationer och tar längre tid att beräkna.

Syntax

pole_of_inaccessibility(geometry, tolerance)

Argument

  • geometri - en geometri

  • tolerans - maximalt avstånd mellan den returnerade punkten och den verkliga stolppositionen

Exempel

  • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0,1)) → ’Point(1,546875 2,546875)’

../../../_images/pole_inaccessibility.png

Fig. 9.25 Pol av otillgänglighet

Ytterligare läsning: Pol av otillgänglighet algoritm

9.2.13.107. project

Returnerar en punkt som projiceras från en startpunkt med hjälp av ett avstånd, en bäring (azimut) och en elevation i radianer.

Syntax

project(point, distance, azimuth, [elevation])

[] markerar valfria argument

Argument

  • punkt - startpunkt

  • avstånd - avstånd till projektet

  • azimuth - azimut i radianer medurs, där 0 motsvarar norr

  • elevation - lutningsvinkel i radianer

Exempel

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → ’Punkt(-2, 2)’

För vidare läsning: Projektpunkter (kartesiska) algoritm

9.2.13.108. relate

Testar DE-9IM (Dimensional Extended 9 Intersection Model) representation av förhållandet mellan två geometrier.

Relationship variant

Returnerar representationen av förhållandet mellan två geometrier enligt DE-9IM (Dimensional Extended 9 Intersection Model).

Syntax

relate(geometry, geometry)

Argument

  • geometri - en geometri

  • geometri - en geometri

Exempel

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → ’FF1F00102’

Mönstermatchningsvariant

Testar om DE-9IM-förhållandet mellan två geometrier stämmer överens med ett angivet mönster.

Syntax

relate(geometry, geometry, pattern)

Argument

  • geometri - en geometri

  • geometri - en geometri

  • mönster - DE-9IM-mönster som ska matchas

Exempel

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → TRUE

9.2.13.109. reverse

Omvänder riktningen på en linjestring genom att vända ordningen på dess hörn.

Syntax

reverse(geometry)

Argument

  • geometri - en geometri

Exempel

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ’LINESTRING(2 2, 1 1, 0 0)’

../../../_images/reverse_line.png

Fig. 9.26 Vändning av linjens riktning

Ytterligare läsning: Omvänd riktning på linjen algoritm

9.2.13.110. rotate

Returnerar en roterad version av en geometri. Beräkningar görs i geometrins rumsliga referenssystem.

Syntax

rotate(geometry, rotation, [center=NULL], [per_part=false])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • rotation - medsols rotation i grader

  • center - rotationens mittpunkt. Om den inte anges används mitten av geometrins begränsningsbox.

  • per_part - tillämpa rotation per del. Om true, kommer rotation att tillämpas runt mitten av varje dels begränsningsbox när indatageometrin är flerdelad och en explicit rotationscentrumpunkt inte har angetts.

Exempel

  • rotate(@geometry, 45, make_point(4, 5)) → geometrin roterad 45 grader medurs runt punkten (4, 5)

  • rotate(@geometry, 45) → geometrin roterad 45 grader medurs runt mitten av dess begränsande box

../../../_images/rotate.gif

Fig. 9.27 Roterande funktioner

9.2.13.111. roundness

Beräknar hur nära en polygonform är en cirkel. Funktionen returnerar SANT när polygonformen är en perfekt cirkel och 0 när den är helt platt.

Syntax

roundness(geometry)

Argument

  • geometry - en polygon

Exempel

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 1, 1 1, 1 0, 0 0))')), 3) → 0,785

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 0,1, 1 0,1, 1 0, 0 0))')), 3) → 0,260

Ytterligare läsning: Rundhet-algoritm

9.2.13.112. scale

Returnerar en skalad version av en geometri. Beräkningar görs i geometrins rumsliga referenssystem.

Syntax

scale(geometry, x_scale, y_scale, [center])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • x_scale - Skalningsfaktor för x-axeln

  • y_scale - Skalningsfaktor för y-axeln

  • center - skalningens mittpunkt. Om den inte anges används mitten av geometrins begränsningsbox.

Exempel

  • scale(@geometry, 2, 0,5, make_point(4, 5)) → geometrin skalas två gånger horisontellt och halveras vertikalt, runt punkten (4, 5)

  • scale(@geometri, 2, 0,5) → geometri två gånger horisontellt och halverat vertikalt, runt mitten av dess begränsningsbox

9.2.13.113. segments_to_lines

Returnerar en geometri med flera linjer som består av en linje för varje segment i indatageometrin.

Syntax

segments_to_lines(geometry)

Argument

  • geometry - geometriobjekt

Exempel

  • geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ’MultiLineString ((0 0, 1 1),(1 1, 2 2))’’

Ytterligare läsning: Explodera linjer algoritm

9.2.13.114. shared_paths

Returnerar en samling som innehåller banor som delas av de två inmatade geometrierna. De som går i samma riktning finns i det första elementet i samlingen, de som går i motsatt riktning finns i det andra elementet. Själva banorna anges i den första geometrins riktning.

Syntax

shared_paths(geometry1, geometry2)

Argument

  • geometry1 - en LineString/MultiLineString-geometri

  • geometry2 - en LineString/MultiLineString-geometri

Exempel

  • geom_to_wkt(shared_paths(geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150)))'),geom_from_wkt('LINESTRING(151 100,126 156.25,126 125,90 161, 76 175)'))) → ’GeometryCollection (MultiLineString ((126 156.25, 126 125),(101 150, 90 161),(90 161, 76 175)),MultiLineString EMPTY)’

  • geom_to_wkt(shared_paths(geom_from_wkt('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150))'))) → ’GeometryCollection (MultiLineString EMPTY,MultiLineString ((76 175, 90 161),(90 161, 101 150),(126 125, 126 156.25)))’’

9.2.13.115. shortest_line

Returnerar den kortaste linjen som förbinder geometri1 med geometri2. Den resulterande linjen kommer att börja vid geometri1 och sluta vid geometri2.

Syntax

shortest_line(geometry1, geometry2)

Argument

  • geometri1 - geometri för att hitta kortaste vägen från

  • geometry2 - geometri för att hitta kortaste vägen till

Exempel

  • geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → ’LineString(73,0769 115,384, 100 100)’

9.2.13.116. simplify

Förenklar en geometri genom att ta bort noder med hjälp av ett avståndsbaserat tröskelvärde (t.ex. Douglas Peucker-algoritmen). Algoritmen bevarar stora avvikelser i geometrier och minskar antalet toppar i nästan raka segment.

Syntax

simplify(geometry, tolerance)

Argument

  • geometri - en geometri

  • tolerans - maximal avvikelse från raka segment för punkter som ska tas bort

Exempel

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerans:=5)) → ’LineString(0 0, 10 0)’

../../../_images/simplify_geometries.png

Fig. 9.28 Från vänster till höger, källskikt och ökande förenklingstoleranser

Ytterligare läsning: Förenkla algoritm

9.2.13.117. simplify_vw

Förenklar en geometri genom att ta bort noder med hjälp av ett ytbaserat tröskelvärde (t.ex. Visvalingam-Whyatt-algoritmen). Algoritmen tar bort hörn som skapar små områden i geometrier, t.ex. smala spikar eller nästan raka segment.

Syntax

simplify_vw(geometry, tolerance)

Argument

  • geometri - en geometri

  • tolerans - ett mått på den maximala yta som skapas av en nod för att noden ska kunna tas bort

Exempel

  • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerans:=5)) → ’LineString(0 0, 10 0)’

Ytterligare läsning: Förenkla algoritm

9.2.13.118. single_sided_buffer

Returnerar en geometri som bildats genom att buffra ut bara en sida av en linjestringgeometri. Avstånden är i det rumsliga referenssystemet för denna geometri.

Syntax

single_sided_buffer(geometri, avstånd, [segment=8], [join=1], [miter_limit=2.0])

[] markerar valfria argument

Argument

  • geometri - en (multi)linjestringsgeometri

  • distance - buffertavstånd. Positiva värden kommer att buffras till vänster om linjerna, negativa värden till höger

  • segments - antal segment som ska användas för att representera en kvartscirkel när en rund join-stil används. Ett större antal resulterar i en jämnare buffert med fler noder.

  • join - fogningsstil för hörn, där 1 = rund, 2 = gering och 3 = fasning

  • miter_limit - begränsning av mitterförhållandet som används för mycket skarpa hörn (endast vid användning av mitterförband)

Exempel

  • single_sided_buffer(@geometry, 10.5) → linje buffrad till vänster med 10,5 enheter

  • single_sided_buffer(@geometry, -10.5) → linje buffrad åt höger med 10,5 enheter

  • single_sided_buffer(@geometry, 10.5, segments:=16, join:=1) → linjen buffras åt vänster med 10,5 enheter, med fler segment för att få en jämnare buffert

  • single_sided_buffer(@geometry, 10.5, join:=3) → linje buffrad till vänster med 10,5 enheter, med en avfasad skarv

../../../_images/single_side_buffer.png

Fig. 9.29 Vänster- och högersidig buffert på samma vektorlinjelager

Ytterligare läsning: Enkelsidig buffert-algoritm

9.2.13.119. sinuosity

Returnerar en kurvas sinuositet, vilket är förhållandet mellan kurvans längd och det raka (2D) avståndet mellan dess ändpunkter.

Syntax

sinuosity(geometry)

Argument

  • geometry - Inmatningskurva (cirkulärsträng, linjesträng)

Exempel

  • rund(sinuositet(geom_from_wkt('LINESTRING(2 0, 2 2, 3 2, 3 3)')), 3) → 1,265

  • sinuosity(geom_from_wkt('LINESTRING( 3 1, 5 1)')) → 1,0

9.2.13.120. smooth

Utjämnar en geometri genom att lägga till extra noder som avrundar geometrins hörn. Om indatageometrier innehåller Z- eller M-värden kommer dessa också att jämnas ut och utdatageometrin kommer att behålla samma dimensionalitet som indatageometrin.

Syntax

smooth(geometri, [iterationer=1], [offset=0,25], [min_längd=-1], [max_vinkel=180])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • iterations - antal iterationer för utjämning som ska tillämpas. Större antal resulterar i jämnare men mer komplexa geometrier.

  • offset - värde mellan 0 och 0,5 som styr hur nära den utjämnade geometrin följer originalgeometrin. Mindre värden resulterar i en snävare utjämning, större värden resulterar i en lösare utjämning.

  • min_length - minsta längd på segmenten för att tillämpa utjämning. Denna parameter kan användas för att undvika att placera alltför många extra noder i kortare segment av geometrin.

  • max_angle - maximal vinkel vid noden för att utjämning ska tillämpas (0-180). Genom att sänka den maximala vinkeln kan avsiktligt skarpa hörn i geometrin bevaras. Ett värde på 80 grader innebär t.ex. att räta vinklar i geometrin bibehålls.

Exempel

  • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → ’LineString (0 0, 4 0, 5 1, 5 5)’

../../../_images/smooth_geometry_1.png

Fig. 9.30 Ökat antal iterationer ger jämnare geometrier

Ytterligare läsning: Smidig algoritm

9.2.13.121. square_wave

Konstruerar kvadratiska/rektangulära vågor längs en geometris gräns.

Syntax

square_wave(geometry, wavelength, amplitude, [strict=False])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • våglängd - våglängd för fyrkantig vågform

  • amplitud - amplitud för fyrkantig vågform

  • strict - Som standard behandlas våglängdsargumentet som en ”maximal våglängd”, där den faktiska våglängden kommer att justeras dynamiskt så att ett exakt antal kvadratvågor skapas längs geometrins gränser. Om argumentet strict är satt till true kommer våglängden att användas exakt och ett ofullständigt mönster kan komma att användas för den slutliga vågformen.

Exempel

  • square_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Kvadratvågor med våglängd 3 och amplitud 1 längs linjestringen

../../../_images/square_wave.png

Fig. 9.31 Symbolisering av funktioner med fyrkantsvågor

9.2.13.122. square_wave_randomized

Konstruerar slumpmässiga kvadratiska/rektangulära vågor längs gränsen för en geometri.

Syntax

square_wave_randomized(geometry, min_våglängd, max_våglängd, min_amplitud, max_amplitud, [seed=0])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • min_våglängd - vågornas minsta våglängd

  • max_våglängd - vågornas maximala våglängd

  • min_amplitude - vågornas minsta amplitud

  • max_amplitude - vågornas maximala amplitud

  • seed - anger ett slumpmässigt frö för generering av vågor. Om seed är 0 kommer en helt slumpmässig uppsättning vågor att genereras.

Exempel

  • square_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Slumpmässigt dimensionerade fyrkantvågor med våglängder mellan 2 och 3 och amplituder mellan 0.1 och 0.2 längs linjestringen

../../../_images/square_wave_randomized.png

Fig. 9.32 Symbolisering av funktioner med kvadratiska slumpmässiga vågor

9.2.13.123. start_point

Returnerar den första noden från en geometri.

Syntax

start_point(geometry)

Argument

  • geometry - geometriobjekt

Exempel

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ’Punkt (4 0)’

../../../_images/start_point.png

Fig. 9.33 Startpunkt för en linjefunktion

Ytterligare läsning: end_point, Extrahera specifika toppar algoritm

9.2.13.124. straight_distance_2d

Returnerar det direkta/euklidiska avståndet mellan det första och sista toppunktet i en geometri. Geometrin måste vara en kurva (circularstring, linestring).

Syntax

straight_distance_2d(geometry)

Argument

  • geometry - Geometrin.

Exempel

  • rätt_avstånd_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • rund(rak_avstånd_2d(geom_från_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5,657

Ytterligare läsning: length

9.2.13.125. sym_difference

Returnerar en geometri som representerar de delar av två geometrier som inte skär varandra.

Syntax

sym_difference(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → ”LINESTRING(5 5, 8 8)

För vidare läsning: Symmetrisk skillnad algoritm

9.2.13.126. tapered_buffer

Skapar en buffert längs en linjegeometri där buffertdiametern varierar jämnt över linjens längd.

Syntax

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] markerar valfria argument

Argument

  • geometry - geometri för inmatning. Måste vara en (multi)linjegeometri.

  • start_width - buffertens bredd vid början av raden,

  • end_width - buffertens bredd vid slutet av raden.

  • segments - antal segment för att approximera kvartscirkelkurvor i bufferten.

Exempel

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → En avsmalnande buffert som börjar med en diameter på 1 och slutar med en diameter på 2 längs linestring-geometrin.

../../../_images/tapered_buffer.png

Fig. 9.34 Avsmalnande buffert på linjefunktioner

Ytterligare läsning: Avsmalnande buffertar-algoritm

9.2.13.127. touches

Testar om en geometri berör en annan. Returnerar TRUE om geometrierna har minst en gemensam punkt, men deras interiörer inte korsar varandra.

Syntax

touches(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → FALSE

Ytterligare läsning: överlägg_touches

9.2.13.128. transform

Returnerar den geometri som transformerats från ett CRS-källsystem till ett CRS-målsystem.

Syntax

transform(geometry, source_auth_id, dest_auth_id)

Argument

  • geometri - en geometri

  • source_auth_id - CRS-ID för autentisering av källan

  • dest_auth_id - CRS-ID för autentisering av destinationen

Exempel

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), "EPSG:2154", "EPSG:4326" ) ) → ”POINT(0 51)

Ytterligare läsning: Återprojicera lagret algoritm

9.2.13.129. translate

Returnerar en översatt version av en geometri. Beräkningar görs i geometrins rumsliga referenssystem.

Syntax

translate(geometry, dx, dy)

Argument

  • geometri - en geometri

  • dx - delta x

  • dy - delta y

Exempel

  • translate(@geometry, 5, 10) → en geometri av samma typ som den ursprungliga

../../../_images/translate_geometry.png

Fig. 9.35 Översättning av funktioner

För vidare läsning: Översätt algoritm

9.2.13.130. triangular_wave

Konstruerar triangulära vågor längs gränsen för en geometri.

Syntax

triangular_wave(geometry, wavelength, amplitude, [strict=False])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • våglängd - våglängd för triangulär vågform

  • amplitud - amplitud för triangulär vågform

  • strict - Som standard behandlas våglängdsargumentet som en ”maximal våglängd”, där den faktiska våglängden kommer att justeras dynamiskt så att ett exakt antal triangulära vågor skapas längs geometrins gränser. Om argumentet strict är satt till true kommer våglängden att användas exakt och ett ofullständigt mönster kan komma att användas för den slutliga vågformen.

Exempel

  • triangular_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Triangulära vågor med våglängd 3 och amplitud 1 längs linjestringen

../../../_images/triangular_wave.png

Fig. 9.36 Symbolisering av funktioner med triangulära vågor

9.2.13.131. triangular_wave_randomized

Konstruerar slumpmässiga triangulära vågor längs geometrins gränser.

Syntax

triangular_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • min_våglängd - vågornas minsta våglängd

  • max_våglängd - vågornas maximala våglängd

  • min_amplitude - vågornas minsta amplitud

  • max_amplitude - vågornas maximala amplitud

  • seed - anger ett slumpmässigt frö för generering av vågor. Om seed är 0 kommer en helt slumpmässig uppsättning vågor att genereras.

Exempel

  • triangular_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Triangulära vågor av slumpmässig storlek med våglängder mellan 2 och 3 och amplituder mellan 0,1 och 0,2 längs linjestringen

../../../_images/triangular_wave_randomized.png

Fig. 9.37 Symbolisering av funktioner med triangulära slumpmässiga vågor

9.2.13.132. union

Returnerar en geometri som representerar punktuppsättningens förening av geometrierna.

Syntax

union(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → ”MULTIPOINT(4 4, 5 5)

9.2.13.133. wave

Konstruerar rundade (sinusliknande) vågor längs en geometris gräns.

Syntax

wave(geometry, wavelength, amplitude, [strict=False])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • våglängd - våglängd för sinusliknande vågform

  • amplitud - amplitud för sinusliknande vågform

  • strict - Som standard behandlas våglängdsargumentet som en ”maximal våglängd”, där den faktiska våglängden kommer att justeras dynamiskt så att ett exakt antal vågor skapas längs geometrins gränser. Om argumentet strict är satt till true kommer våglängden att användas exakt och ett ofullständigt mönster kan komma att användas för den slutliga vågformen.

Exempel

  • wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Sinusliknande vågor med våglängd 3 och amplitud 1 längs linjestringen

../../../_images/wave.png

Fig. 9.38 Symbolisering av funktioner med vågor

9.2.13.134. wave_randomized

Konstruerar slumpmässiga krökta (sinusliknande) vågor längs en geometris gräns.

Syntax

wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] markerar valfria argument

Argument

  • geometri - en geometri

  • min_våglängd - vågornas minsta våglängd

  • max_våglängd - vågornas maximala våglängd

  • min_amplitude - vågornas minsta amplitud

  • max_amplitude - vågornas maximala amplitud

  • seed - anger ett slumpmässigt frö för generering av vågor. Om seed är 0 kommer en helt slumpmässig uppsättning vågor att genereras.

Exempel

  • wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0,1, 0,2) → Slumpmässigt valda krökta vågor med våglängder mellan 2 och 3 och amplituder mellan 0,1 och 0,2 längs linjestringen

../../../_images/wave_randomized.png

Fig. 9.39 Symbolisering av funktioner med slumpmässiga vågor

9.2.13.135. wedge_buffer

Returnerar en kilformad buffert som utgår från en punktgeometri.

Syntax

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] markerar valfria argument

Argument

  • center - buffertens mittpunkt (ursprung). Måste vara en punktgeometri.

  • azimuth - vinkel (i grader) som mitten av kilen ska peka mot.

  • width - buffertbredd (i grader). Observera att kilen kommer att sträcka sig till halva vinkelbredden på vardera sidan om azimutriktningen.

  • outer_radius - yttre radie för buffertar

  • inner_radius - valfri inre radie för buffertar

Exempel

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → En kilformad buffert centrerad på punkten (1,2), vänd mot öster, med en bredd på 180 grader och en yttre radie på 1.

../../../_images/wedge_buffers.png

Fig. 9.40 Funktioner för buffring av kilar

För vidare läsning: Skapa kilbuffertar algoritm

9.2.13.136. within

Testar om en geometri är inom en annan. Returnerar TRUE om geometri1 är helt inom geometri2.

Syntax

within(geometry1, geometry2)

Argument

  • geometri1 - en geometri

  • geometry2 - en geometri

Exempel

  • within( geom_from_wkt( 'POINT( 0,5 0,5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → TRUE

  • within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → FALSE

Ytterligare läsning: overlay_within

9.2.13.137. $x

Returnerar x-koordinaten för den aktuella punktfunktionen. Om funktionen är en flerpunktsfunktion returneras x-koordinaten för den första punkten. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsfunktionen x() med variabeln @geometry i stället.

Syntax

$x

Exempel

  • $x → 42

Fördjupning: x

9.2.13.138. x

Returnerar x-koordinaten för en punktgeometri, eller x-koordinaten för centroiden för en icke-punktgeometri.

Syntax

x(geometry)

Argument

  • geometri - en geometri

Exempel

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( @geometri ) → x-koordinat för den aktuella funktionens tyngdpunkt

9.2.13.139. $x_at

Hämtar en x-koordinat för den aktuella funktionens geometri. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsfunktionen x_at med variabeln @geometry i stället.

Syntax

$x_at(vertex)

Argument

  • vertex - index för vertexen i den aktuella geometrin (index börjar på 0; negativa värden gäller från det sista indexet, med början på -1)

Exempel

  • $x_at(1) → 5

Ytterligare läsning: x_at

9.2.13.140. x_at

Hämtar en x-koordinat för geometrin.

Syntax

x_at(geometry, vertex)

Argument

  • geometry - geometriobjekt

  • vertex - index för geometrins vertex (index börjar på 0; negativa värden gäller från det sista indexet, med början på -1)

Exempel

  • x_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 4

9.2.13.141. x_max

Returnerar den maximala x-koordinaten för en geometri. Beräkningarna görs i geometrins rumsliga referenssystem.

Syntax

x_max(geometry)

Argument

  • geometri - en geometri

Exempel

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

9.2.13.142. x_min

Returnerar den minsta x-koordinaten för en geometri. Beräkningarna görs i geometrins rumsliga referenssystem.

Syntax

x_min(geometry)

Argument

  • geometri - en geometri

Exempel

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

9.2.13.143. $y

Returnerar y-koordinaten för den aktuella punktfunktionen. Om funktionen är en flerpunktsfunktion returneras y-koordinaten för den första punkten. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsfunktionen y() med variabeln @geometry i stället.

Syntax

$y

Exempel

  • $y → 42

Ytterligare läsning: y

9.2.13.144. y

Returnerar y-koordinaten för en punktgeometri, eller y-koordinaten för centroiden för en icke-punktgeometri.

Syntax

y(geometry)

Argument

  • geometri - en geometri

Exempel

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( @geometri ) → y-koordinat för den aktuella funktionens tyngdpunkt

9.2.13.145. $y_at

Hämtar en y-koordinat för den aktuella funktionens geometri. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsfunktionen y_at med variabeln @geometry i stället.

Syntax

$y_at(vertex)

Argument

  • vertex - index för vertexen i den aktuella geometrin (index börjar på 0; negativa värden gäller från det sista indexet, med början på -1)

Exempel

  • $y_at(1) → 2

Ytterligare läsning: y_at

9.2.13.146. y_at

Hämtar en y-koordinat för geometrin.

Syntax

y_at(geometry, vertex)

Argument

  • geometry - geometriobjekt

  • vertex - index för geometrins vertex (index börjar på 0; negativa värden gäller från det sista indexet, med början på -1)

Exempel

  • y_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 5

9.2.13.147. y_max

Returnerar den maximala y-koordinaten för en geometri. Beräkningarna görs i geometrins rumsliga referenssystem.

Syntax

y_max(geometry)

Argument

  • geometri - en geometri

Exempel

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

9.2.13.148. y_min

Returnerar den minsta y-koordinaten för en geometri. Beräkningarna görs i geometrins rumsliga referenssystem.

Syntax

y_min(geometry)

Argument

  • geometri - en geometri

Exempel

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

9.2.13.149. $z

Returnerar z-värdet för den aktuella punktfunktionen om den är 3D. Om funktionen är en flerpunktsfunktion returneras z-värdet för den första punkten. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsfunktionen z() med variabeln @geometry istället.

Syntax

$z

Exempel

  • $z → 123

9.2.13.150. z

Returnerar z-koordinaten för en punktgeometri, eller NULL om geometrin inte har något z-värde.

Syntax

z(geometry)

Argument

  • geometri - en punktgeometri

Exempel

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

9.2.13.151. z_at

Hämtar en z-koordinat för geometrin, eller NULL om geometrin inte har något z-värde.

Syntax

z_at(geometry, vertex)

Argument

  • geometry - geometriobjekt

  • vertex - index för geometrins vertex (index börjar på 0; negativa värden gäller från det sista indexet, med början på -1)

Exempel

  • z_at(geom_from_wkt('LineStringZ(0 0 0, 10 10 5, 10 10 0)'), 1) → 5

9.2.13.152. z_max

Returnerar den maximala z-koordinaten för en geometri, eller NULL om geometrin inte har något z-värde.

Syntax

z_max(geometry)

Argument

  • geometri - en geometri med z-koordinat

Exempel

  • z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3

  • z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0

  • z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2

  • z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

9.2.13.153. z_min

Returnerar den lägsta z-koordinaten för en geometri, eller NULL om geometrin inte har något z-värde.

Syntax

z_min(geometry)

Argument

  • geometri - en geometri med z-koordinat

Exempel

  • z_min( geom_from_wkt( "POINT ( 0 0 1 )" ) ) → 1

  • z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1

  • z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2

  • z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1

  • z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

9.2.14. Layoutfunktioner

Denna grupp innehåller funktioner för att manipulera egenskaper för utskriftslayoutobjekt.

9.2.14.1. item_variables

Returnerar en karta med variabler från ett layoutobjekt i den här utskriftslayouten.

Syntax

item_variables(id)

Argument

  • id - ID för layoutobjekt

Exempel

  • map_get( item_variables('Map 0'), 'map_scale') → skala för objektet ’Map 0’ i den aktuella utskriftslayouten

Ytterligare läsning: Lista över standard variabler

9.2.14.2. map_credits

Returnerar en lista med kreditsträngar (användningsrättigheter) för de lager som visas i en layout eller ett specifikt layoutkartobjekt.

Syntax

map_credits([id], [include_layer_names=false], [layer_name_separator=’: ’])

[] markerar valfria argument

Argument

  • id - Kartobjektets ID. Om inget anges kommer lagren från alla kartor i layouten att användas.

  • include_layer_names - Ställ in till true för att inkludera lagernamn före deras kreditsträngar

  • layer_name_separator - Sträng som ska infogas mellan lagernamn och deras kreditsträngar, om include_layer_names är true

Exempel

  • array_to_string( map_credits() ) → kommaseparerad lista med lagerkrediter för alla lager som visas i alla kartobjekt i layouten, t.ex. ”CC-BY-NC, CC-BY-SA

  • array_to_string( map_credits( 'Huvudkarta' ) ) → kommaseparerad lista över lagerkrediter för lager som visas i layoutobjektet ’Huvudkarta’, t.ex. ’CC-BY-NC, CC-BY-SA’

  • array_to_string( map_credits( "Huvudkarta", include_layer_names := true, layer_name_separator := ': ' ) ) → kommaseparerad lista över skiktnamn och deras krediter för skikt som visas i layoutobjektet ”Huvudkarta”, t.ex. ”Järnvägslinjer: CC-BY-NC, Baskarta: CC-BY-SA

Denna funktion kräver att :ref:``Access metadata properties <metadatamenu>` för skikten har fyllts i.

9.2.15. Kartskikt

Denna grupp innehåller en lista över tillgängliga skikt i det aktuella projektet och, för varje skikt, deras fält (lagrade i datasetet, virtuella eller extra samt från sammanfogningar). Fälten kan interageras på samma sätt som nämns i Fält och värden, förutom att ett dubbelklick lägger till namnet som en sträng (med enkla citattecken) i uttrycket i stället för som en fältreferens, eftersom de inte tillhör det aktiva lagret. Detta är ett bekvämt sätt att skriva uttryck som hänvisar till olika lager, t.ex. när man utför aggregates, attribute eller spatial.

Det ger också några praktiska funktioner för att manipulera lager.

9.2.15.1. decode_uri

Tar ett lager och avkodar uri för den underliggande dataleverantören. Det beror på dataleverantören vilka data som är tillgängliga.

Syntax

decode_uri(layer, [part])

[] markerar valfria argument

Argument

  • layer - Det lager för vilket uri ska avkodas.

  • part - Den del av uri som ska returneras. Om inget anges kommer en karta med alla uri-delar att returneras.

Exempel

  • decode_uri(@layer) → {’layerId’: ’0’, ’layerName’: ’’, ’path’: ’/home/qgis/shapefile.shp’}

  • decode_uri(@layer) → {’layerId’: NULL, ’layerName’: ’layer’, ’path’: ’/home/qgis/geopackage.gpkg’}

  • decode_uri(@layer, 'path') → ’C:\my_data\qgis\shape.shp’

9.2.15.2. layer_property

Returnerar ett matchande värde för lageregenskaper eller metadata.

Syntax

layer_property(layer, property)

Argument

  • layer - en sträng som representerar antingen ett lagernamn eller ett lager-ID

  • property - en sträng som motsvarar den egenskap som ska returneras. Giltiga alternativ är:

    • namn: skiktets namn

    • id: lager-ID

    • title: titelsträng för metadata

    • abstrakt: metadata abstrakt sträng

    • nyckelord: nyckelord för metadata

    • data_url: URL för metadata

    • attribution: attributionssträng för metadata

    • attribution_url: URL för tilldelning av metadata

    • källa: lager källa

    • min_scale: minsta visningsskala för lager

    • max_scale: maximal visningsskala för lager

    • is_editable: om lagret är i redigeringsläge

    • crs: lager CRS

    • crs_definition: lager CRS fullständig definition

    • crs_description: beskrivning av CRS-lager

    • crs_ellipsoid: akronym för skiktet CRS ellipsoid

    • extent: lagerutbredning (som ett geometriobjekt)

    • distance_units: skiktets avståndsenheter

    • type: typ av lager, t.ex. vektor eller raster

    • storage_type: lagringsformat (endast vektorlager)

    • geometry_type: geometrityp, t.ex. punkt (endast vektorlager)

    • feature_count: ungefärligt antal funktioner för lagret (endast vektorlager)

    • sökväg: Filsökväg till skiktets datakälla. Endast tillgängligt för filbaserade lager.

Exempel

  • layer_property('streets','title') → ’Basemap Streets’

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → ’EPSG:4326’

Läs mer: vector, raster och mesh lageregenskaper

9.2.15.3. load_layer

Laddar ett lager med käll-URI och leverantörsnamn.

Syntax

load_layer(uri, provider)

Argument

  • uri - URI-sträng för källan till lagret

  • provider - namn på leverantör av skiktdata

Exempel

  • layer_property(load_layer('c:/data/roads.shp', 'ogr'), 'feature_count') → antal funktioner från vektorskiktet c:/data/roads.shp

9.2.16. Kartor Funktioner

Den här gruppen innehåller funktioner för att skapa eller manipulera nycklar och värden i map-datastrukturer (även kända som ordboksobjekt, nyckel-värde-par eller associativa matriser). Till skillnad från list-datastrukturen där värdenas ordning spelar roll, är ordningen på nyckel-värdeparen i map-objektet inte relevant och värdena identifieras av sina nycklar.

9.2.16.1. from_json

Läser in en JSON-formaterad sträng.

Syntax

from_json(string)

Argument

  • sträng - JSON-sträng

Exempel

  • from_json('{"1":"one","2":"two"}') → { ’1’: ’en’, ’2’: ’två’ }

  • from_json('[1,2,3]') → [1,2,3]

9.2.16.2. hstore_to_map

Skapar en karta från en hstore-formaterad sträng.

Syntax

hstore_to_map(string)

Argument

  • sträng - inmatningssträngen

Exempel

  • hstore_to_map('qgis=>rocks') → { ’qgis’: ’rocks’ }

9.2.16.3. map

Returnerar en karta som innehåller alla nycklar och värden som skickas som ett par parametrar.

Syntax

map(nyckel1, värde1, nyckel2, värde2, …)

Argument

  • nyckel - en nyckel (sträng)

  • värde - ett värde

Exempel

  • map('1','ett','2','två') → {’1’: ’ett’, ’2’: ’två’ }

  • map('1','ett','2','två')['1'] → ’ett’

9.2.16.4. map_akeys

Returnerar alla nycklar i en map som en array.

Syntax

map_akeys(map)

Argument

  • map - en karta

Exempel

  • map_akeys(map('1','ett','2','två')) → [ ’1’, ’2’ ]

9.2.16.5. map_avals

Returnerar alla värden i en map som en array.

Syntax

map_avals(map)

Argument

  • map - en karta

Exempel

  • map_avals(map('1','ett','2','två')) → [ ’ett’, ’två’ ]

9.2.16.6. map_concat

Returnerar en karta som innehåller alla poster i de angivna kartorna. Om två kartor innehåller samma nyckel, används värdet i den andra kartan.

Syntax

map_concat(map1, map2, …)

Argument

  • map - en karta

Exempel

  • map_concat(map('1','ett','2','åsidosatt'),map('2','två','3','tre')) → {’1’: ’ett’, ’2’: ’två’, ’3’: ’tre’ }

9.2.16.7. map_delete

Returnerar en karta med den angivna nyckeln och dess motsvarande värde raderat.

Syntax

map_delete(map, key)

Argument

  • map - en karta

  • nyckel - den nyckel som ska raderas

Exempel

  • map_delete(map('1','ett','2','två'),'2') → {’1’: ’ett’ }

9.2.16.8. map_exist

Returnerar TRUE om den angivna nyckeln finns i kartan.

Syntax

map_exist(map, key)

Argument

  • map - en karta

  • nyckel - den nyckel som ska sökas upp

Exempel

  • map_exist(map('1','ett','2','två'),'3') → FALSE

9.2.16.9. map_get

Returnerar värdet av en map, givet dess nyckel. Returnerar NULL om nyckeln inte finns.

Syntax

map_get(map, key)

Argument

  • map - en karta

  • nyckel - den nyckel som ska sökas upp

Exempel

  • map_get(map('1','ett','2','två'),'2') → ’två’

  • map_get( item_variables('Map 0'), 'map_scale') → skala för objektet ’Map 0’ (om det finns) i den aktuella utskriftslayouten

Råd

Du kan också använda indexoperatorn ([]) för att hämta ett värde från en map.

9.2.16.10. map_insert

Returnerar en map med en tillagd nyckel/värde. Om nyckeln redan finns åsidosätts dess värde.

Syntax

map_insert(map, key, value)

Argument

  • map - en karta

  • nyckel - den nyckel som ska läggas till

  • värde - det värde som ska läggas till

Exempel

  • map_insert(map('1','ett'),'3','tre') → {’1’: ’ett’, ’3’: ’tre’ }

  • map_insert(map('1','one','2','overridden'),'2','two') → {’1’: ’one’, ’2’: ’two’ }

9.2.16.11. map_prefix_keys

Returnerar en karta med alla nycklar som har en given sträng som prefix.

Syntax

map_prefix_keys(map, prefix)

Argument

  • map - en karta

  • prefix - en sträng

Exempel

  • map_prefix_keys(map('1','ett','2','två'), 'prefix-') → { ’prefix-1’: ’ett’, ’prefix-2’: ’två’ }

9.2.16.12. map_to_hstore

Sammanfoga kartelement till en hstore-formaterad sträng.

Syntax

map_to_hstore(map)

Argument

  • map - inmatningskartan

Exempel

  • map_to_hstore(map('1','ett','2','två')) → ’”1”=>”ett”’,’”2”=>”två”’

9.2.16.13. map_to_html_dl

Sammanfoga kartelement till en HTML-definitionsliststräng.

Syntax

map_to_html_dl(map)

Argument

  • map - inmatningskartan

Exempel

  • map_to_html_dl(map('1','ett','2','två')) → <dl><dt>1</dt><dd>ett</dd><dt>2</dt><dd>två</dd></dl>

9.2.16.14. map_to_html_table

Sammanfoga kartelement till en HTML-tabellsträng.

Syntax

map_to_html_table(map)

Argument

  • map - inmatningskartan

Exempel

  • map_to_html_table(map('1','ett','2','två')) → <table><thead><tr><th>1</th><th>2</th></tr></thead><tbody><tr><td>ett</td><td>två</td></tr></tbody></table>

9.2.16.15. to_json

Skapa en JSON-formaterad sträng från en map, array eller annat värde.

Syntax

to_json(value)

Argument

  • värde - Inmatningsvärdet

Exempel

  • to_json(map('1','ett','2','två')) → {”1”:”one”,”2”:”two”}

  • to_json(array(1,2,3)) → [1,2,3]

9.2.16.16. url_encode

Returnerar en URL-kodad sträng från en karta. Transformerar alla tecken i sin korrekt kodade form och producerar en helt kompatibel frågesträng.

Observera att plustecknet ”+” inte konverteras.

Syntax

url_encode(map)

Argument

  • map - en karta.

Exempel

  • url_encode(map('a&+b','a och plus b','a=b','a är lika med b')) → ’a%26+b=a%20and%20plus%20b&a%3Db=a%20equals%20b’

9.2.17. Matematiska funktioner

Den här gruppen innehåller matematiska funktioner (t.ex. kvadratrot, sin och cos).

9.2.17.1. abs

Returnerar det absoluta värdet av ett tal.

Syntax

abs(value)

Argument

  • värde - ett tal

Exempel

  • abs(-2) → 2

9.2.17.2. acos

Returnerar den inversa cosinus för ett värde i radianer.

Syntax

acos(value)

Argument

  • värde - cosinus för en vinkel i radianer

Exempel

  • acos(0.5) → 1.0471975511966

9.2.17.3. asin

Returnerar den inversa sinus för ett värde i radianer.

Syntax

asin(value)

Argument

  • värde - sinus för en vinkel i radianer

Exempel

  • asin(1.0) → 1.5707963267949

9.2.17.4. atan

Returnerar den inversa tangenten för ett värde i radianer.

Syntax

atan(value)

Argument

  • värde - tan av en vinkel i radianer

Exempel

  • atan(0.5) → 0.463647609000806

9.2.17.5. atan2

Returnerar den inversa tangenten av dy/dx genom att använda tecknen på de två argumenten för att bestämma kvadranten för resultatet.

Syntax

atan2(dy, dx)

Argument

  • dy - skillnad i y-koordinat

  • dx - skillnad i x-koordinat

Exempel

  • atan2(1.0, 1.732) → 0.523611477769969

9.2.17.6. ceil

Rundar ett tal uppåt.

Syntax

ceil(value)

Argument

  • värde - ett tal

Exempel

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

9.2.17.7. clamp

Begränsar ett inmatningsvärde till ett angivet intervall.

Syntax

clamp(minimum, input, maximum)

Argument

  • minimum - det minsta värde som input får anta.

  • input - ett värde som begränsas till det intervall som anges av minimum och maximum

  • maximum - det största värde som input får anta

Exempel

  • clamp(1,5,10) → 5

    input är mellan 1 och 10 och returneras därför oförändrad

  • clamp(1,0,10) → 1

    inmatningen är mindre än minimivärdet 1, så funktionen returnerar 1

  • clamp(1,11,10) → 10

    inmatningen är större än maxvärdet 10, så funktionen returnerar 10

9.2.17.8. cos

Returnerar cosinus för en vinkel.

Syntax

cos(angle)

Argument

  • vinkel - vinkel i radianer

Exempel

  • cos(1,571) → 0,000796326710733263

9.2.17.9. degrees

Konverterar från radianer till grader.

Syntax

degrees(radians)

Argument

  • radianer - numeriskt värde

Exempel

  • grader(3.14159) → 180

  • grader(1) → 57,2958

9.2.17.10. exp

Returnerar exponentialen av ett värde.

Syntax

exp(value)

Argument

  • värde - tal att returnera exponent för

Exempel

  • exp(1,0) → 2.71828182845905

9.2.17.11. floor

Rundar ett tal nedåt.

Syntax

floor(value)

Argument

  • värde - ett tal

Exempel

  • golv(4,9) → 4

  • golv(-4,9) → -5

9.2.17.12. ln

Returnerar den naturliga logaritmen av ett värde.

Syntax

ln(value)

Argument

  • värde - numeriskt värde

Exempel

  • ln(1) → 0

  • ln(2,7182818284590452354) → 1

9.2.17.13. log

Returnerar värdet av logaritmen av det angivna värdet och basen.

Syntax

log(base, value)

Argument

  • bas - valfritt positivt tal

  • värde - valfritt positivt tal

Exempel

  • log(2, 32) → 5

  • log(0,5, 32) → -5

9.2.17.14. log10

Returnerar värdet av bas 10-logaritmen för det passerade uttrycket.

Syntax

log10(value)

Argument

  • värde - valfritt positivt tal

Exempel

  • log10(1) → 0

  • log10(100) → 2

9.2.17.15. max

Returnerar det största värdet i en uppsättning värden.

Syntax

max(value1, value2, …)

Argument

  • värde - ett tal

Exempel

  • max(2,10,2,5,5) → 10,2

  • max(20.5,NULL,6.2) → 20.5

9.2.17.16. min

Returnerar det minsta värdet i en uppsättning värden.

Syntax

min(value1, value2, …)

Argument

  • värde - ett tal

Exempel

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

9.2.17.17. pi

Returnerar värdet av pi för beräkningar.

Syntax

pi()

Exempel

  • pi() → 3.14159265358979

9.2.17.18. radians

Omvandlar från grader till radianer.

Syntax

radians(degrees)

Argument

  • grader - numeriskt värde

Exempel

  • radianer(180) → 3,14159

  • radianer(57,2958) → 1

9.2.17.19. rand

Returnerar ett slumpmässigt heltal inom det intervall som anges av minimum- och maximum-argumentet (inklusive). Om ett frö anges kommer det returnerade talet alltid att vara detsamma, beroende på fröet.

Syntax

rand(min, max, [seed=NULL])

[] markerar valfria argument

Argument

  • min - ett heltal som representerar det minsta möjliga slumpmässiga talet som önskas

  • max - ett heltal som representerar det största möjliga slumpmässiga talet som önskas

  • seed - valfritt värde att använda som seed

Exempel

  • rand(1, 10) → 8

9.2.17.20. randf

Returnerar en slumpmässig float inom det intervall som anges av minimum- och maximum-argumentet (inklusive). Om ett frö anges kommer det returnerade värdet alltid att vara detsamma, beroende på fröet.

Syntax

randf([min=0,0], [max=1,0], [seed=NULL])

[] markerar valfria argument

Argument

  • min - en flottör som representerar det minsta möjliga slumpmässiga talet som önskas

  • max - en float som representerar det största möjliga slumpmässiga talet som önskas

  • seed - valfritt värde att använda som seed

Exempel

  • randf(1, 10) → 4.59258286403147

9.2.17.21. round

Avrundar ett tal till ett antal decimaler.

Syntax

round(värde, [platser=0])

[] markerar valfria argument

Argument

  • värde - decimaltal som ska avrundas

  • places - Valfritt heltal som representerar antal platser att avrunda decimaler till. Kan vara negativt.

Exempel

  • rund(1234,567, 2) → 1234,57

  • rund(1234,567) → 1235

  • rund(1234,567, -1) → 1230

9.2.17.22. scale_exponential

Transformerar ett givet värde från en inmatningsdomän till ett utmatningsområde med hjälp av en exponentiell kurva. Denna funktion kan användas för att underlätta värden i eller utanför det angivna utmatningsområdet.

Syntax

scale_exponential(value, domain_min, domain_max, range_min, range_max, exponent)

Argument

  • värde - Ett värde i inmatningsdomänen. Funktionen returnerar ett motsvarande skalat värde i utdataområdet.

  • domain_min - Anger minimivärdet i indatadomänen, det minsta värde som indatavärdet bör anta.

  • domain_max - Anger det maximala värdet i indatadomänen, det största värde som indatavärdet bör anta.

  • range_min - Anger det lägsta värdet i utmatningsintervallet, det minsta värde som ska matas ut av funktionen.

  • range_max - Anger maxvärdet i utmatningsintervallet, det största värde som ska matas ut av funktionen.

  • exponent - Ett positivt värde (större än 0) som bestämmer hur ingångsvärdena ska mappas till utdataområdet. Stora exponenter gör att utdatavärdena ”lättar in” och börjar långsamt för att sedan accelerera när inmatningsvärdena närmar sig domänens maximum. Mindre exponenter (mindre än 1) gör att utdatavärdena ”lättar ut”, där mappningen börjar snabbt men saktar in när den närmar sig domänens maximum.

Exempel

  • skalning exponentiell(5,0,10,0,100,2)→ 3,030

    lätta på trycket, med en exponent på 2

  • skala_exponentiell(3,0,10,0,100,0,5)`` → 87,585

    lättnader, med en exponent på 0,5

9.2.17.23. skala_linjär

Transformerar ett givet värde från en inmatningsdomän till ett utmatningsområde med hjälp av linjär interpolation.

Syntax

scale_linear(värde, domän_min, domän_max, intervall_min, intervall_max)

Argument

  • värde - Ett värde i inmatningsdomänen. Funktionen returnerar ett motsvarande skalat värde i utdataområdet.

  • domain_min - Anger minimivärdet i indatadomänen, det minsta värde som indatavärdet bör anta.

  • domain_max - Anger det maximala värdet i indatadomänen, det största värde som indatavärdet bör anta.

  • range_min - Anger det lägsta värdet i utmatningsintervallet, det minsta värde som ska matas ut av funktionen.

  • range_max - Anger maxvärdet i utmatningsintervallet, det största värde som ska matas ut av funktionen.

Exempel

  • skalning_linjär(5,0,10,0,100)`` → 50

  • skalning_linjär(0,2,0,1,0,360)`` → 72

    skalning av ett värde mellan 0 och 1 till en vinkel mellan 0 och 360

  • skala_linjär(1500,1000,10000,9,20) → 9,6111111

    skala en population som varierar mellan 1000 och 10000 till en teckenstorlek mellan 9 och 20

9.2.17.24. scale_polynomial

Transformerar ett givet värde från en inmatningsdomän till ett utmatningsområde med hjälp av en polynomkurva. Denna funktion kan användas för att underlätta värden inom eller utanför det angivna utmatningsområdet.

Syntax

scale_polynomial(value, domain_min, domain_max, range_min, range_max, exponent)

Argument

  • värde - Ett värde i inmatningsdomänen. Funktionen returnerar ett motsvarande skalat värde i utdataområdet.

  • domain_min - Anger minimivärdet i indatadomänen, det minsta värde som indatavärdet bör anta.

  • domain_max - Anger det maximala värdet i indatadomänen, det största värde som indatavärdet bör anta.

  • range_min - Anger det lägsta värdet i utmatningsintervallet, det minsta värde som ska matas ut av funktionen.

  • range_max - Anger maxvärdet i utmatningsintervallet, det största värde som ska matas ut av funktionen.

  • exponent - Ett positivt värde (större än 0) som bestämmer hur ingångsvärdena ska mappas till utdataområdet. Stora exponenter gör att utdatavärdena ”lättar in” och börjar långsamt för att sedan accelerera när inmatningsvärdena närmar sig domänens maximum. Mindre exponenter (mindre än 1) gör att utdatavärdena ”lättar ut”, där mappningen börjar snabbt men saktar in när den närmar sig domänens maximum.

Exempel

  • skala_polynom(5,0,10,0,100,2) → 25

    lätta på trycket, med en exponent på 2

  • skala_polynom(3,0,10,0,100,0,5) → 54,772

    lättnader, med en exponent på 0,5

9.2.17.25. synd

Returnerar sinus för en vinkel.

Syntax

sin(vinkel)

Argument

  • vinkel - vinkel i radianer

Exempel

  • sin(1,571) → 0,999999682931835

9.2.17.26. kvadrat

Returnerar kvadratroten av ett värde.

Syntax

sqrt(värde)

Argument

  • värde - ett tal

Exempel

  • sqrt(9) → 3

9.2.17.27. solbränna

Returnerar tangenten för en vinkel.

Syntax

tan(vinkel)

Argument

  • vinkel - vinkel i radianer

Exempel

  • tan(1.0) → 1.5574077246549

9.2.18. Meshes Funktioner

Denna grupp innehåller funktioner som beräknar eller returnerar nätrelaterade värden.

9.2.18.1. $yta_area

Returnerar arean för den aktuella meshytan. Den area som beräknas med denna funktion respekterar både ellipsoidinställningen och inställningarna för areaenhet i det aktuella projektet. Om t.ex. en ellipsoid har ställts in för projektet kommer den beräknade ytan att vara ellipsoidisk, och om ingen ellipsoid har ställts in kommer den beräknade ytan att vara planimetrisk.

Syntax

$yta_area

Exempel

  • $face_area → 42

9.2.18.2. $face_index

Returnerar indexet för den aktuella meshytan.

Syntax

$face_index

Exempel

  • $face_index → 4581

9.2.18.3. $vertex_som_punkt

Returnerar den aktuella vertexen som en punktgeometri.

Syntax

$vertex_som_punkt

Exempel

  • geom_to_wkt( $vertex_as_point ) → ’POINT(800 1500 41)’

9.2.18.4. $vertex_index

Returnerar indexet för den aktuella mesh-vertexen.

Syntax

$vertex_index

Exempel

  • $vertex_index → 9874

9.2.18.5. $vertex_x

Returnerar X-koordinaten för den aktuella mesh-vertexen.

Syntax

$vertex_x

Exempel

  • $vertex_x → 42.12

9.2.18.6. $vertex_y

Returnerar Y-koordinaten för den aktuella mesh-vertexen.

Syntax

$vertex_y

Exempel

  • $vertex_y → 12.24

9.2.18.7. $vertex_z

Returnerar Z-värdet för den aktuella mesh-vertexen.

Syntax

$vertex_z

Exempel

  • $vertex_z → 42

9.2.19. Operatörer

Denna grupp innehåller operatorer (t.ex. +, -, *). Observera att för de flesta av de matematiska funktionerna nedan gäller att om en av indata är NULL blir resultatet NULL.

9.2.19.1. %

Återstoden av divisionen. Tar tecknet för utdelningen.

Syntax

a % b

Argument

  • a - värde

  • b - värde

Exempel

  • 9 % 2 → 1

  • 9 % -2 → 1

  • -9 % 2 → -1

  • 5 % NULL → NULL

9.2.19.2. *

Multiplikation av två värden

Syntax

a * b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 * 4 → 20

  • 5 * NULL → NULL

9.2.19.3. +

Addition av två värden. Om ett av värdena är NULL blir resultatet NULL.

Syntax

a + b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 + 4 → 9

  • 5 + NULL → NULL

  • 'QGIS ' + 'STENAR' → ’QGIS STENAR’

  • to_datetime('2020-08-01 12:00:00') + '1 dag 2 timmar' → 2020-08-02T14:00:00

Ytterligare läsning: concat, ||

9.2.19.4. -

Subtraktion av två värden. Om ett av värdena är NULL blir resultatet NULL.

Syntax

a - b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 - 4 → 1

  • 5 - NULL → NULL

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 dag 2 timmar') → 2012-05-04T10:00:00

9.2.19.5. /

Division av två värden

Syntax

a / b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

9.2.19.6. //

Golvdelning av två värden

Syntax

a // b

Argument

  • a - värde

  • b - värde

Exempel

  • 9 // 2 → 4

9.2.19.7. <

Jämför två värden och utvärderar till 1 om det vänstra värdet är mindre än det högra värdet.

Syntax

a < b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 < 4 → FALSE

  • 5 < 5 → FALSE

  • 4 < 5 → TRUE

9.2.19.8. <=

Jämför två värden och utvärderar till 1 om det vänstra värdet är mindre eller lika med det högra värdet.

Syntax

a <= b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 <= 4 → FALSE

  • 5 <= 5 → TRUE

  • 4 <= 5 → TRUE

9.2.19.9. <>

Jämför två värden och utvärderar till 1 om de inte är lika.

Syntax

a <> b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 <> 4 → TRUE

  • 4 <> 4 → FALSE

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

9.2.19.10. =

Jämför två värden och värderar dem till 1 om de är lika.

Syntax

a = b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 = 4 → FALSE

  • 4 = 4 → TRUE

  • 5 = NULL → NULL

  • NULL = NULL → NULL

9.2.19.11. >

Jämför två värden och utvärderar till 1 om det vänstra värdet är större än det högra värdet.

Syntax

a > b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 > 4 → TRUE

  • 5 > 5 → FALSE

  • 4 > 5 → FALSE

9.2.19.12. >=

Jämför två värden och utvärderar till 1 om det vänstra värdet är större eller lika med det högra värdet.

Syntax

a >= b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 >= 4 → TRUE

  • 5 >= 5 → TRUE

  • 4 >= 5 → FALSE

9.2.19.13. OCH

Returnerar TRUE när villkoren a och b är sanna.

Syntax

a OCH b

Argument

  • a - skick

  • b - skick

Exempel

  • SANT OCH SANT → SANT

  • SANT OCH FALSKT → FALSKT

  • 4 = 2+2 AND 1 = 1 → TRUE

  • 4 = 2+2 AND 1 = 2 → FALSE

9.2.19.14. BETWEEN

Returnerar TRUE om värdet ligger inom det angivna intervallet. Intervallet anses inkludera gränserna. För att testa för uteslutning kan NOT BETWEEN användas.

Syntax

värde MELLAN lägre_bound OCH högre_bound

Argument

  • value - det värde som ska jämföras med ett intervall. Det kan vara en sträng, ett tal eller ett datum.

  • lägre_gräns OCH högre_gräns - gränser för intervall

Exempel

  • 'B' BETWEEN 'A' AND 'C' → TRUE

  • 2 MELLAN 1 OCH 3 → SANT

  • 2 MELLAN 2 OCH 3 → SANT

  • 'B' BETWEEN 'a' AND 'c' → FALSE

  • lower('B') MELLAN 'a' OCH 'b' → TRUE

Observera

value BETWEEN lower_bound AND higher_bound är detsamma som ”value >= lower_bound AND value <= higher_bound”.

Ytterligare läsning: NOT BETWEEN (uttrycksfunktionens operatorer)

9.2.19.15. ILIKE

Returnerar TRUE om den första parametern matchar det angivna mönstret utan att skilja på versaler och gemener. LIKE kan användas istället för ILIKE för att göra matchningen skiftlägeskänslig. Fungerar även med siffror.

Syntax

sträng/tal ILIKE mönster

Argument

  • sträng/siffra - sträng att söka i

  • pattern - mönster att hitta, du kan använda ”%” som jokertecken, ”_” som enstaka tecken och ”\\” för att undkomma dessa specialtecken.

Exempel

  • 'A' ILIKE 'A' → TRUE

  • 'A' ILIKE 'a' → TRUE

  • 'A' ILIKE 'B' → FALSE

  • 'ABC' ILIKE 'b' → FALSE

  • 'ABC' ILIKE 'B' → FALSE

  • 'ABC' ILIKE '_b_' → TRUE

  • 'ABC' ILIKE '_B_' → TRUE

  • 'ABCD' ILIKE '_b_' → FALSE

  • 'ABCD' ILIKE '_B_' → FALSE

  • 'ABCD' ILIKE '_b%' → TRUE

  • 'ABCD' ILIKE '_B%' → TRUE

  • 'ABCD' ILIKE '%b%' → TRUE

  • 'ABCD' ILIKE '%B%' → TRUE

  • 'ABCD%' ILIKE 'abcd\\%' → TRUE

  • 'ABCD' ILIKE '%B\\%' → FALSE

9.2.19.16. IN

Returnerar TRUE om värdet hittas i en lista med värden.

Syntax

a IN b

Argument

  • a - värde

  • b - lista över värden

Exempel

  • 'A' IN ('A','B') → TRUE

  • 'A' IN ('C','B') → FALSE

9.2.19.17. IS

Returnerar TRUE om a är samma sak som b.

Syntax

a IS b

Argument

  • a - valfritt värde

  • b - valfritt värde

Exempel

  • 'A' IS 'A' → TRUE

  • 'A' IS 'a' → FALSE

  • 4 IS 4 → TRUE

  • 4 IS 2+2 → TRUE

  • 4 IS 2 → FALSE

  • @geometry IS NULL → 0, om din geometri inte är NULL

9.2.19.18. ÄR INTE

Returnerar TRUE om a inte är samma sak som b.

Syntax

a ÄR INTE b

Argument

  • a - värde

  • b - värde

Exempel

  • 'a' IS NOT 'b' → TRUE

  • 'a' IS NOT 'a' → FALSE

  • 4 IS NOT 2+2 → FALSE

9.2.19.19. LIKAMED

Returnerar TRUE om den första parametern matchar det angivna mönstret. Fungerar även med siffror.

Syntax

sträng/siffra LIKE-mönster

Argument

  • sträng/siffra - värde

  • pattern - mönster att jämföra värdet med, du kan använda ”%” som jokertecken, ”_” som enstaka tecken och ”\\” för att undkomma dessa specialtecken.

Exempel

  • 'A' LIKE 'A' → TRUE

  • 'A' LIKE 'a' → FALSE

  • 'A' LIKE 'B' → FALSE

  • 'ABC' LIKE 'B' → FALSE

  • 'ABC' LIKE '_B_' → TRUE

  • 'ABCD' LIKE '_B_' → FALSE

  • 'ABCD' LIKE '_B%' → TRUE

  • 'ABCD' LIKE '%B%' → TRUE

  • '1%' LIKE '1\\%' → TRUE

  • '1_' LIKE '1\\%' → FALSE

9.2.19.20. ICKE

Negerar ett villkor.

Syntax

INTE en

Argument

  • a - skick

Exempel

  • INTE 1 → FALSK

  • INTE 0 → SANT

9.2.19.21. NOT BETWEEN

Returnerar TRUE om värdet inte ligger inom det angivna intervallet. Intervallet anses inkludera gränserna.

Syntax

värde INTE MELLAN lägre_bound OCH högre_bound

Argument

  • value - det värde som ska jämföras med ett intervall. Det kan vara en sträng, ett tal eller ett datum.

  • lägre_gräns OCH högre_gräns - gränser för intervall

Exempel

  • 'B' NOT BETWEEN 'A' AND 'C' → FALSE

  • 1.0 INTE MELLAN 1.1 OCH 1.2 → TRUE

  • 2 INTE MELLAN 2 OCH 3 → FALSE

  • 'B' NOT BETWEEN 'a' AND 'c' → TRUE

  • lower('B') INTE MELLAN 'a' OCH 'b' → FALSE

Observera

value NOT BETWEEN lower_bound AND higher_bound är samma sak som ”value < lower_bound OR value > higher_bound”.

Ytterligare läsning: BETWEEN

9.2.19.22. ELLER

Returnerar TRUE när villkor a eller b är sant.

Syntax

a ELLER b

Argument

  • a - skick

  • b - skick

Exempel

  • 4 = 2+2 OR 1 = 1 → TRUE

  • 4 = 2+2 OR 1 = 2 → TRUE

  • 4 = 2   OR 1 = 2 → FALSE

9.2.19.23. []

Index-operator. Returnerar ett element från en array eller ett map-värde.

Syntax

[index]

Argument

  • index - index för matris eller nyckelvärde i karta

Exempel

  • array(1,2,3)[0] → 1

  • array(1,2,3)[2] → 3

  • array(1,2,3)[-1] → 3

  • map('a',1,'b',2)['a'] → 1

  • map('a',1,'b',2)['b'] → 2

Ytterligare läsning: array_get, map_get

9.2.19.24. ^

Makt av två värden.

Syntax

a ^ b

Argument

  • a - värde

  • b - värde

Exempel

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

9.2.19.25. ||

Sammanfogar två värden till en sträng.

Om ett av värdena är NULL blir resultatet NULL. Se CONCAT-funktionen för ett annat beteende.

Syntax

a || b

Argument

  • a - värde

  • b - värde

Exempel

  • `'Här' || ' och ' || 'där' → ’Här och där’

  • `Inget' || NULL → NULL

  • 'Dia: ' || "Diameter" → ’Dia: 25’

  • 1 || 2 → ’12’

För vidare läsning: concat, +

9.2.19.26. ~

Utför en matchning med reguljära uttryck på ett strängvärde. Backslash-tecken måste dubbeleskapsas (t.ex. ”\\s” för att matcha ett tecken med vitt utrymme).

Syntax

sträng ~ regex

Argument

  • sträng - Ett strängvärde

  • regex - Ett reguljärt uttryck. Bindestreck måste escapas, t.ex. \\d.

Exempel

  • 'hello' ~ 'll' → TRUE

  • 'hello' ~ '^ll' → FALSE

  • 'hello' ~ 'llo$' → TRUE

  • 'abc123' ~ '\\d+' → TRUE

Ytterligare läsning: regexp_match

9.2.20. Bearbetningsfunktioner

Den här gruppen innehåller funktioner som arbetar med bearbetningsalgoritmer.

9.2.20.1. parameter

Returnerar värdet på en inmatningsparameter för en bearbetningsalgoritm.

Syntax

parameter(namn)

Argument

  • namn - namn på motsvarande inmatningsparameter

Exempel

  • parameter('BUFFER_SIZE') → 5.6

9.2.21. Rasterfunktioner

Denna grupp innehåller funktioner för att arbeta med rasterlager.

9.2.21.1. raster_attributes

Returnerar en karta med fältnamnen som nycklar och rasterattributtabellens värden som värden från den attributtabellspost som matchar det angivna rastervärdet.

Syntax

raster_attributes(layer, band, value)

Argument

  • layer - namn eller id för ett rasterlager

  • band - bandnumret för den associerade attributtabelluppslagningen.

  • värde - rastervärde

Exempel

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, make_point(1,1))) → {’class’: ’Vegetated’, ’subclass’: ’Trees’}

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, @layer_cursor_point)) → {’class’: ’Vegetated’, ’subclass’: ’Trees’}

9.2.21.2. raster_statistik

Returnerar statistik från ett rasterlager.

Syntax

raster_statistic(layer, band, property)

Argument

  • layer - en sträng som representerar antingen ett rasterlagernamn eller ett lager-ID

  • band - heltal som representerar bandnumret från rasterlagret, med början på 1

  • property - en sträng som motsvarar den egenskap som ska returneras. Giltiga alternativ är:

    • min: lägsta värde

    • max: maximalt värde

    • avg: genomsnittligt värde (medelvärde)

    • stdev: standardavvikelse för värden

    • intervall: värdeintervall (max - min)

    • summa: summan av alla värden från raster

Exempel

  • raster_statistic('lc',1,'avg') → Medelvärde från band 1 från rasterskiktet ’lc

  • raster_statistic('ac2010',3,'min') → Minsta värde från band 3 från rasterskiktet ”ac2010

9.2.21.3. raster_value

Returnerar det rastervärde som finns vid den angivna punkten.

Syntax

raster_value(layer, band, point)

Argument

  • layer - namn eller id för ett rasterlager

  • band - det bandnummer som värdet ska hämtas från.

  • point - punktgeometri (för flerdelade geometrier som har mer än en del returneras ett NULL-värde)

Exempel

  • raster_value('dem', 1, make_point(1,1)) → 25

  • raster_value('ndvi', 2, @layer_cursor_point) → 25

9.2.22. Funktioner för registrering och attribut

Denna grupp innehåller funktioner som arbetar med identifikatorer för poster.

9.2.22.1. attribute

Returnerar ett attribut från en funktion.

Variant 1

Returnerar värdet för ett attribut från den aktuella funktionen.

Syntax

attribute(attribute_name)

Argument

  • attributnamn - namn på det attribut som ska returneras

Exempel

  • attribute( 'name' ) → värde lagrat i attributet ’name’ för den aktuella funktionen

Variant 2

Gör det möjligt att ange målfunktionens och attributets namn.

Syntax

attribute(feature, attribute_name)

Argument

  • feature - en funktion

  • attributnamn - namn på det attribut som ska returneras

Exempel

  • attribut( @atlas_feature, 'name' ) → värde lagrat i attributet ’name’ för den aktuella atlasfunktionen

9.2.22.2. attributes

Returnerar en karta som innehåller alla attribut från en funktion, med fältnamn som kartnycklar.

Variant 1

Returnerar en karta med alla attribut från den aktuella funktionen.

Syntax

attributes()

Exempel

  • attributes()['name'] → värde lagrat i attributet ’name’ för den aktuella funktionen

Variant 2

Gör det möjligt att ange målfunktionen.

Syntax

attributes(feature)

Argument

  • feature - en funktion

Exempel

  • attributes( @atlas_feature )['name'] → värde lagrat i attributet ”name” för den aktuella atlasfunktionen

Ytterligare läsning: Kartor Funktioner

9.2.22.3. $currentfeature

Returnerar den aktuella funktionen som utvärderas. Detta kan användas med funktionen ’attribute’ för att utvärdera attributvärden från den aktuella funktionen. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsvariabeln @feature i stället.

Syntax

$currentfeature

Exempel

  • attribute( $currentfeature, 'name' ) → värde lagrat i attributet ’name’ för den aktuella funktionen

9.2.22.4. display_expression

Returnerar visningsuttrycket för en given funktion i ett skikt. Uttrycket utvärderas som standard. Kan användas med noll, ett eller flera argument, se nedan för mer information.

Inga parametrar

Om funktionen anropas utan parametrar utvärderar den displayuttrycket för den aktuella funktionen i det aktuella lagret.

Syntax

display_expression()

Exempel

  • display_expression() → Visningsuttrycket för den aktuella funktionen i det aktuella lagret.

En parameter för ”funktion”

Om funktionen endast anropas med parametern ”feature” utvärderas den angivna egenskapen från det aktuella lagret.

Syntax

display_expression(feature)

Argument

  • feature - Den funktion som ska utvärderas.

Exempel

  • display_expression(@atlas_feature) → Visningsuttrycket för den aktuella atlasfunktionen.

Parametrar för lager och funktioner

Om funktionen anropas med både ett lager och en funktion, kommer den att utvärdera den angivna funktionen från det angivna lagret.

Syntax

display_expression(lager, funktion, [evaluate=true])

[] markerar valfria argument

Argument

  • layer - Skiktet (eller dess ID eller namn)

  • feature - Den funktion som ska utvärderas.

  • evaluate - Om uttrycket måste utvärderas. Om false returneras uttrycket endast som en strängbokstav (som eventuellt kan utvärderas senare med hjälp av funktionen ”eval”).

Exempel

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → Visningsuttrycket för funktionen med ID 1 i skiktet ’streets’.

  • display_expression('a_layer_id', @feature, 'False') → Displayuttrycket för den angivna funktionen utvärderades inte.

9.2.22.5. feature_id

Returnerar ett unikt ID för en funktion, eller NULL om funktionen inte är giltig.

Syntax

feature_id(feature)

Argument

  • feature - ett funktionsobjekt

Exempel

  • feature_id( @feature ) → ID för den aktuella funktionen

Ytterligare läsning: get_feature_by_id

9.2.22.6. get_feature

Returnerar den första egenskapen i ett lager som matchar ett givet attributvärde.

Variant med ett enda värde

Tillsammans med skiktets ID anges en enda kolumn och ett värde.

Syntax

get_feature(layer, attribute, value)

Argument

  • layer - namn eller ID för lagret

  • attribut - attributnamn som ska användas för matchningen

  • värde - attributvärde som ska matchas

Exempel

  • get_feature('streets','name','main st') → första objektet som hittas i lagret ”streets” med värdet ”main st” i fältet ”name”

Karta variant

Tillsammans med skiktets ID, en karta som innehåller de kolumner (nyckel) och deras respektive värde som ska användas.

Syntax

get_feature(layer, attribute)

Argument

  • layer - namn eller ID för lagret

  • attribute - Map som innehåller de kolumn- och värdepar som ska användas

Exempel

  • get_feature('streets',map('name','main st','lane_num','4')) → första funktionen som hittades i skiktet ”streets” med värdet ”main st” i fältet ”name” och värdet ”4” i fältet ”lane_num”

9.2.22.7. get_feature_by_id

Returnerar objektet med ett id på ett lager.

Syntax

get_feature_by_id(layer, feature_id)

Argument

  • layer - lager, lagernamn eller lager-ID

  • feature_id - id för den funktion som ska returneras

Exempel

  • get_feature_by_id('streets', 1) → funktionen med id 1 på lagret ”streets”

Ytterligare läsning: feature_id

9.2.22.8. $id

Returnerar funktions-ID för den aktuella raden. VARNING: Denna funktion är föråldrad. Vi rekommenderar att du använder ersättningsvariabeln @id i stället.

Syntax

$id

Exempel

  • $id → 42

Ytterligare läsning: feature_id, get_feature_by_id

9.2.22.9. is_attribute_valid

Returnerar TRUE om ett specifikt funktionsattribut uppfyller alla begränsningar.

Syntax

is_attribute_valid(attribute, [feature], [layer], [strength])

[] markerar valfria argument

Argument

  • attribut - ett attributnamn

  • feature - En funktion. Om den inte anges kommer den aktuella funktionen att användas.

  • layer - Ett vektorlager. Om det inte anges kommer det aktuella lagret att användas.

  • strength - Ställs in på ”hard” eller ”soft” för att begränsa till en specifik begränsningstyp. Om den inte är inställd returnerar funktionen FALSE om antingen en hård eller en mjuk begränsning misslyckas.

Exempel

  • is_attribute_valid('HECTARES') → TRUE om den aktuella egenskapens värde i fältet ”HECTARES” uppfyller alla begränsningar.

  • is_attribute_valid('HOUSES',get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE om värdet i fältet ”HOUSES” från funktionen med ”FID”=10 i ’my_layer’ inte uppfyller alla begränsningar.

Ytterligare läsning: begränsningar

9.2.22.10. is_feature_valid

Returnerar TRUE om en funktion uppfyller alla fältbegränsningar.

Syntax

is_feature_valid([feature], [layer], [strength])

[] markerar valfria argument

Argument

  • feature - En funktion. Om den inte anges kommer den aktuella funktionen att användas.

  • layer - Ett vektorlager. Om det inte anges kommer det aktuella lagret att användas.

  • strength - Ställs in på ”hard” eller ”soft” för att begränsa till en specifik begränsningstyp. Om den inte är inställd returnerar funktionen FALSE om antingen en hård eller en mjuk begränsning misslyckas.

Exempel

  • is_feature_valid(strength:='hard') → TRUE om alla fält från den aktuella funktionen uppfyller sina hårda begränsningar.

  • is_feature_valid(get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE om alla fält från funktionen med ”FID”=10 i ’my_layer’ inte uppfyller alla begränsningar.

Ytterligare läsning: begränsningar

9.2.22.11. is_selected

Returnerar TRUE om en funktion är vald. Kan användas med noll, ett eller två argument, se nedan för mer information.

Inga parametrar

Om funktionen anropas utan parametrar returnerar den TRUE om den aktuella funktionen i det aktuella lagret är vald.

Syntax

is_selected()

Exempel

  • is_selected() → TRUE om den aktuella funktionen i det aktuella lagret är vald.

En parameter för ”funktion”

Om funktionen endast anropas med en ”feature”-parameter returnerar den TRUE om den angivna funktionen från det aktuella lagret har valts.

Syntax

is_selected(feature)

Argument

  • feature - Den funktion som ska kontrolleras för urval.

Exempel

  • is_selected(@atlas_feature) → TRUE om den aktuella atlasfunktionen är vald.

  • is_selected(get_feature('streets', 'name', 'Main St.')) → TRUE om den unika funktionen med namnet ”Main St.” i det aktiva ”streets”-skiktet är vald.

  • is_selected(get_feature_by_id('streets', 1)) → TRUE om funktionen med id 1 på det aktiva lagret ”streets” är vald.

Två parametrar

Om funktionen anropas med både ett lager och en funktion returnerar den TRUE om den angivna funktionen från det angivna lagret har valts.

Syntax

is_selected(layer, feature)

Argument

  • layer - Det lager (dess ID eller namn) som urvalet ska kontrolleras på.

  • feature - Den funktion som ska kontrolleras för urval.

Exempel

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → TRUE om den aktuella byggnadens gata är vald (förutsatt att byggnadsskiktet har ett fält med namnet ”street_name” och att skiktet ”streets” har ett fält med namnet ”name” med unika värden).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → TRUE om funktionen med id 1 på lagret ”streets” är vald.

9.2.22.12. maptip

Returnerar karttipset för en given funktion i ett skikt. Uttrycket utvärderas som standard. Kan användas med noll, ett eller flera argument, se nedan för detaljer.

Inga parametrar

Om funktionen anropas utan parametrar utvärderar den karttipset för den aktuella funktionen i det aktuella lagret.

Syntax

maptip()

Exempel

  • maptip() → Karttipset för den aktuella funktionen i det aktuella lagret.

En parameter för ”funktion”

Om funktionen endast anropas med parametern ”feature” utvärderas den angivna egenskapen från det aktuella lagret.

Syntax

maptip(feature)

Argument

  • feature - Den funktion som ska utvärderas.

Exempel

  • maptip(@atlas_feature) → Karttipset för den aktuella atlasfunktionen.

Parametrar för lager och funktioner

Om funktionen anropas med både ett lager och en funktion, kommer den att utvärdera den angivna funktionen från det angivna lagret.

Syntax

maptip(layer, feature, [evaluate=true])

[] markerar valfria argument

Argument

  • layer - Skiktet (eller dess ID eller namn)

  • feature - Den funktion som ska utvärderas.

  • evaluate - Om uttrycket måste utvärderas. Om false returneras uttrycket endast som en strängbokstav (som eventuellt kan utvärderas senare med hjälp av funktionen ”eval_template”).

Exempel

  • maptip('streets', get_feature_by_id('streets', 1)) → Karttipset för funktionen med ID 1 i skiktet ”streets”.

  • maptip('a_layer_id', @feature, 'False') → Karttipset för den angivna funktionen utvärderades inte.

9.2.22.13. num_selected

Returnerar antalet valda funktioner på ett visst lager. Arbetar som standard på det lager som uttrycket utvärderas på.

Syntax

num_selected([lager=aktuellt lager])

[] markerar valfria argument

Argument

  • layer - Det lager (eller dess id eller namn) som urvalet ska kontrolleras på.

Exempel

  • num_selected() → Antalet valda funktioner i det aktuella lagret.

  • num_selected('streets') → Antalet utvalda funktioner i skiktet streets

9.2.22.14. represent_attributes

Returnerar en karta med attributnamnen som nycklar och de konfigurerade representationsvärdena som värden. Representationsvärdet för attributen beror på den konfigurerade widget-typen för varje attribut. Kan användas med noll, ett eller flera argument, se nedan för mer information.

Inga parametrar

Om funktionen anropas utan parametrar returnerar den representationen av attributen för den aktuella funktionen i det aktuella lagret.

Syntax

represent_attributes()

Exempel

  • represent_attributes() → Representationen av attributen för den aktuella funktionen.

En parameter för ”funktion”

Om funktionen endast anropas med en ”feature”-parameter returnerar den representationen av attributen för den angivna funktionen från det aktuella lagret.

Syntax

represent_attributes(feature)

Argument

  • feature - Den funktion som ska utvärderas.

Exempel

  • represent_attributes(@atlas_feature) → Representationen av attributen för den angivna funktionen från det aktuella lagret.

Parametrar för lager och funktioner

Om funktionen anropas med en ”layer”- och en ”feature”-parameter returnerar den representationen av attributen för den angivna funktionen från det angivna lagret.

Syntax

represent_attributes(layer, feature)

Argument

  • layer - Lagret (eller dess ID eller namn).

  • feature - Den funktion som ska utvärderas.

Exempel

  • represent_attributes('atlas_layer', @atlas_feature) → → Representationen av attributen för den angivna funktionen från det angivna skiktet.

Ytterligare läsning: represent_value

9.2.22.15. represent_value

Returnerar det konfigurerade representationsvärdet för ett fältvärde. Det beror på den konfigurerade widget-typen. Detta är ofta användbart för widgetar av typen ”Value Map”.

Syntax

represent_value(value, [fieldName])

[] markerar valfria argument

Argument

  • value - Det värde som ska lösas. Mest troligt ett fält.

  • fieldName - Det fältnamn för vilket widgetkonfigurationen ska laddas.

Exempel

  • represent_value("field_with_value_map") → Beskrivning för värde

  • represent_value('statiskt värde', 'fältnamn') → Beskrivning för statiskt värde

Ytterligare läsning: widget-typer, represent_attributes

9.2.22.16. sqlite_fetch_and_increment

Hantera automatiskt ökande värden i sqlite-databaser.

SQlite-standardvärden kan endast tillämpas vid infogning och inte förskjutas.

Detta gör det omöjligt att skaffa en inkrementerad primärnyckel via AUTO_INCREMENT innan raden skapas i databasen. Sidenote: med postgres fungerar detta via alternativet evaluate default values.

När man lägger till nya funktioner med relationer är det väldigt trevligt att redan kunna lägga till barn för en förälder, medan förälderns formulär fortfarande är öppet och förälderns funktion därmed inte är bekräftad.

För att komma runt denna begränsning kan denna funktion användas för att hantera sekvensvärden i en separat tabell i sqlite-baserade format som gpkg.

Sekvenstabellen filtreras efter ett sekvens-ID (filter_attribute och filter_value) och det aktuella värdet för id_field ökas med 1 och det ökade värdet returneras.

Om ytterligare kolumner kräver att värden anges kan default_values-kartan användas för detta ändamål.

Anmärkning

Denna funktion modifierar målets sqlite-tabell. Den är avsedd att användas med standardvärdeskonfigurationer för attribut.

När databasparametern är ett lager och lagret är i transaktionsläge hämtas värdet bara en gång under transaktionens livstid och cachelagras och inkrementeras. Detta gör det osäkert att arbeta med samma databas från flera parallella processer.

Syntax

sqlite_fetch_and_increment(databas, tabell, id_fält, filter_attribut, filter_värde, [standardvärden])

[] markerar valfria argument

Argument

  • database - Sökväg till sqlite-filen eller geopackage-lagret

  • table - Namn på den tabell som hanterar sekvenserna

  • id_field - Namnet på det fält som innehåller det aktuella värdet

  • filter_attribute - Namnge det fält som innehåller en unik identifierare för denna sekvens. Måste ha ett UNIQUE-index.

  • filter_value - Namn på den sekvens som ska användas.

  • default_values - Karta med standardvärden för ytterligare kolumner i tabellen. Värdena måste vara fullständigt citerade. Funktioner är tillåtna.

Exempel

  • sqlite_fetch_and_increment(@layer, 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

  • sqlite_fetch_and_increment(layer_property(@layer, 'path'), 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

Ytterligare läsning: Egenskaper för datakällor, Inställning av relationer mellan flera lager

9.2.22.17. uuid

Genererar en universellt unik identifierare (UUID) för varje rad med hjälp av Qt-metoden QUuid::createUuid.

Syntax

uuid([format=’WithBraces’])

[] markerar valfria argument

Argument

  • format - Det format som UUID kommer att formateras i. ”WithBraces”, ”WithoutBraces” eller ”Id128”.

Exempel

  • uuid() → ’{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}’

  • uuid('WithoutBraces') → ’0bd2f60f-f157-4a6d-96af-d4ba4cb366a1’

  • uuid('Id128') → ’0bd2f60ff1574a6d96afd4ba4cb366a1’

9.2.23. Relationer

Den här gruppen innehåller en lista över de relationer som finns tillgängliga i det aktuella projektet, med beskrivning. Den ger snabb åtkomst till relations-ID:t för att skriva ett uttryck (med t.ex. funktionen relation_aggregate) eller anpassa ett formulär.

9.2.24. Sensorer Funktioner

Denna grupp innehåller funktioner för att interagera med sensorer.

9.2.24.1. sensor_data

Returnerar det senast insamlade värdet (eller värden som en karta för sensorer som rapporterar flera värden) från en registrerad sensor.

Syntax

sensor_data(name, [expiration])

[] markerar valfria argument

Argument

  • namn - sensorns namn

  • expiration - högsta tillåtna millisekund sedan det senast registrerade värdet

Exempel

  • sensor_data('geiger_1') → ’2000’

9.2.25. Strängfunktioner

Den här gruppen innehåller funktioner som arbetar med strängar (t.ex. som ersätter, konverterar till versaler).

9.2.25.1. ascii

Returnerar den unicode-kod som är associerad med det första tecknet i en sträng.

Syntax

ascii(string)

Argument

  • sträng - den sträng som ska konverteras till Unicode-kod

Exempel

  • ascii('Q') → 81

9.2.25.2. char

Returnerar tecknet som är associerat med en unicode-kod.

Syntax

char(code)

Argument

  • code - ett unicode-kodnummer

Exempel

  • char(81) → ’Q’

9.2.25.3. concat

Sammanfogar flera strängar till en. NULL-värden konverteras till tomma strängar. Andra värden (t.ex. siffror) konverteras till strängar.

Syntax

concat(sträng1, sträng2, …)

Argument

  • sträng - ett strängvärde

Exempel

  • concat('sun', 'set') → ’solnedgång’

  • concat('a','b','c','d','e') → ’abcde’

  • concat('Anno ', 1984) → ’Anno 1984’

  • concat('The Wall', NULL) → ’The Wall’

Om sammanlänkning av fält

Du kan också sammanfoga strängar eller fältvärden med hjälp av antingen || eller + operatorer, med vissa speciella egenskaper:

  • Operatorn + betyder också summera uttryck, så om du har ett heltal (fält eller numeriskt värde) operand, kan detta vara felaktigt och du använder bättre de andra:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • När något av argumenten är ett NULL-värde, kommer antingen || eller + att returnera ett NULL-värde. För att returnera de andra argumenten oavsett NULL-värdet kan du använda funktionen concat eller array_to_string:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    array_to_string( array('My feature id is: ', NULL) ) => 'My feature id is: '
    

vidare läsning: array_to_string, ||, +

9.2.25.4. format

Formatera en sträng med hjälp av angivna argument.

Syntax

format(sträng, arg1, arg2, …)

Argument

  • sträng - En sträng med platshållarna %1, %2 osv. för argumenten. Platshållarna kan upprepas. Den lägst numrerade platshållaren ersätts av arg1, nästa av arg2, osv.

  • arg - valfri typ. Valfritt antal argument.

Exempel

  • format('Detta %1 är %2','är', 'test') → ’Detta är ett test’

  • format('Detta är %2','lite oväntat men 2 är det lägsta talet i strängen','normal') → ’Detta är lite oväntat men 2 är det lägsta talet i strängen’

9.2.25.5. format_date

Formaterar en datatyp eller sträng till ett anpassat strängformat. Använder Qt datum/tid formatsträngar. Se QDateTime::toString.

Syntax

format_date(datetime, format, [language])

[] markerar valfria argument

Argument

  • datetime - datum, tid eller datetime-värde

  • format - Strängmall som används för att formatera strängen.

    Uttryck

    Utmatning

    d

    dagen som ett nummer utan inledande nolla (1 till 31)

    dd

    dagen som ett nummer med en inledande nolla (01 till 31)

    ddd

    det förkortade lokala dagsnamnet (t.ex. ”mån” till ”sön”)

    dddd

    det långa lokaliserade dagsnamnet (t.ex. ”måndag” till ”söndag”)

    M

    månaden som ett nummer utan inledande nolla (1-12)

    MM

    månaden som ett nummer med en inledande nolla (01-12)

    MMM

    det förkortade lokala månadsnamnet (t.ex. ”Jan” till ”Dec”)

    MMMM

    det långa lokaliserade månadsnamnet (t.ex. ”januari” till ”december”)

    yy

    årtalet som tvåsiffrigt nummer (00-99)

    yyyy

    året som ett fyrsiffrigt tal

    Dessa uttryck kan användas för tidsdelen av formatsträngen:

    Uttryck

    Utmatning

    h

    timmen utan inledande nolla (0 till 23 eller 1 till 12 om AM/PM-visning)

    hh

    timmen med en inledande nolla (00 till 23 eller 01 till 12 om AM/PM-visning)

    H

    timmen utan inledande nolla (0 till 23, även med AM/PM-visning)

    HH

    timmen med en inledande nolla (00 till 23, även med AM/PM-visning)

    m

    minuten utan inledande nolla (0 till 59)

    mm

    minuten med en inledande nolla (00 till 59)

    s

    den andra siffran utan inledande nolla (0 till 59)

    ss

    den andra siffran med en inledande nolla (00 till 59)

    z

    millisekunder utan nollor efter (0 till 999)

    zzz

    millisekunder med nollor efter (000 till 999)

    AP eller A

    tolkas som en AM/PM-tid. AP måste vara antingen ’AM’ eller ’PM’.

    ap eller en

    Tolkas som en AM/PM-tid. ap måste vara antingen ’am’ eller ’pm’.

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att formatera datumet till en anpassad sträng. Som standard används den aktuella QGIS-användarens språk.

Exempel

  • format_date('2012-05-15','dd.MM.åååå') → ’15.05.2012’

  • format_date('2012-05-15','d MMMM åååå','fr') → ’15 maj 2012’

  • format_date('2012-05-15','dddd') → ”Tuesday”, om den aktuella locale är en engelsk variant

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → ’15.05.12’

  • format_date('13:54:20','hh:mm AP') → ’01:54 PM’

9.2.25.6. format_number

Returnerar ett tal formaterat med den lokala separatorn för tusentals. Som standard används den aktuella QGIS-användarens locale. Decimalerna trunkeras också till det antal decimaler som anges.

Syntax

format_number(number, [places=0], [language], [omit_group_separators=false], [trim_trailing_zeroes=false])

[] markerar valfria argument

Argument

  • number - nummer som ska formateras

  • places - heltal som representerar antalet decimaler som strängen ska trunkeras till.

  • language - språk (gemener, två eller tre bokstäver, ISO 639 språkkod) som används för att formatera talet till en sträng. Som standard används den aktuella QGIS-användarens språk.

  • omit_group_separators - om inställningen är true kommer gruppavgränsare inte att inkluderas i strängen

  • trim_trailing_zeroes - om värdet är true kommer nollor efter decimaltecknet att tas bort från strängen

Exempel

  • format_number(10000000.332,2) → ’10,000,000.33’ om t.ex. den aktuella locale är en engelsk variant

  • format_nummer(10000000.332,2,'fr') → ’10 000 000,33’

9.2.25.7. left

Returnerar en delsträng som innehåller de n tecken som ligger längst till vänster i strängen.

Syntax

left(string, length)

Argument

  • sträng - en sträng

  • length - heltal. Antalet tecken från vänster i strängen som ska returneras.

Exempel

  • vänster('Hello World',5) → ’Hello’

För vidare läsning: uttrycksfunktion_String_right

9.2.25.8. length

Returnerar antalet tecken i en sträng eller längden på en geometrisk linjestring.

String variant

Returnerar antalet tecken i en sträng.

Syntax

length(string)

Argument

  • sträng - sträng att räkna längden på

Exempel

  • längd('hello') → 5

Geometrivariant

Beräknar längden på ett geometriskt linjeobjekt. Beräkningar är alltid planimetriska i det rumsliga referenssystemet (SRS) för denna geometri, och enheterna för den returnerade längden kommer att matcha enheterna för SRS. Detta skiljer sig från de beräkningar som utförs av funktionen $length, som utför ellipsoidiska beräkningar baserat på projektets inställningar för ellipsoid och avståndsenheter.

Syntax

length(geometry)

Argument

  • geometry - objekt för linjegeometri

Exempel

  • längd(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4,0

9.2.25.9. lower

Konverterar en sträng till små bokstäver.

Syntax

lower(string)

Argument

  • sträng - strängen som ska konverteras till gemener

Exempel

  • lower('HELLO World') → ’hej värld’

Ytterligare läsning: upper, title

9.2.25.10. lpad

Returnerar en sträng som är utfylld till vänster till den angivna bredden, med ett fyllnadstecken. Om målbredden är mindre än strängens längd avkortas strängen.

Syntax

lpad(string, width, fill)

Argument

  • sträng - sträng att fylla i

  • bredd - längden på den nya strängen

  • fill - tecken att fylla ut det återstående utrymmet med

Exempel

  • lpad('Hello', 10, 'x') → ’xxxxxHello’

  • lpad('Hello', 3, 'x') → ’Hel’

Ytterligare läsning: rpad

9.2.25.11. ltrim

Tar bort den längsta strängen som bara innehåller de angivna tecknen (ett mellanslag som standard) från början av strängen.

Syntax

ltrim(string, [characters=’ ’])

[] markerar valfria argument

Argument

  • sträng - sträng som ska trimmas

  • tecken - tecken som ska trimmas

Exempel

  • ltrim(' hello world ') → ’hello world ’

  • ltrim('zzzytest', 'xyz') → ’test’

Ytterligare läsning: rtrim, trim

9.2.25.12. regexp_match

Returnerar den första matchande positionen som matchar ett reguljärt uttryck i en unikodsträng, eller 0 om delsträngen inte hittas.

Syntax

regexp_match(input_string, regex)

Argument

  • input_string - den sträng som ska testas mot det reguljära uttrycket

  • regex - Det reguljära uttryck som ska testas mot. Backslash-tecken måste dubbeleskapsas (t.ex. ”\\s” för att matcha ett tecken med vitt utrymme eller ”\\b” för att matcha en ordgräns).

Exempel

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

  • regexp_match('Budač','udač\\b') → 2

Ytterligare läsning: uttryck_funktion_sträng_strpos

9.2.25.13. regexp_replace

Returnerar en sträng med det angivna reguljära uttrycket ersatt.

Syntax

regexp_replace(input_string, regex, replacement)

Argument

  • input_string - strängen som ska ersätta matchningar i

  • regex - Det reguljära uttryck som ska ersättas. Backslash-tecken måste dubbeleskapsas (t.ex. ”\\s” för att matcha ett tecken med vitt utrymme).

  • replacement - Den sträng som ska ersätta alla matchande förekomster av det reguljära uttryck som anges. Fångade grupper kan infogas i ersättningssträngen med hjälp av001, 002, etc.

Exempel

  • regexp_replace('QGIS SKA ROCKERA','\\sSHOULD\\s',' DOES ') → ’QGIS DOES ROCKERA’

  • regexp_replace('ABC123','\\d+','') → ’ABC’

  • regexp_replace('mitt namn är John','(.*) är (.*)','\\2 är \\1') → ’John är mitt namn’

Ytterligare läsning: replace, array_replace

9.2.25.14. regexp_substr

Returnerar den del av en sträng som matchar ett angivet reguljärt uttryck.

Syntax

regexp_substr(input_string, regex)

Argument

  • input_string - den sträng som ska sökas efter matchningar i

  • regex - Det reguljära uttryck som ska matchas mot. Backslash-tecken måste dubbeleskapsas (t.ex. ”\\s” för att matcha ett tecken med vitt utrymme).

Exempel

  • regexp_substr('abc123','(\\d+)') → ’123’

Ytterligare läsning: substr, regexp_matches

9.2.25.15. replace

Returnerar en sträng med den angivna strängen, matrisen eller kartan med strängar ersatt.

String & array-variant

Returnerar en sträng med den angivna strängen eller strängmatrisen ersatt av en sträng eller en strängmatris.

Syntax

replace(string, before, after)

Argument

  • sträng - inmatningssträngen

  • before - den sträng eller array av strängar som ska ersättas

  • after - den sträng eller matris av strängar som ska användas som ersättning

Exempel

  • replace('QGIS SKA ROCKERA','SKA','DOES') → ’QGIS DOES ROCKERA’

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → ’QGIS XYZ’

  • replace('QGIS',array('Q','S'),'') → ’GI’

Karta variant

Returnerar en sträng med de angivna map-nycklarna ersatta av parade värden. Längre map-nycklar utvärderas först.

Syntax

replace(string, map)

Argument

  • sträng - inmatningssträngen

  • map - kartan som innehåller nycklar och värden

Exempel

  • replace('APP SKULLE ROCKERA',map('APP','QGIS','SKULLE','GÖR')) → ’QGIS GÖR ROCKERA’

  • replace('fyrtiotvå',map('för','4','två','2','fyrtiotvå','42')) → ’42’

Ytterligare läsning: regexp_replace, array_replace

9.2.25.17. rpad

Returnerar en sträng som är utfylld till höger till den angivna bredden med hjälp av ett fyllnadstecken. Om målbredden är mindre än strängens längd, avkortas strängen.

Syntax

rpad(string, width, fill)

Argument

  • sträng - sträng att fylla i

  • bredd - längden på den nya strängen

  • fill - tecken att fylla ut det återstående utrymmet med

Exempel

  • rpad('Hello', 10, 'x') → ’Hellooxxxxx’

  • rpad('Hello', 3, 'x') → ’Hel’

För vidare läsning: lpad

9.2.25.18. rtrim

Tar bort den längsta strängen som bara innehåller de angivna tecknen (ett mellanslag som standard) från slutet av strängen.

Syntax

rtrim(string, [characters=’ ’])

[] markerar valfria argument

Argument

  • sträng - sträng som ska trimmas

  • tecken - tecken som ska trimmas

Exempel

  • rtrim(' hello world ') → ’ hello world’

  • rtrim('testxxzx', 'xyz') → ’test’

Ytterligare läsning: ltrim, trim

9.2.25.19. strpos

Returnerar den första matchande positionen för en delsträng i en annan sträng, eller 0 om delsträngen inte hittas.

Syntax

strpos(haystack, needle)

Argument

  • haystack - sträng som ska genomsökas

  • nål - sträng att söka efter

Exempel

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

Ytterligare läsning: regexp_match

9.2.25.20. substr

Returnerar en del av en sträng.

Syntax

substr(string, start, [length])

[] markerar valfria argument

Argument

  • sträng - den fullständiga inmatningssträngen

  • start - heltal som representerar startpositionen för att extrahera med början på 1; om start är negativ kommer retursträngen att börja i slutet av strängen minus startvärdet

  • length - heltal som representerar längden på den sträng som ska extraheras; om length är negativ kommer retursträngen att utelämna den angivna längden tecken från slutet av strängen

Exempel

  • substr('HELLO WORLD',3,5) → ’LLO W’

  • substr('HELLO WORLD',6) → ’ WORLD’

  • substr('HELLO WORLD',-5) → ’WORLD’

  • substr('HELLO',3,-1) → ’LL’

  • substr('HELLO WORLD',-5,2) → ’WO’

  • substr('HELLO WORLD',-5,-1) → ’WORL’

Ytterligare läsning: regexp_substr, regexp_matches

9.2.25.21. title

Konverterar alla ord i en sträng till title case (alla ord gemener med inledande versal).

Syntax

title(string)

Argument

  • sträng - strängen som ska konverteras till titelsak

Exempel

  • title('hello WOrld') → ’Hello World’

Ytterligare läsning: lower, upper

9.2.25.22. to_string

Konverterar ett tal till en sträng.

Syntax

to_string(number)

Argument

  • number - Heltal eller verkligt värde. Det tal som ska konverteras till sträng.

Exempel

  • to_string(123) → ’123’

Ytterligare läsning: format_number

9.2.25.23. trim

Tar bort alla inledande och avslutande blanksteg (mellanslag, tabbar etc.) från en sträng.

Syntax

trim(string)

Argument

  • sträng - sträng som ska trimmas

Exempel

  • trim(' hello world ') → ’hello world’

Ytterligare läsning: ltrim, rtrim

9.2.25.24. upper

Konverterar en sträng till stora bokstäver.

Syntax

upper(string)

Argument

  • sträng - strängen som ska konverteras till versaler

Exempel

  • upper('hello WOrld') → ’HELLO WORLD’

För vidare läsning: lower, title

9.2.25.25. wordwrap

Returnerar en sträng som är omslagen till ett maximalt/minimalt antal tecken.

Syntax

wordwrap(sträng, wrap_längd, [avgränsare_sträng])

[] markerar valfria argument

Argument

  • sträng - den sträng som ska omslutas

  • wrap_length - ett heltal. Om wrap_length är positivt representerar talet det ideala maximala antalet tecken som ska brytas; om det är negativt representerar talet det minsta antalet tecken som ska brytas.

  • delimiter_string - Valfri avgränsningssträng som ska brytas till en ny rad.

Exempel

  • wordwrap('UNIVERSITY OF QGIS',13) → ’UNIVERSITY OF<br>QGIS’

  • wordwrap('UNIVERSITY OF QGIS',-3) → ’UNIVERSITY<br>OF QGIS’

9.2.26. Användaruttryck

Den här gruppen innehåller de uttryck som sparats som user expressions.

9.2.27. Variabler

Den här gruppen innehåller dynamiska variabler som är relaterade till programmet, projektfilen och andra inställningar. Variablernas tillgänglighet beror på sammanhanget:

  • från dialogrutan expressionSelect Välj efter uttryck

  • från dialogrutan calculateField :sup:`Fältkalkylator

  • från dialogrutan för lageregenskaper

  • från trycklayouten

Om du vill använda dessa variabler i ett uttryck måste de föregås av tecknet @ (t.ex. @row_number).

Variable

Beskrivning

algorithm_id

Det unika ID:t för en algoritm

animation_end_time

Slut på animationens totala tidsintervall (som ett datetime-värde)

animation_interval

Varaktighet för animationens totala temporala tidsintervall (som ett intervallvärde)

animation_start_time

Början på animationens övergripande tidsintervall (som ett datetime-värde)

atlas_feature

Den aktuella atlasfunktionen (som funktionsobjekt)

atlas_featureid

Den aktuella atlasens funktion ID

atlas_featurenumber

Den aktuella atlasens funktionsnummer i layouten

atlas_filename

Aktuellt filnamn för atlasen

atlas_geometry

Den aktuella atlasens geometri

atlas_layerid

Atlasens aktuella täckningsskikts ID

atlas_layername

Det aktuella namnet på atlasens täckningsskikt

atlas_pagename

Den aktuella atlasens sidnamn

atlas_totalfeatures

Det totala antalet funktioner i atlas

band

Numret på bandet i rasterlagret

band_description

Beskrivningen av bandet i rasterlagret

band_name

Namnet på bandet i rasterlagret

canvas_cursor_point

Den senaste markörpositionen på duken i projektets geografiska koordinater

cluster_color

Färgen på symbolerna inom ett kluster, eller NULL om symbolerna har blandade färger

cluster_size

Antalet symboler som ingår i ett kluster

current_feature

Den funktion som för närvarande redigeras i attributformuläret eller tabellraden

current_geometry

Geometrin för den funktion som för närvarande redigeras i formuläret eller tabellraden

current_parent_feature

representerar den funktion som för närvarande redigeras i det överordnade formuläret. Kan endast användas i en inbäddad formulärkontext.

current_parent_geometry

representerar geometrin för den funktion som för närvarande redigeras i det överordnade formuläret. Endast användbar i en inbäddad formulärkontext.

form_mode

Vad formuläret används för, t.ex. AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode eller IdentifyMode som sträng.

feature

Den aktuella funktionen som utvärderas. Detta kan användas tillsammans med funktionen ”attribute” för att utvärdera attributvärden från den aktuella funktionen.

frame_duration

Tidsmässig varaktighet för varje animationsbild (som ett intervallvärde)

frame_number

Aktuellt bildnummer under uppspelning av animation

frame_rate

Antal bilder per sekund under uppspelning av animationer

fullextent_maxx

Maximalt x-värde från hela dukens utbredning (inklusive alla lager)

fullextent_maxy

Maximalt y-värde från hela dukens utsträckning (inklusive alla lager)

fullextent_minx

Minsta x-värde från hela dukens utsträckning (inklusive alla lager)

fullextent_miny

Minsta y-värde från hela dukens utsträckning (inklusive alla lager)

geometry

Geometrin för den aktuella funktionen som utvärderas

geometry_part_count

Antalet delar i geometrin för den återgivna funktionen

geometry_part_num

Det aktuella geometriska partnumret för objektet som återges

geometry_point_count

Antalet punkter i den renderade geometrins del

geometry_point_num

Det aktuella punktnumret i den renderade geometrins del

geometry_ring_num

Aktuellt geometriringnummer för objektet som renderas (endast för polygonobjekt). Den yttre ringen har ett värde på 0.

grid_axis

Aktuellt rutnäts annoteringsaxel (t.ex. ’x’ för longitud, ’y’ för latitud)

grid_number

Det aktuella värdet för rutnätets annotation

id

ID för den aktuella funktionen som utvärderas

item_id

Användar-ID för layoutobjektet (inte nödvändigtvis unikt)

item_uuid

Layoutobjektets unika ID

layer

Aktuella lagret

layer_crs

Det aktuella skiktets auktoritets-ID för koordinatsystemets referenssystem

layer_crs_ellipsoid

Det aktuella skiktets ellipsoid Authority ID CRS

layer_cursor_point

Punktgeometri under musens position i kartbilden (eller GetFeatureInfo-positionen i QGIS Server), i det aktiva skiktets CRS

layer_id

ID för aktuellt lager

layer_ids

ID:n för alla kartlager i det aktuella projektet i form av en lista

layer_name

Namnet på det aktuella lagret

layer_vertical_crs

Identifieraren för skiktets referenssystem för vertikala koordinater (t.ex. ”EPSG:5703”)

layer_vertical_crs_definition

Den fullständiga definitionen av skiktets vertikala referenssystem för koordinater

layer_vertical_crs_description

Namnet på skiktets vertikala referenssystem för koordinater

layer_vertical_crs_wkt

WKT-definitionen av det vertikala koordinatreferenssystemet för det aktuella lagret

layers

Alla kartlager i det aktuella projektet som en lista

layout_dpi

Kompositionens upplösning (DPI)

layout_name

Layoutens namn

layout_numpages

Antalet sidor i layouten

layout_page

Sidnumret för det aktuella objektet i layouten

layout_pageheight

Den aktiva sidhöjden i layouten (i mm för standardpappersstorlekar, eller den enhet som användes för anpassade pappersstorlekar)

layout_pageoffsets

Array av Y-koordinater för toppen av varje sida. Gör det möjligt att dynamiskt placera objekt på sidor i ett sammanhang där sidstorleken kan ändras

layout_pagewidth

Den aktiva sidbredden i layouten (i mm för standardpappersstorlekar, eller den enhet som användes för anpassade pappersstorlekar)

legend_column_count

Antal kolumner i teckenförklaringen

legend_filter_by_map

Anger om innehållet i teckenförklaringen filtreras av kartan

legend_filter_out_atlas

Anger om atlasen filtreras bort från teckenförklaringen

legend_split_layers

Anger om lager kan delas upp i teckenförklaringen

legend_title

Titeln på legenden

legend_wrap_string

Det eller de tecken som används för att omsluta legendtexten

map_crs

Den aktuella kartans referenssystem för koordinater

map_crs_acronym

Akronymen för den aktuella kartans koordinatreferenssystem

map_crs_definition

Den fullständiga definitionen av den aktuella kartans koordinatreferenssystem

map_crs_description

Namnet på den aktuella kartans referenssystem för koordinater

map_crs_ellipsoid

Akronymen för ellipsoiden i den aktuella kartans referenssystem för koordinater

map_crs_proj4

Proj4-definitionen av koordinatreferenssystemet för den aktuella kartan

map_crs_projection

Det beskrivande namnet på den projektionsmetod som används av kartans koordinatreferenssystem (t.ex. ”Albers Equal Area”)

map_crs_wkt

WKT-definitionen av den aktuella kartans referenssystem för koordinater

map_end_time

Slutet på kartans temporala tidsintervall (som ett datetime-värde)

map_extent

Den geometri som representerar kartans aktuella utbredning

map_extent_center

Punktfunktionen i mitten av kartan

map_extent_height

Kartans aktuella höjd

map_extent_width

Kartans aktuella bredd

map_id

ID för aktuell kartdestination. Detta kommer att vara ”canvas” för canvas-renderingar, och objekt-ID för layoutkartrenderingar

map_interval

Varaktigheten för kartans temporala tidsintervall (som ett intervallvärde)

map_layer_ids

Listan över kartskikts-ID:n som är synliga i kartan

map_layers

Listan över kartlager som är synliga i kartan

map_rotation

Kartans aktuella rotation

map_scale

Kartans aktuella skala

map_start_time

Början på kartans temporala tidsintervall (som ett datetime-värde)

map_units

Enheter för kartmätningar

map_z_range_lower

Lägsta höjden i kartans höjdintervall

map_z_range_upper

Övre höjden av kartans höjdintervall

model_path

Fullständig sökväg (inklusive filnamn) till den aktuella modellen (eller projektsökväg om modellen är inbäddad i ett projekt).

model_folder

Mapp som innehåller aktuell modell (eller projektmapp om modellen är inbäddad i ett projekt).

model_name

Namn på aktuell modell

model_group

Grupp för nuvarande modell

notification_message

Innehållet i det meddelande som skickas av leverantören (endast tillgängligt för åtgärder som utlöses av meddelanden från leverantören).

parent

Hänvisar till den aktuella funktionen i det överordnade lagret, vilket ger tillgång till dess attribut och geometri vid filtrering av en aggregate-funktion

plot_axis

Den associerade plotaxeln, t.ex. ”x” eller ”y”.

plot_axis_value

Det aktuella värdet för plotaxeln.

project_abstract

Projektets sammanfattning, hämtad från projektets metadata

project_area_units

Arealenheten för det aktuella projektet, används vid beräkning av geometrins area

project_author

Projektets författare, hämtat från projektets metadata

project_basename

Basnamnet på det aktuella projektets filnamn (utan sökväg och tillägg)

project_creation_date

Datum då projektet skapades, hämtat från projektets metadata

project_crs

Identifierare för projektets referenssystem för koordinater (t.ex. ”EPSG:4326”)

project_crs_arconym

Akronymen för projektets koordinatreferenssystem

project_crs_definition

Den fullständiga definitionen av projektets referenssystem för koordinater

project_crs_description

Beskrivning av projektets referenssystem för koordinater

project_crs_ellipsoid

Ellipsoiden för projektets koordinatreferenssystem

project_crs_proj4

Proj4-bilden av projektets koordinatreferenssystem

project_crs_wkt

WKT-representationen (välkänd text) av projektets koordinatreferenssystem

project_distance_units

Avståndsenheten för det aktuella projektet, används vid beräkning av geometrilängder och avstånd

project_ellipsoid

Namnet på ellipsoiden för det aktuella projektet, som används vid beräkning av geodetiska områden eller geometrilängder

project_filename

Filnamnet för det aktuella projektet

project_folder

Mappen för det aktuella projektet

project_home

Hemvägen för det aktuella projektet

project_identifier

Projektets identifierare, hämtad från projektets metadata

project_keywords

Projektets nyckelord, hämtade från projektets metadata

project_last_saved

Datum/tid när projektet senast sparades.

project_path

Den fullständiga sökvägen (inklusive filnamn) till det aktuella projektet

project_title

Titeln på det aktuella projektet

project_units

Enheterna i projektets CRS

project_vertical_crs

Identifierare för projektets referenssystem för vertikala koordinater (t.ex. ”EPSG:5703”)

project_vertical_crs_definition

Den fullständiga definitionen av projektets referenssystem för vertikala koordinater

project_vertical_crs_description

Beskrivning av projektets referenssystem för vertikala koordinater

project_vertical_crs_wkt

WKT (välkänd text)-representation av projektets vertikala koordinatreferenssystem

qgis_locale

Det aktuella språket i QGIS

qgis_os_name

Namnet på det aktuella operativsystemet, t.ex. ”windows”, ”linux” eller ”osx

qgis_platform

QGIS-plattformen, t.ex. ”desktop” eller ”server

qgis_release_name

Det aktuella namnet på QGIS-versionen

qgis_short_version

Den aktuella QGIS-versionen kort sträng

qgis_version

Den aktuella QGIS-versionens sträng

qgis_version_no

Det aktuella versionsnumret för QGIS

row_number

Lagrar numret på den aktuella raden

snapping_results

Ger tillgång till fotograferingsresultat när du digitaliserar ett objekt (endast tillgängligt i Add Feature)

scale_value

Det aktuella värdet för skalstapelns avstånd

selected_file_path

Vald filsökväg från filwidgetväljaren vid uppladdning av en fil med ett externt lagringssystem

symbol_angle

Vinkeln på den symbol som används för att återge objektet (gäller endast markörsymboler)

symbol_color

Färgen på den symbol som används för att rendera funktionen

symbol_count

Antalet funktioner som representeras av symbolen (i layoutlegenden)

symbol_frame

Bildnummer (endast för animerade symboler)

symbol_id

Symbolens interna ID (i layoutlegenden)

symbol_label

Symbolens etikett (antingen en användardefinierad etikett eller den autogenererade standardetiketten - i layoutlegenden)

symbol_layer_count

Totalt antal symbolskikt i symbolen

symbol_layer_index

Aktuellt symbolskiktsindex

symbol_marker_column

Kolumnnummer för markören (gäller endast för fyllning av punktmönster).

symbol_marker_row

Radnummer för markören (gäller endast för punktmönsterfyllningar).

user_account_name

Den aktuella användarens kontonamn i operativsystemet

user_full_name

Den aktuella användarens användarnamn för operativsystemet

value

Det aktuella värdet

vector_tile_zoom

Exakt zoomnivå för vektorplattor på den karta som återges (härledd från den aktuella kartskalan). Normalt i intervallet [0, 20]. Till skillnad från @zoom_level är denna variabel ett flyttalsvärde som kan användas för att interpolera värden mellan två heltalszoomnivåer.

with_variable

Gör det möjligt att ställa in en variabel för användning inom ett uttryck och undvika att samma värde räknas om flera gånger

zoom_level

Zoomnivå för vektorplattor för den karta som återges (härledd från den aktuella kartskalan). Normalt i intervallet [0, 20].

**Några exempel: **

  • Returnera X-koordinaten för ett kartobjekts centrum i layout:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Returnera, för varje funktion i det aktuella lagret, antalet överlappande flygplatsfunktioner:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Hämta objekt_id för den första snäppta punkten på en linje:

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

9.2.28. Senaste funktionerna

Denna grupp innehåller nyligen använda funktioner. Beroende på i vilket sammanhang den används (funktionsval, fältkalkylator, generisk) läggs nyligen använda uttryck till i motsvarande lista (upp till tio uttryck), sorterade från mer till mindre aktuella. Detta gör det enkelt att snabbt hämta och återanvända tidigare använda uttryck.