Importante

A tradução é um esforço comunitário você pode contribuir. Esta página está atualmente traduzida em 95.04%.

13.2. Lista de funções

As funções, operadores e variáveis disponíveis no QGIS estão listadas abaixo, agrupadas por categorias.

13.2.1. Funções de Agregação

Este grupo contém funções que agregam valores em camadas e campos.

13.2.1.1. aggregate

Retorna um valor agregado calculado usando feições de outra camada.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • layer - uma string, representando um nome de camada ou um ID de camada

  • aggregate - uma string correspondente à agregação a ser calculada. As opções válidas são:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: primeiro quartil

    • q3:terceiro quartil

    • iqr: intervalo interquartil

    • min_length: comprimento mínimo da string

    • max_length: comprimento máximo da string

    • concatenate: unir strings com um concatenador

    • concatenate_unique: junte strings únicas com um concatenador

    • collect: cria uma geometria multiparte agregada

    • array_agg: cria um array de valores agregados

  • expression - sub expressão ou nome do campo para agregar

  • filter - expressão de filtro opcional para limitar as feições usados ​​para calcular a agregação. Campos e geometria são das feições na camada unida. A feição de origem pode ser acessado com a variável @parent.

  • concatenator - string opcional a ser usada para unir valores nas agregações ‘concatenate’ e ‘concatenate_unique’

  • order_by - expressão de filtro opcional para ordenar as feições usadas ​​para calcular o agregado. Campos e geometria são as das feições da camada unida. Por padrão, as feições serão retornadas em uma ordem não especificada.

Exemplos

  • aggregate(layer:='estações_ferroviárias',aggregate:='sum',expression:="passageiros") → soma de todos os valores do campo de passageiros na camada estações_ferroviárias

  • aggregate('estações_ferroviárias','sum', "passageiros"/7) → calcula uma média diária de “passageiros” dividindo o campo “passageiros” por 7 antes de somar os valores

  • aggregate(layer:='estações_ferroviárias',aggregate:='sum',expression:="passageiros",filter:="classe">3) → soma todos os valores do campo “passageiros” das feições onde o atributo “classe” é maior que 3 apenas

  • aggregate(layer:='estações_ferroviárias',aggregate:='concatenate,expression:="nome",concatenator:'.') → lista separada por vírgulas do campo de nome para todas as feições na camada estações_ferroviárias

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( @geometry, geometry(@parent) ) ) → The country code of an intersecting country on the layer ‘countries’

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, @geometry ) ) → sum of all values from the passengers field in the rail_stations within the current atlas feature

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid(@geometry), filter:="region_name" = attribute(@parent,'name') ) → aggregates centroid geometries of the rail_stations of the same region as current feature

13.2.1.2. array_agg

Retorna um array de valores agregados de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

  • order_by - expressão opcional a ser usada para ordenar feições usadas ​​para calcular a agregação. Por padrão, as feições serão devolvidas em uma ordem não especificada.

Exemplos

  • array_agg("nome",group_by:="estado") → lista de valores de name, agrupados por campo state

13.2.1.3. collect

Retorna a geometria multipartes de geometrias agregadas de uma expressão

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expressão - expressão geométrica para agregar

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • collect( @geometry ) → multipart geometry of aggregated geometries

  • collect( centroid(@geometry), group_by:="region", filter:= "use" = 'civilian' ) → aggregated centroids of the civilian features based on their region value

13.2.1.4. concatenate

Retorna todas as strings agregadas de um campo ou expressão unidas por um delimitador.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

  • concatenator - string opcional a ser usada para unir valores. Vazio por padrão.

  • order_by - expressão opcional a ser usada para ordenar feições usadas ​​para calcular a agregação. Por padrão, as feições serão devolvidas em uma ordem não especificada.

Exemplos

  • concatenate("tow_name",group_by:="state", concatenator:=',') → lista separada por vírgulas de town_name, agrupadas pelo campo de state

13.2.1.5. concatenate_unique

Retorna todas as strings exclusivas de um campo ou expressão unidas por um delimitador.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

  • concatenator - string opcional a ser usada para unir valores. Vazio por padrão.

  • order_by - expressão opcional a ser usada para ordenar feições usadas ​​para calcular a agregação. Por padrão, as feições serão devolvidas em uma ordem não especificada.

Exemplos

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → lista separada por vírgulas de town_name exclusivos, agrupados pelo campo state

13.2.1.6. count

Retorna a contagem de feições correspondentes.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • count("stations",group_by:="status") → contagem de stations, agrupadas pelo campo state

13.2.1.7. count_distinct

Retorna a contagem de valores distintos.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • count_distinct("stations",group_by:="state") → contagem dos valores de stations distintos, agrupados pelo campo state

13.2.1.8. count_missing

Retorna a contagem de valores ausentes (NULL).

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • count_missing("stations",group_by:="state") → contagem dos valores faltantes (NULL) de stations. agrupados pelo campo state

13.2.1.9. iqr

Retorna o intervalo interquartil calculado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • iqr("population",group_by:="state") → intervalo inter quartil dos valores em population, agrupados pelo campo state

13.2.1.10. majority

Retorna a maioria agregada dos valores (o valor mais comum) de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • majority("class", group_by:="state") → valor de class mais comum, agrupado pelo campo state

13.2.1.11. max_length

Retorna o comprimento máximo de strings de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • max_length("town_name",group_by:="state") → tamanho máximo de town_name, agrupado pelo campo state

13.2.1.12. maximum

Retorna o valor máximo agregado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • maximum("population",group_by:="state") → valor máximo em population, agrupado pelo campo state

13.2.1.13. mean

Retorna o valor médio agregado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • mean("population",group_by:="state") → mediana dos valores em population, agrupados pelo campo state

13.2.1.14. median

Retorna o valor médio agregado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • median("population",group_by:="state") → mediana dos valores em population, agrupado pelo campo state

13.2.1.15. min_length

Retorna o comprimento mínimo de strings de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • min_length("town_name",group_by:="state") → menor tamanho de town_name, agrupado pelo campo state

13.2.1.16. minimum

Retorna o valor mínimo agregado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • minimum("population",group_by:="state") → valor mínimo de population, agrupado pelo campo state

13.2.1.17. minority

Retorna a minoria agregada de valores (valor de menor ocorrência) de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • minority("class",group_by:="state") → valor de menor ocorrência em class, agrupado pelo campo state

13.2.1.18. q1

Retorna o primeiro quartil calculado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • q1("population",group_by:="state") → primeiro quartil do valor population, agrupado pelo campo state

13.2.1.19. q3

Retorna o terceiro quartil calculado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • q3("population",group_by:="state") → terceiro quartil do valor population agrupado pelo campo estado

13.2.1.20. range

Retorna o intervalo agregado de valores (máximo - mínimo) de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • range("population",group_by:="state") → range de valores da população agrupados pelo campo estado

13.2.1.21. relation_aggregate

Retorna um valor agregado calculado usando todas as feições filhas que coincidirem com a relação da camada.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • relation - uma strinng, representando o ID da relação

  • aggregate - uma string correspondente à agregação a ser calculada. As opções válidas são:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: primeiro quartil

    • q3:terceiro quartil

    • iqr: intervalo interquartil

    • min_length: comprimento mínimo da string

    • max_length: comprimento máximo da string

    • concatenate: unir strings com um concatenador

    • concatenate_unique: junte strings únicas com um concatenador

    • collect: cria uma geometria multiparte agregada

    • array_agg: cria um array de valores agregados

  • expression - sub expressão ou nome do campo para agregar

  • concatenator - string opcional a ser usada para unir valores para agregação ‘concatenar’

  • order_by - expressão opcional para ordenação das feições usadas no cálculo da agregação. Campos e geometria são provenientes das feições da camada unida. Por padrão, as feições serão retornadas sem ordem específica.

Exemplos

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → valor médio de todas feições filhas encontradas utilizando a relação ‘my_relation’

  • relation_aggregate('my_relation','sum', "passengers"/7) → soma do campo passengers divididos por 7 para todas as feições filhas usando a relação ‘my_relation’

  • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → lista separada por vírgulas do campo towns para todas as camadas filhas encontradas utilizando a relação ‘my_relation’

  • relation_aggregate('my_relation','array_agg', "id") → array do campo id de todas as feições filhas encontradas usando a relação ‘my_relation’

Leitura adicional: Setting relations between multiple layers

13.2.1.22. stdev

Retorna o valor agregado do desvio padrão de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • stdev("population",group_by:="state") → desvio padrão do valor em population, agrupado pelo campo state

13.2.1.23. sum

Retorna o valor somado agregado de um campo ou expressão.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • expression - sub expressão do campo a ser agregado

  • group_by - expressão opcional a ser usada para agrupar cálculos agregados

  • filter - expressão opcional a ser usada para filtrar feições usadas ​​para calcular a agregação

Exemplos

  • sum("population",group_by:="state") → soma dos valores population, agrupados pelo campo state

13.2.2. Funções de Array

Este grupo contém funções para criar e manipular arrays (também conhecidas como estruturas de dados da lista). A ordem dos valores no array é importante, diferentemente da ‘map’ data structure, onde a ordem dos pares chave-valor é irrelevante e os valores são identificados por suas chaves.

13.2.2.1. array

Retorna um array contendo todos os valores passados como parâmetros.

Sintaxe

matriz(valor1, valor2, …)

Argumentos

  • valor - um valor

Exemplos

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

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

13.2.2.2. array_all

Retorna VERDADEIRO se um array contiver todos os valores de um dado array.

Sintaxe

array_all(array_a, array_b)

Argumentos

  • matriz_a - uma matriz

  • array_b - o array de valores a procurar

Exemplos

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

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

13.2.2.3. array_append

Retorna uma matriz com o valor fornecido adicionado no final.

Sintaxe

array_append(array, value)

Argumentos

  • array - um array

  • value - o valor a ser adicionado

Exemplos

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

13.2.2.4. array_cat

Retorna um array com todos os arrays informados concatenados.

Sintaxe

array_cat(array1, array2, …)

Argumentos

  • array - um array

Exemplos

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

13.2.2.5. array_contains

Retorna VERDADEIRO se um array contém o valor informado.

Sintaxe

array_contains(array, value)

Argumentos

  • array - um array

  • value - valor a pesquisar

Exemplos

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

13.2.2.6. array_count

Conta o número de ocorrências de um determinado valor em um array.

Sintaxe

array_count(array, value)

Argumentos

  • array - um array

  • value - o valor a ser contado

Exemplos

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

13.2.2.7. array_distinct

Retorna um array contendo valores distintos do array fornecido.

Sintaxe

array_distinct(array)

Argumentos

  • array - um array

Exemplos

  • matriz_distinta(matriz(1,2,3,2,1)) → [ 1, 2, 3 ]

13.2.2.8. array_filter

Retorna um array com apenas os itens para os quais a expressão é avaliada como verdadeira.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • array - um array

  • expression - uma expressão a ser aplicada em cada item. A variável @element será substituída pelo valor atual

  • limit - número máximo de elementos a serem retornados. Use 0 para retornar todos os valores.

Exemplos

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

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

13.2.2.9. array_find

Retorna o menor index (0 para o primeiro) do valor dentro de um array. Retorna -1 se o valor não for encontrado.

Sintaxe

array_find(array, value)

Argumentos

  • array - um array

  • value - valor a pesquisar

Exemplos

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

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

13.2.2.10. array_first

Retorna o primeiro valor de um array.

Sintaxe

array_first(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.11. array_foreach

Retorna um array com a expressão aplicada em cada item.

Sintaxe

array_foreach(array, expression)

Argumentos

  • array - um array

  • expression - uma expressão a ser aplicada em cada item. A variável @element será substituída pelo valor atual

Exemplos

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

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

13.2.2.12. array_get

Retorna o enésimo (N) valor (0 para o primeiro) ou ultimo -enésimo valor (-1 para o último) de um array.

Sintaxe

array_get(array, pos)

Argumentos

  • array - um array

  • pos - índice a ser acessado (baseado em 0)

Exemplos

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

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

Dica

Você pode usar também o operador de índice ([]) para pegar um valor de um array.

13.2.2.13. array_insert

Retorna um array com o valor fornecido adicionado na posição especificada.

Sintaxe

array_insert(array, pos, value)

Argumentos

  • array - um array

  • pos - posição onde adicionar (baseado em 0)

  • value - o valor a ser adicionado

Exemplos

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

13.2.2.14. array_intersect

Retorna VERDADEIRO se pelo menos um elemento do array1 existe no array2.

Sintaxe

array_intersect(array1, array2)

Argumentos

  • array1 - um array

  • array2 - outro array

Exemplos

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

13.2.2.15. array_last

Retorna o último valor de um array.

Sintaxe

array_last(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.16. array_length

Retorna o número de elementos de um array.

Sintaxe

array_length(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.17. array_majority

Retorna os valores mais comuns em um array.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • array - um array

  • option=’all’ - uma string especificando o tratamento dos valores retornados. As opções válidas são:

    • todos: Por padrão, todos os valores mais comuns são devolvidos em um array.

    • qualquer: Retorna um dos valores mais comuns.

    • median: Retorna a mediana dos valores mais comuns. Os valores não aritméticos são ignorados.

    • real_majority: Retorna o valor que ocorre em mais da metade do tamanho do array.

Exemplos

  • 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

13.2.2.18. array_max

Retorna o valor máximo de um array.

Sintaxe

array_max(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.19. array_mean

Retorna a média dos valores aritméticos de um array. Valores não numéricos no array são ignorados.

Sintaxe

array_mean(array)

Argumentos

  • array - um array

Exemplos

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

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

13.2.2.20. array_median

Retorna a mediana dos valores aritméticos de um array. Valores não aritméticos no array são ignorados.

Sintaxe

array_median(array)

Argumentos

  • array - um array

Exemplos

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

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

13.2.2.21. array_min

Retorna o valor mínimo de um array.

Sintaxe

array_min(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.22. array_minority

Retorna os valores menos comuns de um array.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • array - um array

  • option=’all’ - uma string especificando o tratamento dos valores retornados. As opções válidas são:

    • all: Padrão, todos os valores menos comuns são retornados em um array.

    • any: Retorna um dos valores menos comuns.

    • median: Retorna a mediana dos valores menos comuns. Valores não aritméticos são ignorados.

    • real_minority: Rentorna os valores com ocorrência menor que a metade do tamanho do array.

Exemplos

  • 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 ]

13.2.2.23. array_prepend

Retorna um array com o valor informado inserido no início.

Sintaxe

array_prepend(array, value)

Argumentos

  • array - um array

  • value - o valor a ser adicionado

Exemplos

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

13.2.2.24. array_prioritize

Retorna um array ordenado utilizando a ordenação especificada em outro array. Os valores que estiverem presentes no primeiro array mas faltam no segundo array serão inseridos no final do resultado.

Sintaxe

array_prioritize(array, array_prioritize)

Argumentos

  • array - um array

  • array_prioritize - an array with values ordered by priority

Exemplos

  • 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 ]

13.2.2.25. array_remove_all

Retorna um array com todas as entradas do valor informado removidas.

Sintaxe

array_remove_all(array, value)

Argumentos

  • array - um array

  • value - os valores a serem removidos

Exemplos

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

13.2.2.26. array_remove_at

Retorna um array com o item no índice informado removido. Suporta indice positivo (0 para o primeiro elemento) e negativo (o ultimo -enésimo valor, -1 para o ultimo elemento).

Sintaxe

array_remove_at(array, pos)

Argumentos

  • array - um array

  • pos - posição a ser removida (baseado em 0)

Exemplos

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

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

13.2.2.27. array_replace

Retorna um array com o valor fornecido, array, ou um map dos valores substituídos.

Value & variant do array

Retorna um array com o valor fornecido ou array dos valores substituídos por outro valor ou um array de valores

Sintaxe

array_replace(array, before, after)

Argumentos

  • array - array de entrada

  • before - o valor ou matriz de valores a serem substituídos

  • after - o valor ou matriz de valores a serem usados como substituição

Exemplos

  • 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’, ‘-’ ]

Variação por mapeamento

Retorna um array com as chaves do map fornecido substituído pelo valores pareados.

Sintaxe

array_replace(array, map)

Argumentos

  • array - array de entrada

  • map - map que contém chaves e valores

Exemplos

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

13.2.2.28. array_reverse

Retorna a matriz fornecida com valores da matriz na ordem inversa.

Sintaxe

array_reverse(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.29. array_slice

Retorna uma parcela do array, O fatiamento é definido pelos argumentos start_pos e end_pos.

Sintaxe

array_slice(array, start_pos, end_pos)

Argumentos

  • array - um array

  • start_pos - o index da posição inicial da fatia (baseada em 0). O índice strart_pos é incluido na fatia. Se você usar um start_pos negativo, o índice será contado a partir do final da lista (baseado em -1).

  • end_pos - O índice da posição final da fatia (base 0). O índice endo_pos é incluido na fatia. Se você usar um endo_pos negativo, o índice é contato a partir do final da lista (base -1)

Exemplos

  • 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’ ]

13.2.2.30. array_sort

Retorna o array fornecido com os elementos ordenados.

Sintaxe

array_sort(array, [ascending=true])

[] indica argumentos opcionais

Argumentos

  • array - um array

  • ascending - defina esse parâmetro para false para ordenar o array na ordem decrescente.

Exemplos

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

13.2.2.31. array_sum

Retorna a soma dos valores aritméticos em uma array. Valores não numéricos na array são ignorados.

Sintaxe

array_sum(array)

Argumentos

  • array - um array

Exemplos

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

13.2.2.32. array_to_string

Contatena os elementos do array em uma string separada pelo delimitador e utilizando uma string opcional para valores vazios.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • array - array de entrada

  • delimiter - string delimitadora usada para separar os elementos concatenados

  • empty_value - string opcional a ser usada em substituição para correspondências vazias (tamanho 0)

Exemplos

  • 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’

13.2.2.33. generate_series

Cria uma array contendo uma sequência de números.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • start - primeiro valor da sequência

  • stop - valor que termina a sequência uma vez alcançada

  • step - valor usado como incremento entre valores

Exemplos

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

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

13.2.2.34. geometries_to_array

Divide a geometria em geometrias mais simples em um array.

Sintaxe

geometries_to_array(geometry)

Argumentos

  • geometry - geometria de entrada

Exemplos

  • geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))')) → um array de geometrias com um polígono e uma linha.

  • 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))')) → um array com duas geometrias de polígonos

13.2.2.35. regexp_matches

Retorna um array de todas as strings capturadas pelos grupos de captura, na ordem em que os próprios grupos aparecem na expressão regular fornecida em relação a uma string.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string para capturar grupos em relação a expressão regular

  • regex - expressão regular para os grupos de captura

  • empty_value - string opcional a ser usada em substituição para correspondências vazias (tamanho 0)

Exemplos

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

  • regexp_matches('key=>','(.*)=>(.*)','empty value') → [ ‘key’, ‘empty value’ ]

13.2.2.36. string_to_array

Divide a string em um array usando o delimitador fornecido e string opcional fornecida para valores vazios,

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string de entrada

  • delimiter - string delimitadora utilizada para dividir a string de entrada

  • empty_value - string opcional a ser usada em substituição para correspondências vazias (tamanho 0)

Exemplos

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

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

13.2.3. Funções de Cor

Este grupo contém funções para manipulação de cores.

13.2.3.1. color_cmyk

Retorna uma representação em string de uma cor com base em seus componentes ciano, magenta, amarelo e preto

Sintaxe

color_cmyk(cyan, magenta, yellow, black)

Argumentos

  • cyan - componente ciano da cor, como um valor percentual inteiro de 0 a 100

  • magenta - componente magenta da cor, como um valor percentual inteiro de 0 a 100

  • yellow - componente amarelo da cor, como um valor percentual inteiro de 0 a 100

  • balck - componente preto da cor, como um valor percentual inteiro de 0 a 100

Exemplos

  • color_cmyk(100,50,0,10) → ‘0,115,230’

13.2.3.2. color_cmyka

Retorna uma representação em string de uma cor com base em seus componentes ciano, magenta, amarelo, preto e alfa (transparência)

Sintaxe

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

Argumentos

  • cyan - componente ciano da cor, como um valor percentual inteiro de 0 a 100

  • magenta - componente magenta da cor, como um valor percentual inteiro de 0 a 100

  • yellow - componente amarelo da cor, como um valor percentual inteiro de 0 a 100

  • balck - componente preto da cor, como um valor percentual inteiro de 0 a 100

  • alpha - componente alpha como um valor inteiro a partir do 0 (completamente transparente) até 255 (opaco)

Exemplos

  • color_cmyka(100,50,0,10,200) → ‘0,115,230,200’

13.2.3.3. color_grayscale_average

Aplica um filtro de escala cinza e retorna uma representação em string de uma cor fornecida.

Sintaxe

color_grayscale_average(color)

Argumentos

  • color - uma string de cor

Exemplos

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

13.2.3.4. color_hsl

Retorna uma representação em string de uma cor com base em seus atributos de matiz, saturação e luminosidade.

Sintaxe

color_hsl(hue, saturation, lightness)

Argumentos

  • hue - matiz da cor, um valor inteiro de 0 a 360

  • saturation - porcentagem de saturação da cor como um valor inteiro de 0 a 100

  • lightness - porcentagem de luminosidade da cor como um valor inteiro de 0 a 100

Exemplos

  • color_hsl(100,50,70) → ‘166,217,140’

13.2.3.5. color_hsla

Retorna uma representação em string de uma cor com base em seus atributos de matiz, saturação, brilho e alfa (transparência)

Sintaxe

color_hsla(hue, saturation, lightness, alpha)

Argumentos

  • hue - matiz da cor, um valor inteiro de 0 a 360

  • saturation - porcentagem de saturação da cor como um valor inteiro de 0 a 100

  • lightness - porcentagem de luminosidade da cor como um valor inteiro de 0 a 100

  • alpha - componente alpha como um valor inteiro a partir do 0 (completamente transparente) até 255 (opaco)

Exemplos

  • color_hsla(100,50,70,200) → ‘166,217,140,200’

13.2.3.6. color_hsv

Retorna uma representação em string de uma cor baseada na sua matiz, saturação e valores dos atributos.

Sintaxe

color_hsv(hue, saturation, value)

Argumentos

  • hue - matiz da cor, um valor inteiro de 0 a 360

  • saturation - porcentagem de saturação da cor como um valor inteiro de 0 a 100

  • value - porcentagem do valor da cor como um número inteiro de 0 a 100

Exemplos

  • color_hsv(40,100,100) → ‘255,170,0’

13.2.3.7. color_hsva

Retorna uma representação em string de uma cor com base em seus atributos de matiz, saturação, valor e alfa (transparência).

Sintaxe

color_hsva(hue, saturation, value, alpha)

Argumentos

  • hue - matiz da cor, um valor inteiro de 0 a 360

  • saturation - porcentagem de saturação da cor como um valor inteiro de 0 a 100

  • value - porcentagem do valor da cor como um número inteiro de 0 a 100

  • alfa - componente alfa como um valor inteiro de 0 (completamente transparente) a 255 (opaco)

Exemplos

  • color_hsva(40,100,100,200) → ‘255,170,0,200’

13.2.3.8. color_mix_rgb

Returns a string representing a color mixing the red, green, blue, and alpha values of two provided colors based on a given ratio.

Sintaxe

color_mix_rgb(color1, color2, ratio)

Argumentos

  • color1 - a color string

  • color2 - a color string

  • ratio - a ratio

Exemplos

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

13.2.3.9. color_part

Retorna um componente específico de uma string de cores, por exemplo, o componente vermelho ou o componente alfa.

Sintaxe

color_part(color, component)

Argumentos

  • color - uma string de cor

  • component - uma string correspondente com o componente da cor a retornar. As opções válidas são:

    • red: componente vermelho RGB (0-255)

    • green: componente verde RGB (0-255)

    • blue: componente azul RGB (0-255)

    • alfa: valor alfa (transparência) (0-255)

    • hue: matiz HSV (0-360)

    • saturation: saturação HSV (0-100)

    • value: valor HSV (0-100)

    • hsl_hue: HSL hue (0-360)

    • hsl_saturation: saturação HSL (0-100)

    • lightness: luminosidade HSL (0-100)

    • cyan: ciano componente CMYK (0-100)

    • magenta: componente magenta CMYK (0-100)

    • yellow: componente amarelo CMYK (0-100)

    • black: componente preto CMYK (0-100)

Exemplos

  • color_part('200,10,30','green') → 10

13.2.3.10. color_rgb

Retorna uma representação em string de uma cor baseada em seus componentes vermelho, verde e azul.

Sintaxe

color_rgb(red, green, blue)

Argumentos

  • red - componente vermelho como um valor inteiro de 0 a 255

  • verde - componente verde como um valor inteiro de 0 a 255

  • blue - componente azul como um valor inteiro de 0 a 255

Exemplos

  • color_rgb(255,127,0) → ‘255,127,0’

13.2.3.11. color_rgba

Retorna uma representação em string de uma cor baseada em seus componentes vermelho, verde, azul e alpha (transparência).

Sintaxe

color_rgba(red, green, blue, alpha)

Argumentos

  • red - componente vermelho como um valor inteiro de 0 a 255

  • verde - componente verde como um valor inteiro de 0 a 255

  • blue - componente azul como um valor inteiro de 0 a 255

  • alpha - componente alpha como um valor inteiro a partir do 0 (completamente transparente) até 255 (opaco)

Exemplos

  • color_rgba(255,127,0,200) → ‘255,127,0,200’

13.2.3.12. create_ramp

Retorna um rampa gradiente a partir de um mapa de cores e passos.

Sintaxe

create_ramp(map, [discrete=false])

[] indica argumentos opcionais

Argumentos

  • map - um mapa de string de cores e passos

  • discrete - defina esse parâmetro para true para criar uma rampa de cor discreta

Exemplos

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

13.2.3.13. darker

Retorna uma string de cor mais escura (ou mais clara)

Sintaxe

darker(color, factor)

Argumentos

  • color - uma string de cor

  • factor - um inteiro correspondente ao fator de escurecimento:

    • se o fator for maior que 100, esta função retornará uma cor mais escura (por exemplo, definir o fator para 200 retornará uma cor com metade do brilho);

    • se o fator for menor que 100, a cor de retorno é mais clara, mas é recomendado usar a função lighter() para este fim;

    • se o fator for 0 ou negativo, o valor de retorno não será especificado.

Exemplos

  • darker('200,10,30', 200) → ‘100,5,15,255’

Leitura adicional: lighter

13.2.3.14. lighter

Retorna uma string de cor mais clara (ou mais escura)

Sintaxe

lighter(color, factor)

Argumentos

  • color - uma string de cor

  • factor - um iinteiro correspondente ao fator de clareamento:

    • se o fator for maior que 100, esta função retornará uma cor mais clara (por exemplo, definir o fator para 150 retornará uma cor 50% mais clara);

    • se o fator for menor que 100, a cor de retorno é mais escura, mas é recomendado usar a função darker() para este fim;

    • se o fator for 0 ou negativo, o valor de retorno não será especificado.

Exemplos

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

Leitura adicional: darker

13.2.3.15. project_color

Retorna uma cor do esquema de cores do projeto.

Sintaxe

project_color(name)

Argumentos

  • name - um nome de cor

Exemplos

  • project_color('Logo color') → ‘20,140,50’

Leitura adicional: configurando cores do projeto

13.2.3.16. ramp_color

Retorna uma representação em string de uma rampa de cores.

Variante de rampa salva

Retorna uma representação em string de uma cor a partir de uma rampa salva

Sintaxe

ramp_color(ramp_name, value)

Argumentos

  • ramp_name - the name of the color ramp as a string, for example ‘Spectral’

  • value - posição na rampa para selecionar a cor a partir de um número real entre 0 e 1

Exemplos

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

Nota

As rampas de cores podem variar entre as instalações do QGIS. Esta função pode não retornar o resultado esperado se você mudar seu projeto QGIS entre instalações.

Variante de rampa criada por expressão

Retorna uma representação em string de uma cor a partir de uma rampa criada por expressão

Sintaxe

ramp_color(ramp, value)

Argumentos

  • ramp - a rampa de cor

  • value - posição na rampa para selecionar a cor a partir de um número real entre 0 e 1

Exemplos

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

Leitura adicional: Setting a Color Ramp, The color ramp drop-down shortcut

13.2.3.17. set_color_part

Define um componente de cor específico para uma sttring cores, por exemplo, o componente vermelho ou o componente alfa.

Sintaxe

set_color_part(color, component, value)

Argumentos

  • color - uma string de cor

  • component - uma string correspondente ao componente da cor a ser definida, As opções válidas são:

    • red: componente vermelho RGB (0-255)

    • green: componente verde RGB (0-255)

    • blue: componente azul RGB (0-255)

    • alfa: valor alfa (transparência) (0-255)

    • hue: matiz HSV (0-360)

    • saturation: saturação HSV (0-100)

    • value: valor HSV (0-100)

    • hsl_hue: HSL hue (0-360)

    • hsl_saturation: saturação HSL (0-100)

    • lightness: luminosidade HSL (0-100)

    • cyan: ciano componente CMYK (0-100)

    • magenta: componente magenta CMYK (0-100)

    • yellow: componente amarelo CMYK (0-100)

    • black: componente preto CMYK (0-100)

  • value - novo valor do componente da cor, respeitando os intervalos listados acima

Exemplos

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

13.2.4. Funções Condicionais

Este grupo contém funções para lidar com verificações condicionais em expressões.

13.2.4.1. CASE

CASE é utilizado para verificar uma série de condições e retornar o resultado para a primeira condição que atender. As condições são verificadas sequencialmente, e se uma condição for verdadeira, a verificação para, e o valor correspondente é retornado, Se nenhuma condição for verdadeira, o valor na cláusula ELSE é retornada. No entanto, se nenhuma cláusula ELSE for declarada e nenhuma das condições forem atendidas, NULL é retornado.

CASE

WHEN condição THEN resultado

[ …n ]

[ ELSE resultado ]

END

[] indica componentes opcionais

Argumentos

  • WHEN condição - Uma expressão de condição para avaliar

  • THEN resultado - Se a condição for avaliada como Verdadeira, então resultado será avaliado e retornado.

  • ELSE resultado - Se nenhuma das condições acima for avaliada como Verdadeiro, o resultado será avaliado e retornado.

Exemplos

  • CASE WHEN "name" IS NULL THEN 'None' END → Retorna a sintring ‘None’ se o campo “name” for NULL

  • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → Retorna a string ‘Big property’ se a área for maior que 10000, ‘Medium property’ se a área estiver entre 5000 e 10000, e ‘Small property’ para as outras

13.2.4.2. coalesce

Retorna o primeiro valor não NULO da lista de expressões.

Esta função pode receber qualquer número de argumentos.

Sintaxe

coalesce(expression1, expression2, …)

Argumentos

  • expression - qualquer expressão ou valor válido, independentemente do tipo.

Exemplos

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

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

  • coalesce("fieldA", "fallbackField", 'ERROR') → valor do campo fieldA se ele for não-NULL se não o valor de “fallbackField” ou a string ‘ERROR’ se ambos forem NULL

13.2.4.3. if

Testa uma condição e retorna um resultado diferente dependendo da verificação condicional.

Sintaxe

if(condition, result_when_true, result_when_false)

Argumentos

  • condition - a condição que deve ser verificada

  • result_when_true - resultado que será retornado quando a condição for verdadeira ou outro valor que não seja falso.

  • result_when_false - resultado a ser retornado quando a condição for falsa ou outro valor que seja falso como o 0 ou ‘’. NULL também é convertido para falso.

Exemplos

  • if( 1+1=2, 'Sim', 'Não' ) → ‘Sim’

  • if( 1+1=3, 'Sim', 'Não' ) → ‘Não’

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

  • if( '', verdadeiro (não está vazio)', falso (vazio )`) → ‘é falso (vazio)’

  • if( ' ',  verdadeiro (não está vazio)', falso (vazio )`) → ‘é verdadeiro (não está vazio)’

  • if( 0, 'Um', 'Zero' ) → ‘Zero’

  • if( 10, 'Um', 'Zero' ) → ‘Um’

13.2.4.4. nullif

Retorna um valor NULL se value1 for igual ao value2; caso contrário irá retornar value1. Isso pode ser usado para substituir valores condicionalmente por NULL.

Sintaxe

nullif(value1, value2)

Argumentos

  • value1 - O valor que deve ser usado ou substituído por NULO.

  • value2 - O valor de controle que acionará a substituição NULO.

Exemplos

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

  • nullif('text', '(none)') → ‘text’

  • nullif("name", '') → NULL, se name for uma string vazia (ou já NULL), ou name em qualquer outro caso.

13.2.4.5. regexp_match

Retorna a primeira posição que corresponda com a expressão regular em uma string unicode, ou 0 se a sub string não for encontrada.

Sintaxe

regexp_match(input_string, regex)

Argumentos

  • input_string - a string a ser usada contra a expressão regular

  • regex - A expressão regular a ser testada contra a string, os caracteres de barra invertida precisam ser escapados (Ex., “\\s” para combinar com espaço em branco ou “\\b” para corresponder a um limite de palavra).

Exemplos

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

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

13.2.4.6. try

Testa uma expressão e retorna seu valor se não tiver erros. Se a expressão retornar algum erro, um valor alternativo será retornado quando fornecido, caso contrário a função retornará NULL.

Sintaxe

try(expression, [alternative])

[] indica argumentos opcionais

Argumentos

  • expression - expressão que deve ser executada

  • alternative - o resultado que será retornado se a expressão retornar um erro.

Exemplos

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

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

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

13.2.5. Funções de Conversão

Este grupo contém funções para conversão de um tipo de dado em outro (ex.: string de/para inteiro, binário de/para string, string para data, …).

13.2.5.1. from_base64

Decodifica uma string codificada em Base64 em um valor binário.

Sintaxe

from_base64(string)

Argumentos

  • string - a cadeia a ser decodificada

Exemplos

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

13.2.5.2. hash

Cria uma hash de uma string fornecida com um determinado método. Um byte (8 bits) é representado por dois “dígitos” hexadecimais, então ‘md4’ (16 bytes) gera uma string hexadecimal de 16 * 2 = 32 caracteres de extensão e ‘keccak_512’ (64 bytes) gera uma string hexadecimal de 64 * 2 = 128 caracteres de extensão.

Sintaxe

hash(string, method)

Argumentos

  • string - string para transformar em hash

  • method - O método hash entre ‘md4’, ‘md5’, ‘sha1’, ‘sha224’, ‘sha384’, ‘sha512’, ‘sha3_224’, ‘sha3_256’, ‘sha3_384’, ‘sha3_512’, ‘keccak_224’, ‘keccak_256’, ‘keccak_384’, ‘keccak_512’

Exemplos

  • 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’

13.2.5.3. md5

Cria uma hash md5 de uma string.

Sintaxe

md5(string)

Argumentos

  • string - string para transformar em hash

Exemplos

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

13.2.5.4. sha256

Cria uma hash sha256 de uma string.

Sintaxe

sha256(string)

Argumentos

  • string - string para transformar em hash

Exemplos

  • sha256('QGIS') → ‘eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309’

13.2.5.5. to_base64

Codifica um valor binário em uma string, usando a codificação Base64.

Sintaxe

to_base64(value)

Argumentos

  • value - o valor binário a ser codificado

Exemplos

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

13.2.5.6. to_date

Converte uma string em um objeto de data. Uma string de formatação pode ser fornecida para analisar a string; veja QDate::fromString ou a documentação da função format_date para documentação adicional da fomatação. Por padrão o locale atual do usuário do QGIS será utilizado.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string representando um valor de data

  • format - formato usado para converter a cadeia em uma data

  • language - idioma (minúsculo, duas ou três letras, código de idioma ISO 639) usado para converter a cadeia em uma data. Por padrão, a localidade atual do usuário QGIS é usada.

Exemplos

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, se o locale atual utilizar o nome ‘June’ para o sexto mês, caso contrário irá ocorrer um erro

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

13.2.5.7. to_datetime

Converte uma string em um objeto datetime. Uma string opcional pode ser fornecido para avaliar a string; veja QDate::fromString, QTime::fromString ou a documentação da função format_date para documentação adicional do formato. Por padrão a localização atual do usuário do QGIS é utilizada.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string representando o valor datetime

  • format - formato utilizado para converter a string em datetime

  • language - lingua (caixa baixa, duas ou três letras, código de lingua ISO 639) usada para converter a string em datetime. Por padrão a localização atual do usuário do QGIS é utilizada.

Exemplos

  • 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, se a localização atual utilizar o nome ‘June’ para o sexto mês, caso contrário acontece um erro

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

13.2.5.8. to_decimal

Converte uma coordenada de grau, minuto e segundo em seu equivalente decimal.

Sintaxe

to_decimal(value)

Argumentos

  • value - Uma string grau, minuto, segundo.

Exemplos

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

13.2.5.9. to_dm

Converte uma coordenada em grau, minuto.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • coordinate - Um valor de latitude ou longitude.

  • axys - O eixo da coordenada. Ou ‘x’ ou ‘y’.

  • precision - Número de casas decimais.

  • formatting - Designa o tipo da formatação. Valores aceitáveis são NULL (padrão), ‘aligned’ ou ‘suffix’.

Exemplos

  • to_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

13.2.5.10. to_dms

Converte uma coordenada para grau, minuto, segundo.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • coordinate - Um valor de latitude ou longitude.

  • axys - O eixo da coordenada. Ou ‘x’ ou ‘y’.

  • precision - Número de casas decimais.

  • formatting - Designa o tipo da formatação. Valores aceitáveis são NULL (padrão), ‘aligned’ ou ‘suffix’.

Exemplos

  • to_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

13.2.5.11. to_int

Converte uma string para um número inteiro. Nada será retornado se o valor não puder ser convertido para inteiro (ex. ‘123asd’ é inválido).

Sintaxe

to_int(string)

Argumentos

  • string - string a ser convertida para número inteiro

Exemplos

  • to_int('123') → 123

13.2.5.12. to_interval

Converte uma string para o tipo intervalo. Pode ser utilizado dias, horas, mês, etc de uma data.

Sintaxe

to_interval(string)

Argumentos

  • string - um string representando um intervalo. Formatos permitidos são {n} days {n} hours {n} months.

Exemplos

  • to_interval('1 day 2 hours') → interval: 1.08333 dias

  • to_interval( '0.5 hours' ) → interval: 30 minutos

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

13.2.5.13. to_real

Converte uma string para um número real. Nada é retornado se um valor não puder ser convertido para real (ex.: ‘123.56asd’ é inválido). Os números são arredondados após salvar as alterações se a precisão for menor que o resultado da conversão.

Sintaxe

to_real(string)

Argumentos

  • string - string a ser convertida para número real

Exemplos

  • to_real('123.45') → 123.45

13.2.5.14. to_string

Converte um número em string.

Sintaxe

to_string(number)

Argumentos

  • number - Interio ou valor real. Número a ser convertido para string.

Exemplos

  • to_string(123) → ‘123’

13.2.5.15. to_time

Converte uma string em um objeto time. Uma string de formato opcional pode ser fornecida para analisar a string; veja QTime::fromString para documentação adicional sobre o formato.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string representando um valor time

  • format - formato utilizado para converter a string em time

  • language - lingua (caixa baixa, duas ou três letras, codigo de linguagem ISO 639) usado para converter a string em time

Exemplos

  • 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

13.2.6. Funções Personalizadas

Este grupo contém funções criadas pelo usuário. Veja Editor de Funções para mais detalhes.

13.2.7. Funções de Data e Hora

Este grupo contém funções para manipulação de data e hora. este grupo compartilha várias funções com os grupos Funções de Conversão (to_date, to_time, to_datetime, to_interval) e Funções de String (format_date).

Nota

Armazenando data, datetime e intervalos em campos

A habilidade para armazenar valores data, hora and datetime depende diretamente do provedor da fonte (ex., Shapefile aceita o formato date, mas não datetime ou formato time). A seguir estão algumas sugestões para superar essa limitação:

  • date, datetime and time podem ser convertidos e armazenados em campos do tipo texto usando a função format_date() .

  • Intervals podem ser armazenados em campos do tipo inteiro ou decimal após a utilização de uma das funções de extração de data (ex., day() para pegar o intervalo em dias)

13.2.7.1. age

Retorna a diferença entre duas datas ou datetimes.

A diferença é retornada como um Interval e precisa ser usada com uma das seguintes funções para extrair informações úteis:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Sintaxe

age(datetime1, datetime2)

Argumentos

  • datetime1 - uma string, date ou datetime representando a data posterior

  • datetime2 - uma string, data ou datetime representando a data anterior

Exemplos

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

  • hour(age('2012-05-12','2012-05-02')) → 240

13.2.7.2. datetime_from_epoch

Retorna um datetime cujo a data e hora são o número de milisegundos, mseg, que se passaram desde 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC), e convertido para Qt.LocalTime.

Sintaxe

datetime_from_epoch(int)

Argumentos

  • int - número (milissegundos)

Exemplos

  • datetime_from_epoch(1483225200000) → 2017-01-01T00:00:00

13.2.7.3. day

Extrai o dia de uma data ou o número de dias de um intervalo.

Variante Data

Extrai o dia de um date ou datetime.

Sintaxe

day(date)

Argumentos

  • date - um valor do tipo data ou datetime

Exemplos

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

Variante Intervalo

Calcula a duração em dias de um intervalo.

Sintaxe

day(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de dias

Exemplos

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

  • day(to_interval('3 weeks 2 days')) → 23

  • day(age('2012-01-01','2010-01-01')) → 730

13.2.7.4. day_of_week

Retorna o dia da semana para um date ou datetime específico. O valor retornado varia de 0 até 6, onde 0 corresponde a Domingo e 6 Sábado.

Sintaxe

day_of_week(date)

Argumentos

  • date - valor date ou datetime

Exemplos

  • day_of_week(to_date('2015-09-21')) → 1

13.2.7.5. epoch

Retorna o intervalo em milisegundos entre a epoc unix e um valor de data fornecida.

Sintaxe

epoch(date)

Argumentos

  • date - um valor do tipo data ou datetime

Exemplos

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

13.2.7.6. format_date

Fomata o tipo date ou string em uma string formadata customizada. Usa o formato de string do Qt date/time . Veja QDateTime::toString.

Sintaxe

format_date(datetime, format, [language])

[] indica argumentos opcionais

Argumentos

  • datetime - valor data, hora ou datetime

  • format - String do modelo usado para formatar a string.

    Expression

    Output

    d

    o dia como número sem zero à esquerda (1 a 31)

    dd

    o dia como número com um zero à esquerda (01 a 31)

    ddd

    localização abreveada do nome do dia (ex. ‘Seg’ a ‘Dom’)

    dddd

    o nome longo do dia localizado (ex., ‘Segunda-feira’ a ‘Domingo’)

    M

    o mês como número sem zero à esquerda (1-12)

    MM

    o mês como número com um zero à esquerda (01-12)

    MMM

    o nome abreviado do mês localizado (ex., ‘Jan’ a ‘Dez’)

    MMMM

    o nome longo do mês localizado (ex., ‘janeiro’ a ‘dezembro’)

    yy

    o ano como número de dois dígitos (00-99)

    yyyy

    o ano como número de quatro dígitos

    Estas expressões podem ser usadas para a parte da hora da string de formatação:

    Expression

    Output

    h

    a hora sem zero à esquerda (0 a 23 ou 1 a 12 se for exibido AM/PM)

    hh

    a hora com um zero à esquerda (00 a 23 ou 01 a 12 se for exibido AM/PM)

    H

    a hora sem zero à esquerda (0 a 23, mesmo com exibição AM/PM)

    HH

    a hora com um zero à esquerda (00 a 23, mesmo com exibição AM/PM)

    m

    o minuto sem zero à esquerda (0 a 59)

    mm

    o minuto com um zero à esquerda (00 a 59)

    s

    o segundo sem zero à esquerda (0 a 59)

    ss

    o segundo com um zero à esquerda (00 a 59)

    z

    os milissegundos sem zeros à direita (0 a 999)

    zzz

    os milissegundos com zeros à direita (000 a 999)

    AP or A

    Iinterprete como uma hora AM/PM. AP precisa ser ambos ‘AM’ ou ‘PM’.

    ap or a

    Interprete como uma hora AM/PM. ap precisa ser ambos ‘am’ ou ‘pm’.

  • language - lingua (caixa baixa, duas ou três letras, código de linguagem ISO 639) usada para formatar a data em uma string customizada. Por padrão a localização do usuário atual do QGIS é utilizada.

Exemplos

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

  • format_date('2012-05-15','d MMMM yyyy','fr') → ‘15 mai 2012’

  • format_date('2012-05-15','dddd') → ‘Terça-feira’, se a localização é uma variante do Português.

  • 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’

13.2.7.7. hour

Extrai a parte das horas de uma daterime ou hora, ou o número de horas de um intervalo.

Variação de tempo

Extrai a parte das horas de uma daterime ou hora.

Sintaxe

hour(datetime)

Argumentos

  • datetime - um valor de hora ou datetime

Exemplos

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

Variante Intervalo

Calcula a duração em horas de um intervalo.

Sintaxe

hour(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de horas

Exemplos

  • hour(to_interval('3 hours')) → 3

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

  • hour(age('2012-01-01','2010-01-01')) → 17520

13.2.7.8. make_date

Cria um valor de data a partir de números de ano, mês e dia.

Sintaxe

make_date(year, month, day)

Argumentos

  • year - Número do ano. Os anos de 1 a 99 são interpretados como estão. O ano 0 é inválido.

  • month - Número do mês, onde 1=Janeiro

  • day - Número do dia, começando com 1 para o primeiro dia do mês

Exemplos

  • make_date(2020,5,4) → date value 2020-05-04

13.2.7.9. make_datetime

Cria um valor de data e hora a partir de números de ano, mês, dia, hora, minuto e segundo.

Sintaxe

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

Argumentos

  • year - Número do ano. Os anos de 1 a 99 são interpretados como estão. O ano 0 é inválido.

  • month - Número do mês, onde 1=Janeiro

  • day - Número do dia, começando com 1 para o primeiro dia do mês

  • hour - Número da hora

  • minute - Minutos

  • second - Segundos (valores fracionários incluem milissegundos)

Exemplos

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

13.2.7.10. make_interval

Cria um intervalo de valores para os valores de ano, mês, semanas, dias, horas, minutos e segundos.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • years - Número de anos (supõe uma duração de ano de 365,25 dias).

  • months - Número de meses (considera uma duração de mês de 30 dias)

  • weeks - Número de semanas

  • days - Número de dias

  • hours - Número de horas

  • minutes - Número de minutos

  • seconds - Número de segundos

Exemplos

  • make_interval(hours:=3) → interval: 3 hours

  • make_interval(days:=2, hours:=3) → interval: 2.125 days

  • make_interval(minutes:=0.5, seconds:=5) → interval: 35 seconds

13.2.7.11. make_time

Cria um valor de tempo a partir de números de hora, minuto e segundo.

Sintaxe

make_time(hour, minute, second)

Argumentos

  • hour - Número da hora

  • minute - Minutos

  • second - Segundos (valores fracionários incluem milissegundos)

Exemplos

  • make_time(13,45,30.5) → time value 13:45:30.500

13.2.7.12. minute

Extrai a parte de minutos de um datetime ou hora, ou o número de minutos de um intevalor.

Variação de tempo

Extrai a parte dos minutos de uma hora ou datetime.

Sintaxe

minute(datetime)

Argumentos

  • datetime - um valor de hora ou datetime

Exemplos

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

Variante Intervalo

Calcula a extensão em minutos de um intervalo.

Sintaxe

minute(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de minutos

Exemplos

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

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

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

13.2.7.13. month

Extrai a parte do mês de uma data ou o número de meses de um intervalo.

Variante Data

Extrai a parte de mês de uma data ou datetime.

Sintaxe

month(date)

Argumentos

  • date - um valor do tipo data ou datetime

Exemplos

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

Variante Intervalo

Calcula a duração em meses de um intervalo.

Sintaxe

month(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de meses

Exemplos

  • month(to_interval('3 months')) → 3

  • month(age('2012-01-01','2010-01-01')) → 4.03333

13.2.7.14. now

Retorna a data e hora atuais. A função é estática e retornará resultados consistentes durante a avaliação. A hora retornada é a hora em que a expressão é preparada.

Sintaxe

now()

Exemplos

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

13.2.7.15. second

Extrai a parte dos segundos de um datetime ou hora, ou o número de segundos de um intervalo.

Variação de tempo

Extrai a parte do segundos de uma hora ou datetime.

Sintaxe

second(datetime)

Argumentos

  • datetime - um valor de hora ou datetime

Exemplos

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

Variante Intervalo

Calcula a duração em segundos de um intervalo.

Sintaxe

second(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de segundos

Exemplos

  • second(to_interval('3 minutes')) → 180

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

  • second(age('2012-01-01','2010-01-01')) → 63072000

13.2.7.16. to_date

Converte uma string em um objeto de data. Uma string de formatação pode ser fornecida para analisar a string; veja QDate::fromString ou a documentação da função format_date para documentação adicional da fomatação. Por padrão o locale atual do usuário do QGIS será utilizado.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string representando um valor de data

  • format - formato usado para converter a cadeia em uma data

  • language - idioma (minúsculo, duas ou três letras, código de idioma ISO 639) usado para converter a cadeia em uma data. Por padrão, a localidade atual do usuário QGIS é usada.

Exemplos

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, se o locale atual utilizar o nome ‘June’ para o sexto mês, caso contrário irá ocorrer um erro

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

13.2.7.17. to_datetime

Converte uma string em um objeto datetime. Uma string opcional pode ser fornecido para avaliar a string; veja QDate::fromString, QTime::fromString ou a documentação da função format_date para documentação adicional do formato. Por padrão a localização atual do usuário do QGIS é utilizada.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string representando o valor datetime

  • format - formato utilizado para converter a string em datetime

  • language - lingua (caixa baixa, duas ou três letras, código de lingua ISO 639) usada para converter a string em datetime. Por padrão a localização atual do usuário do QGIS é utilizada.

Exemplos

  • 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, se a localização atual utilizar o nome ‘June’ para o sexto mês, caso contrário acontece um erro

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

13.2.7.18. to_interval

Converte uma string para o tipo intervalo. Pode ser utilizado dias, horas, mês, etc de uma data.

Sintaxe

to_interval(string)

Argumentos

  • string - um string representando um intervalo. Formatos permitidos são {n} days {n} hours {n} months.

Exemplos

  • to_interval('1 day 2 hours') → interval: 1.08333 dias

  • to_interval( '0.5 hours' ) → interval: 30 minutos

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

13.2.7.19. to_time

Converte uma string em um objeto time. Uma string de formato opcional pode ser fornecida para analisar a string; veja QTime::fromString para documentação adicional sobre o formato.

Sintaxe

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

[] indica argumentos opcionais

Argumentos

  • string - string representando um valor time

  • format - formato utilizado para converter a string em time

  • language - lingua (caixa baixa, duas ou três letras, codigo de linguagem ISO 639) usado para converter a string em time

Exemplos

  • 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

13.2.7.20. week

Extrai o número da semana de uma data ou o número de semanas de um intervalo.

Variante Data

Extrai o número da semana de uma data ou datetime.

Sintaxe

week(date)

Argumentos

  • date - um valor do tipo data ou datetime

Exemplos

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

Variante Intervalo

Calcula a duração em semanas de um intervalo.

Sintaxe

week(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de meses

Exemplos

  • week(to_interval('3 weeks')) → 3

  • week(age('2012-01-01','2010-01-01')) → 104.285

13.2.7.21. year

Extrai a parte do ano de uma data ou o número de anos de um intervalo.

Variante Data

Extrai a parte do ano de uma data ou de um datetime.

Sintaxe

year(date)

Argumentos

  • date - um valor do tipo data ou datetime

Exemplos

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

Variante Intervalo

Calcula a duração em anos de um intervalo.

Sintaxe

year(interval)

Argumentos

  • interval - valor do intervalo para retornar o número de anos

Exemplos

  • year(to_interval('3 years')) → 3

  • year(age('2012-01-01','2010-01-01')) → 1.9986

Alguns exemplos:

Além dessas funções, subtrair datas, datas ou horas usando o operador - (menos) retornará um intervalo.

Adicionar ou subtrair um intervalo a datas, data/hora ou horas, usando os operadores + (mais) e - (menos), retornará uma data/hora.

  • Obtenha o número de dias até o lançamento do QGIS 3.0:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • O mesmo com o tempo:

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • Obtenha a data/hora de 100 dias a partir de agora:

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

13.2.8. Campos e Valores

Contém uma lista de campos da camada ativa e valores especiais. Lista de campos inclui os que estão armazenados no dataset, virtuais e auxiliares bem como os unidos.

Clique duas vezes no nome de um campo para adicioná-lo à sua expressão. Você também pode digitar o nome do campo (de preferência entre aspas duplas) ou seu alias.

Para recuperar os valores dos campos a serem usados ​​em uma expressão, selecione o campo apropriado e, no widget mostrado, escolha entre 10 Amostras e Todos os Únicos. Os valores solicitados são exibidos e você pode usar a caixa Pesquisar na parte superior da lista para filtrar o resultado. Valores de amostra também podem ser acessados ​​clicando com o botão direito do mouse em um campo.

Para adicionar um valor à expressão que você está escrevendo, clique duas vezes nela na lista. Se o valor for de um tipo de string, deve ser simples entre aspas, caso contrário, nenhuma citação será necessária.

13.2.8.1. NULL

Equivale a um valor NULO.

Sintaxe

NULL

Exemplos

  • NULO → um valor NULO

Nota

Para testar NULO, use uma expressão IS NULL ou IS NOT NULL.

13.2.9. Funções de Arquivos e Caminhos

Este grupo contém funções que manipulam nomes de arquivos e caminhos.

13.2.9.1. base_file_name

Retorna o nome base do arquivo sem o diretório ou sufixo do arquivo.

Sintaxe

base_file_name(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

13.2.9.2. exif

Recupera valores de tag exif de um arquivo de imagem.

Sintaxe

exif(path, [tag])

[] indica argumentos opcionais

Argumentos

  • path - Um caminho de arquivo de imagem ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

  • tag - A tag a ser retornada. se vazio, um mapa com todos os valores será retornado.

Exemplos

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

13.2.9.3. file_exists

Retorna TRUE se o caminho do arquivo existir.

Sintaxe

file_exists(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

13.2.9.4. file_name

Retorna o nome de um arquivo (incluindo a extensão do arquivo), excluindo o diretório.

Sintaxe

file_name(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

13.2.9.5. file_path

Retorna o componente de diretório de um caminho de arquivo. Isso não inclui o nome do arquivo.

Sintaxe

file_path(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

13.2.9.6. file_size

Retorna o tamanho (em bytes) de um arquivo.

Sintaxe

file_size(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

13.2.9.7. file_suffix

Retorna o sufixo de um arquivo (extensão) de um caminho de arquivo.

Sintaxe

file_suffix(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

13.2.9.8. is_directory

Retorna VERDADEIRO se um caminho corresponder a um diretório.

Sintaxe

is_directory(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

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

13.2.9.9. is_file

Retorna VERDADEIRO se um caminho corresponder a um arquivo.

Sintaxe

is_file(path)

Argumentos

  • path - um caminho de arquivo ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

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

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

13.2.10. Funções de Formulário

Este grupo contém funções que operam exclusivamente sobre os atributos de um contexto. Por exemplo, na configuração dos widgets de campos.

13.2.10.1. current_parent_value

Utilizável apenas em um contexto de formulário incorporado, esta função retorna o valor atual e não salvo de um campo no formulário pai que está sendo editado no momento. Isso será diferente dos valores de atributo reais da feição pai para feições que estão sendo editadas no momento ou que ainda não foram adicionadas a uma camada pai. Quando usada em um widget de filtro por expressão de relação de valor, essa função deve ser agrupada em um ‘coalesce()’ que pode recuperar o recurso pai real da camada quando o formulário não é usado em um contexto incorporado.

Sintaxe

current_parent_value(field_name)

Argumentos

  • field_name - um nome de campo no fomulátio pai atual

Exemplos

  • current_parent_value( 'FIELD_NAME' ) → O valot atual no campo ‘FIELD_NAME’ no formulário pai.

13.2.10.2. current_value

Retorna o valor atual não salvo de um campo no formulário ou linha da tabela que está sendo editada no momento. Isso será diferente dos valores de atributo reais da feição para feições que estão sendo editadas no momento ou que ainda não foram adicionadas a uma camada.

Sintaxe

current_value(field_name)

Argumentos

  • field_name - um nome de campo no formulário pai ou linha da tabela.

Exemplos

  • current_value( 'FIELD_NAME' ) → O valor atual do campo ‘FIELD_NAME’.

13.2.11. Funções de Combinação Fuzzy

Este grupo contém funções para comaparações fuzzy entre valores.

13.2.11.1. hamming_distance

Retorna a distância de Hamming entre duas strings. Isso equivale ao número de caracteres em posições correspondentes nas strings de entrada onde os caracteres são diferentes. As cadeias de caracteres de entrada devem ter o mesmo comprimento e a comparação diferencia maiúsculas de minúsculas.

Sintaxe

hamming_distance(string1, string2)

Argumentos

  • string1 - a string

  • string2 - a string

Exemplos

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

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

  • hamming_distance(upper('abc'),upper('ABC')) → 0

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

13.2.11.2. levenshtein

Retorna a distância de edição Levenshtein entre duas cadeias. Isso equivale ao número mínimo de edições de caracteres (inserções, exclusões ou substituições) necessárias para alterar uma cadeia para outra.

A distância Levenshtein é uma medida da semelhança entre duas astrings. Distâncias menores significam que as string são mais semelhantes, e distâncias maiores indicam mais strings diferentes. A distância diferencia maiúsculas de minúsculas.

Sintaxe

levenshtein(cadeia1, cadeia2)

Argumentos

  • string1 - a string

  • string2 - a string

Exemplos

  • levenshtein('kittens','mitten') → 2

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

  • levenshtein(upper('Kitten'),upper('kitten')) → 0

13.2.11.3. longest_common_substring

Retorna a sub string comum mais longa entre duas strings. Essa sub string é a cadeia mais longa que é uma sub string das duas strings de entrada. Por exemplo, a sub string comum mais longa de “ABABC” e “BABCA” é “BABC”. A substring faz distinção entre maiúsculas e minúsculas.

Sintaxe

longest_common_substring(string1, string2)

Argumentos

  • string1 - a string

  • string2 - a string

Exemplos

  • longest_common_substring('ABABC','BABCA') → ‘BABC’

  • longest_common_substring('abcDeF','abcdef') → ‘abc’

  • longest_common_substring(upper('abcDeF'),upper('abcdex')) → ‘ABCDE’

13.2.11.4. soundex

Retorna a representação Soundex de uma string. Soundex é um algoritmo de correspondência fonética, portanto, strings com sons semelhantes devem ser representadas pelo mesmo código Soundex.

Sintaxe

soundex(string)

Argumentos

  • string - a string

Exemplos

  • soundex('robert') → ‘R163’

  • soundex('rupert') → ‘R163’

  • soundex('rubin') → ‘R150’

13.2.12. Funções Gerais

Este grupo contém funções gerais variadas.

13.2.12.1. env

Obtém uma variável de ambiente e retorna seu conteúdo como uma string. Se a variável não for encontrada, NULL será retornado. Isso é útil para injetar configurações específicas do sistema, como letras de unidade ou prefixos de caminho. A definição de variáveis de ambiente depende do sistema operacional, verifique com o administrador do sistema ou a documentação do sistema operacional como isso pode ser definido.

Sintaxe

env(name)

Argumentos

  • name - O nome da variável de ambiente que deve ser recuperada.

Exemplos

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

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

  • env( 'I_DO_NOT_EXIST' ) → NULL

13.2.12.2. eval

Avalia uma expressão que é passada em uma string. Útil para expandir parâmetros dinâmicos passados ​​como campos ou variáveis ​​de contexto.

Sintaxe

eval(expression)

Argumentos

  • expression - uma string de expressão

Exemplos

  • eval('\'nice\'') → ‘nice’

  • eval(@expression_var) → [qualquer que seja o resultado da avaliação de @expression_var…]

13.2.12.3. eval_template

Avalia um modelo que é passado em uma string. Útil para expandir parâmetros dinâmicos passados como variáveis de contexto ou campos.

Sintaxe

eval_template(template)

Argumentos

  • template - uma string modelo

Exemplos

  • eval_template('QGIS [% upper(\'rocks\') %]') → QGIS ROCKS

13.2.12.4. is_layer_visible

Retorna VERDADEIRO se a camada especificada estiver visível.

Sintaxe

is_layer_visible(layer)

Argumentos

  • layer - uma string, representando um nome de camada ou um ID de camada

Exemplos

  • is_layer_visible('baseraster') → TRUE

13.2.12.5. mime_type

Retorna o mime type dos dados binários.

Sintaxe

mime_type(bytes)

Argumentos

  • bytes - os dados binários

Exemplos

  • mime_type('<html><body></body></html>') → text/html

  • mime_type(from_base64('R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAIAOw==')) → image/gif

13.2.12.6. var

Retorna o valor armazenado em uma variável especificada.

Sintaxe

var(name)

Argumentos

  • name - um nome de variável

Exemplos

  • var('qgis_version') → ‘2.12’

Leitura adicional: Lista de variáveis padrão

13.2.12.7. with_variable

Esta função define uma variável para qualquer código de expressão que será fornecido como 3º argumento. Isso só é útil para expressões complicadas, onde o mesmo valor calculado precisa ser usado em lugares diferentes.

Sintaxe

with_variable(name, value, expression)

Argumentos

  • name - o nome da variável a ser definida

  • value - o valor a ser definido

  • expression - a expressão para a qual a variável estará disponível

Exemplos

  • with_variable('my_sum', 1 + 2 + 3, @my_sum * 2 + @my_sum * 5) → 42

13.2.13. Funções de Geometria

Este grupo contém funções que operam em objetos de geometria (por exemplo, buffer, transform, $area).

13.2.13.1. affine_transform

Retorna a geometria após uma transformação afim. Os cálculos estão no Sistema de Referência Espacial desta geometria. As operações são realizadas em escala, rotação, ordem de translação. Se houver um deslocamento Z ou M, mas a coordenada não estiver presente na geometria, ela será adicionada.

Sintaxe

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])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • delta_x - tradução do eixo x

  • delta_y - tradução do eixo y

  • rotation_z - rotação em torno do eixo z em graus no sentido anti-horário

  • scale_x - fator de escala do eixo x

  • scale_y - fator de escala do eixo y

  • delta_z - tradução do eixo z

  • delta_m - tradução do eixo m

  • scale_z - fator de escala do eixo z

  • scale_m - fator de escala do eixo m

Exemplos

  • 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, 1, 1, 5, 0)) → ‘PointZ (3 1 5)’

../../../_images/affinetransform.png

Fig. 13.4 Ponto da camada de vetor (pontos verdes) antes (esquerda) e depois (direita) de uma transformação afim.

13.2.13.2. angle_at_vertex

Retorna o ângulo da bissetriz (ângulo médio) para a geometria de um vértice especificado em uma geometria de linha. Os ângulos estão em graus no sentido horário a partir do norte.

Sintaxe

angle_at_vertex(geometry, vertex)

Argumentos

  • geometry - Uma geometria de linha

  • vertex - índice do vértice, a partir de 0; se o valor for negativo, o índice do vértice selecionado será sua contagem total menos o valor absoluto

Exemplos

  • angle_at_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 45.0

13.2.13.3. apply_dash_pattern

Aplica um padrão de traço a uma geometria, retornando uma geometria MultiLineString que é a geometria de entrada traçada ao longo de cada linha/anel com o padrão especificado.

Sintaxe

apply_dash_pattern(geometry, pattern, [start_rule=no_rule], [end_rule=no_rule], [adjustment=both], [pattern_offset=0])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria (aceita (multi)linhas ou (multi)polígonos).

  • pattern - padrão de traço, como uma matriz de números representando comprimentos de traço e intervalo. Deve conter um número par de elementos.

  • start_rule - regra opcional para restringir o início do padrão. Os valores válidos são ‘no_rule’, ‘full_dash’, ‘half_dash’, ‘full_gap’, ‘half_gap’.

  • end_rule - regra opcional para restringir o fim do padrão. Os valores válidos são ‘no_rule’, ‘full_dash’, ‘half_dash’, ‘full_gap’, ‘half_gap’.

  • adjustment - regra opcional para especificar quais partes dos padrões são ajustadas para caber nas regras de padrão desejadas. Os valores válidos são ‘both’, ‘dash’, ‘gap’.

  • pattern_offset - Distância opcional especificando uma distância específica ao longo do padrão para começar.

Exemplos

  • 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))

13.2.13.4. $area

Retorna a área do recurso atual. A área calculada por esta função respeita tanto a configuração do elipsóide do projeto atual quanto as configurações da unidade de área. Por exemplo, se um elipsóide foi definido para o projeto, a área calculada será elipsoidal, e se nenhum elipsóide for definido, a área calculada será planimétrica.

Sintaxe

$area

Exemplos

  • $area → 42

13.2.13.5. area

Retorna a área de um objeto de geometria polígono. Os cálculos são sempre planimétricos no Sistema de Referência Espacial (SRS) dessa geometria, e as unidades da área retornada corresponderão às unidades do SRS. Isso difere dos cálculos realizados pela função $area, que realizará cálculos elipsoidais com base nas configurações de elipsóide e unidade de área do projeto.

Sintaxe

area(geometry)

Argumentos

  • geometry - objeto de geometria de polígono

Exemplos

  • area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8.0

13.2.13.6. azimuth

Retorna o azimute baseado no norte como o ângulo em radianos medido no sentido horário da vertical em point_a a point_b.

Sintaxe

azimuth(point_a, point_b)

Argumentos

  • point_a - geometria de ponto

  • point_b - geometria de ponto

Exemplos

  • degrees( azimuth( make_point(25, 45), make_point(75, 100) ) ) → 42.273689

  • degrees( azimuth( make_point(75, 100), make_point(25,45) ) ) → 222.273689

13.2.13.7. bearing

Returns the north-based bearing as the angle in radians measured clockwise on the ellipsoid from the vertical on point_a to point_b.

Sintaxe

bearing(point_a, point_b, [source_crs], [ellipsoid])

[] indica argumentos opcionais

Argumentos

  • point_a - geometria de ponto

  • point_b - geometria de ponto

  • source_crs - an optional string representing the source CRS of the points. By default the current layer’s CRS is used.

  • ellipsoid - an optional string representing the acronym or the authority:ID (eg ‘EPSG:7030’) of the ellipsoid on which the bearing should be measured. By default the current project’s ellipsoid setting is used.

Exemplos

  • degrees( bearing( make_point(16198544, -4534850), make_point(18736872, -1877769), 'EPSG:3857', 'EPSG:7030') ) → 49.980071

  • degrees( bearing( make_point(18736872, -1877769), make_point(16198544, -4534850), 'EPSG:3857', 'WGS84') ) → 219.282386

13.2.13.8. boundary

Retorna o fechamento do limite combinatório da geometria (ou seja, o limite topológico da geometria). Por exemplo, uma geometria de polígono terá um limite que consiste nas cadeias de linhas para cada anel no polígono. Alguns tipos de geometria não têm um limite definido, por exemplo, pontos ou coleções de geometria, e retornarão NULO.

Sintaxe

boundary(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • 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. 13.5 Boundary (black dashed line) of the source polygon layer

Leitura adicional: algoritmo Limite

13.2.13.9. bounds

Retorna uma geometria que representa a caixa delimitadora de uma geometria de entrada. Os cálculos estão no Sistema de Referência Espacial desta geometria.

Sintaxe

bounds(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • bounds(@geometry) → bounding box of the current feature’s geometry

  • 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. 13.6 As linhas pretas representam as caixas delimitadoras de cada feição do polígono

Leitura adicional: algoritmo Caixas delimitadoras.

13.2.13.10. bounds_height

Retorna a altura do rentângulo envolvente de uma geometria. O cálculos são no Sistema de Referencia Espacial da geometria.

Sintaxe

bounds_height(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • bounds_height(@geometry) → height of bounding box of the current feature’s geometry

  • bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1

13.2.13.11. bounds_width

Retorna a largura do retângulo envolvente de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria.

Sintaxe

bounds_width(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • bounds_width(@geometry) → width of bounding box of the current feature’s geometry

  • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2

13.2.13.12. buffer

Retorna uma geometria que representa todos os pontos cuja distância dessa geometria é menor ou igual à distância. Os cálculos estão no Sistema de Referência Espacial desta geometria.

Sintaxe

buffer(geometry, distance, [segments=8], [cap=’round’], [join=’round’], [miter_limit=2])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • distance - distância do buffer em unidades de camada

  • segments - número de segmentos a serem usados para representar um quarto de círculo quando um estilo de junção arredondada é usado. Um número maior resulta em um buffer mais suave com mais nós.

  • cap - estilo do end cap style do buffer. Valores válidos são ‘round’, ‘flat’ ou ‘square’

  • join - estilo da junção do buffer. Valores válidos são ‘round’, ‘bevel’ ou ‘miter’.

  • miter_limit - distância limite do miter, para ser utilizado quando o estilo de junção for configurado para ‘miter’

Exemplos

  • buffer(@geometry, 10.5) → polygon of the current feature’s geometry buffered by 10.5 units

../../../_images/buffer1.png

Fig. 13.7 Buffer (em amarelo) de pontos, linha, polígono com buffer positivo e polígono com buffer negativo

Leitura adicional: algoritmo Buffer

13.2.13.13. buffer_by_m

Cria um buffer ao longo de uma geometria de linha onde o diâmetro do buffer varia de acordo com os valores m nos vértices da linha.

Sintaxe

buffer_by_m(geometry, [segments=8])

[] indica argumentos opcionais

Argumentos

  • geometry - geometria de entrada. Deve ser uma geometria de (multi)linha com valores m.

  • segments - número de segmentos para aproximar as curvas de um quarto de círculo no buffer.

Exemplos

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → Um buffer de largura variável começando com um diâmetro de 0,5 e terminando com um diâmetro de 0,2 ao longo da geometria da linha

../../../_images/variable_buffer_m.png

Fig. 13.8 Buffer nas feições de linha usando o valor m nos vértices

Leitura adicional: algoritmo Buffer de largura variável (por valor M)

13.2.13.14. centroid

Retorna o centro geométrico de uma geometria.

Sintaxe

centroid(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • centroid(@geometry) → a point geometry

../../../_images/centroids1.png

Fig. 13.9 As estrelas vermelhas representam os centróides das feições da camada de entrada.

Leitura adicional: algoritmo Centroides

13.2.13.15. close_line

Retorna uma linha fechada da linha de entrada anexando o primeiro ponto ao final da linha, se ainda não estiver fechada. Se a geometria não for uma sequência de linhas ou sequência de várias linhas, o resultado será NULL.

Sintaxe

close_line(geometry)

Argumentos

  • geometry - uma geometria de linha

Exemplos

  • 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)’

13.2.13.16. closest_point

Retorna o ponto em geometria1 que está mais próximo de geometria2.

Sintaxe

closest_point(geometry1, geometry2)

Argumentos

  • geometry1 - geometria para encontrar o ponto mais próximo em

  • geometry2 - geometria para encontrar o ponto mais próximo de

Exemplos

  • 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)’

13.2.13.17. collect_geometries

Coleta uma série de geometrias em um objeto de geometria multi parte.

Lista de variantes de argumentos

As partes geométricas são especificadas como argumentos separados para a função.

Sintaxe

collect_geometries(geometry1, geometry2, …)

Argumentos

  • geometry - uma geometria

Exemplos

  • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → ‘MultiPoint ((1 2),(3 4),(5 6))’

Variante array

As partes de geometria são especificadas como um array de partes de geometria.

Sintaxe

collect_geometries(array)

Argumentos

  • array - array de objetos de geometria

Exemplos

  • 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))’

Leitura adicional: algoritmo Coletar geometrias

13.2.13.18. combine

Retorna a combinação de duas geometrias.

Sintaxe

combine(geometria1, geometria2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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)’

13.2.13.19. concave_hull

Retorna um polígono possivelmente côncavo que contém todos os pontos na geometria

Sintaxe

concave_hull(geometry, target_percent, [allow_holes=False])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • target_percent - a porcentagem de área do cobertura convexa que a solução tenta se aproximar. Um target_percent de 1 dá o mesmo resultado que a cobertura convexa. Um target_percent entre 0 e 0,99 produz um resultado que deve ter uma área menor que a cobertura convexa.

  • allow_holes - argumento opcional que especifica se deve permitir furos na geometria de saída. O padrão é FALSE, definido como TRUE para evitar a inclusão de furos na geometria de saída.

Exemplos

  • 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

Concave hulls with increasing target_percent parameter

Further reading: convex_hull, Concave hull algorithm

13.2.13.20. contains

Testa se uma geometria contém outra. Retorna TRUE se e somente se nenhum ponto da geometria2 estiver no exterior da geometria1 e pelo menos um ponto do interior da geometria2 estiver no interior da geometria1.

Sintaxe

contains(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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

Leitura adicional: overlay_contains

13.2.13.21. convex_hull

Retorna o convex hull de uma geometria. Ele representa a geometria convexa mínima que encerra todas as geometrias dentro do conjunto.

Sintaxe

convex_hull(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • 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

Black lines identify the convex hull for each feature

Leitura adicional: concave_hull, algoritmo Casco convexo.

13.2.13.22. crosses

Testa quando uma geometria cruza a outra. Retorna VERDADEIRO se as geometrias fornecidas possuirem algum, mas não todos, pontos internos em comum.

Sintaxe

crosses(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → FALSE

Leitura adicional: overlay_crosses

13.2.13.23. densify_by_count

Recebe uma camada com geometria do tipo polígono ou linha e gera uma nova onde as geometrias possuem uma quantidade maior de vertices que a original.

Sintaxe

densify_by_count(geometry, vertices)

Argumentos

  • geometry - uma geometria (aceita (multi)linhas ou (multi)polígonos).

  • vertices - número de vertices a serem adicionados (por segmento)

Exemplos

  • 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

Os pontos vermelhos mostram os vértices antes e depois da densificação

Leitura adicional: algoritmo Densificar por contagem.

13.2.13.24. densify_by_distance

Pega um camada de polígono ou geometria e gera uma nova na qual as geometrias são densificadas adicionando novos vértices em arestas que têm uma distância máxima da distância de intervalo especificada.

Sintaxe

densify_by_distance(geometry, distance)

Argumentos

  • geometry - uma geometria (aceita (multi)linhas ou (multi)polígonos).

  • distance - intervalo máximo entre os vértices na geometria de saída

Exemplos

  • 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

Geometrias densificadas em um dado intervalo.

Leitura adicional: algoritmo Densificar por intervalo

13.2.13.25. difference

Retorna uma geometria que representa a parte da geometria1 que não faz interseção com geometria2.

Sintaxe

difference(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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)’

Leitura adicional: algoritmo Diferença

13.2.13.26. disjoint

Testa quando as geometrias não intersectam espacialmente. Retorna VERDADEIRO se as geometrias não compartilham algum espaço juntas.

Sintaxe

disjoint(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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

Leitura adicional: overlay_disjoint

13.2.13.27. distance

Retorna a menor distância (baseada na referencia espacial) entre duas geometrias na unidade projetada.

Sintaxe

distance(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • distance( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4

13.2.13.28. distance_to_vertex

Retorna a distância ao longo da geometria para um vértice especificado.

Sintaxe

distance_to_vertex(geometry, vertex)

Argumentos

  • geometry - Uma geometria de linha

  • vertex - índice do vértice, a partir de 0; se o valor for negativo, o índice do vértice selecionado será sua contagem total menos o valor absoluto

Exemplos

  • distance_to_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0

13.2.13.29. end_point

Retorna o último nó de uma geometria.

Sintaxe

end_point(geometry)

Argumentos

  • geometry - objeto geométrico

Exemplos

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ‘Point (0 2)’

../../../_images/end_point.png

End point of a line feature

Further reading: start_point, Extrair vértices específicos algorithm

13.2.13.30. exif_geotag

Cria uma geometria de pontos a partir da geotag do exif de um arquivo de imagem.

Sintaxe

exif_geotag(path)

Argumentos

  • path - Um caminho de arquivo de imagem ou um valor de camada de mapa. Se um valor de camada de mapa for especificado, a origem do arquivo da camada será usada.

Exemplos

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → ‘Point (2 4)’

13.2.13.31. extend

Estende o início e o fim de uma geometria de linha em um valor especificado. As linhas são estendidas usando o rumo do primeiro e do último segmento da linha. Para uma multi linha, todas as partes são estendidas. As distâncias estão no Sistema de Referência Espacial desta geometria.

Sintaxe

extend(geometry, start_distance, end_distance)

Argumentos

  • geometry - uma geometria (multi) linha

  • start_distance - distancia para extender o inicio da linha

  • end_distance - distancia para extender o final da linha

Exemplos

  • 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

Os traços vermelhos representam a extensão inicial e final da camada original

Leitura adicional: algoritmo Linhas estendidas.

13.2.13.32. exterior_ring

Retorna uma linha representando o anél exterior de uma geometria do tipo polígono. Se a geometria não for um polígono o resultado será NULL.

Sintaxe

exterior_ring(geometry)

Argumentos

  • geometry - uma geometria de polígono

Exemplos

  • 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

The dashed line represents the exterior ring of the polygon

13.2.13.33. extrude

Retorna uma versão extrudada da geometria de entrada (Multi-)Curve ou (Multi-)Linha com uma extensão especificada por x e y.

Sintaxe

extrude(geometry, x, y)

Argumentos

  • geometry - uma geometria curva ou linha

  • x - extensão x, valor numérico

  • y - extensão y, valor numérico

Exemplos

  • 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

Generating a polygon by extruding a line with offset in x and y directions

13.2.13.34. flip_coordinates

Retorna uma cópia da geometria com as coordenadas x e y trocadas. Útil para reparar geometrias que tiveram seus valores de latitude e longitude invertidos.

Sintaxe

flip_coordinates(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → ‘Point (2 1)’

  • geom_to_wkt(flip_coordinates(geom_from_wkt('LineString(0 2, 1 0, 1 6)'))) → ‘LineString (2 0, 0 1, 6 1)’

Leitura adicional: algoritmo Trocar as coordenadas X e Y

13.2.13.35. force_polygon_ccw

Força a geometria a respeitar a convenção onde os anéis exteriores são no sentido anti-horário, e anéis interiores são no sentido horário.

Sintaxe

force_polygon_ccw(geometry)

Argumentos

  • geometry - Uma geometria. Qualquer geometria que não for polígono são retornadas sem modificações.

Exemplos

  • 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))’

Leitura adicional: force_polygon_cw, force_rhr

13.2.13.36. force_polygon_cw

Força a geometria a respeitar a convenção onde anéis externos são no sentido horário, e anéis internos são no sentido anti-horário.

Sintaxe

force_polygon_cw(geometry)

Argumentos

  • geometry - Uma geometria. Qualquer geometria que não for polígono são retornadas sem modificações.

Exemplos

  • 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))’

Leitura adicional: force_polygon_ccw, force_rhr

13.2.13.37. force_rhr

Força uma geometria a respeitar a Regra da Mão Direita, na qual a área delimitada por um polígono está à direita do limite. Em particular, o anel externo é orientado no sentido horário e os anéis internos no sentido anti-horário. Devido à inconsistência na definição da Regra da Mão Direita em alguns contextos, recomenda-se o uso explícito force_polygon_cw function no lugar.

Sintaxe

force_rhr(geometry)

Argumentos

  • geometry - Uma geometria. Qualquer geometria que não for polígono são retornadas sem modificações.

Exemplos

  • 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))’

Leitura adicional: algoritmo Regra de força da mão direita., force_polygon_ccw, force_polygon_cw

13.2.13.38. geom_from_gml

Retorna uma geometria a partir de uma representação GML de geometria.

Sintaxe

geom_from_gml(gml)

Argumentos

  • gml - string representando a geometira em GML

Exemplos

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → um objeto de geometria de linha

13.2.13.39. geom_from_wkb

Retorna uma geometria criada a apartir de um uma representação Well-Known Binary (WKB).

Sintaxe

geom_from_wkb(binary)

Argumentos

  • binary - Representação Well-Known Binary (WKB) de uma geometria (como um binário blob)

Exemplos

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → um objeto de geomeria ponto

13.2.13.40. geom_from_wkt

Retorna uma geometria criada a partir de uma representação Well-Known Text (WKT - Texto Bem Conhecido)

Sintaxe

geom_from_wkt(text)

Argumentos

  • text - Representação de uma geometria em Well-Known Text (WKT)

Exemplos

  • geom_from_wkt( 'POINT(4 5)' ) → um objeto de geometria

13.2.13.41. geom_to_wkb

Retorna uma representação Well-known Binarye(WKB - Binário Bem Conhecido) da geometria

Sintaxe

geom_to_wkb(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • geom_to_wkb( @geometry ) → binary blob containing a geometry object

13.2.13.42. geom_to_wkt

Retorna a representação Well-Know Text (WKT - Texto Bem Conhecido) da geometria sem o metadado do SRID.

Sintaxe

geom_to_wkt(geometry, [precision=8])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • precision - precisão numérica

Exemplos

  • 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)’

13.2.13.43. $geometry

Retorna a geometria da feição atual. Pode ser utilizada para processamento com outras funções. ATENÇÃO: Esta função está obsoleta. É recomendado utilizar a variável de substituição @geometry.

Sintaxe

$geometry

Exemplos

  • geom_to_wkt( $geometry ) → ‘POINT(6 50)’

13.2.13.44. geometry

Retorna a geometria de uma feição.

Sintaxe

geometry(feature)

Argumentos

  • feature - um objeto feição

Exemplos

  • geometry( @feature ) → the geometry of the current feature. Prefer using @geometry.

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → a geometria em WKT ta feição de id 1 da camada “streets”, ex. ‘POINT(6 50)’

  • intersects( @geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → TRUE if the current feature spatially intersects the ‘Main St.’ named feature in the “streets” layer

13.2.13.45. geometry_n

Retorna uma geometria específica de uma coleção de geometrias, ou NULL se a geometria de entrada não for uma coleção. Também retorna uma parte de uma geometria multi partes.

Sintaxe

geometry_n(geometry, index)

Argumentos

  • geometry - coleção de geometria

  • index - indice da geometria a ser retornada, onde 1 é a primeira geometria na coleção

Exemplos

  • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → ‘Point (1 0)’

13.2.13.46. geometry_type

Retorna uma valor em texto descrevendo o tipo de uma geometria (Point, Line ou Polygon)

Sintaxe

geometry_type(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • geometry_type( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → ‘Line’

  • geometry_type( geom_from_wkt( 'MULTILINESTRING((2 5, 3 6, 4 8), (1 1, 0 0))') ) → ‘Line’

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → ‘Point’

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → ‘Polygon’

13.2.13.47. hausdorff_distance

Retorna a distância de Hausdorff entre duas geometrias. Este é básicamente a medição de quão similar ou diferentes duas geometrias são, quanto menor a distancia mais similares são as geometrias.

A função pode ser executada com um argumento opcional de fração densificar. Se não for especificado, é usada uma aproximação da distância padrão de Hausdorff. Essa aproximação é exata ou próxima o suficiente para um grande subconjunto de casos úteis. Exemplos destes são:

  • distância computada entre Linestrings que são aproximadamente paralelas umas às outras e aproximadamente iguais em comprimento. Isso ocorre em redes lineares correspondentes.

  • Teste de similaridade de geometrias.

Se a aproximação padrão fornecida por este método for insuficiente, especifique o argumento opcional de densificar fração. Especificar este argumento realiza uma densificação do segmento antes de calcular a distância discreta de Hausdorff. O parâmetro define a fração para densificar cada segmento. Cada segmento será dividido em vários subsegmentos de igual comprimento, cuja fração do comprimento total é a mais próxima da fração dada. Diminuir o parâmetro fração densificar fará com que a distância retornada se aproxime da verdadeira distância de Hausdorff para as geometrias.

Sintaxe

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] indica argumentos opcionais

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

  • densify_fraction - densificar quantidade de fração

Exemplos

  • 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

13.2.13.48. inclination

Retorna a inclinação medida do zênite (0) ao nadir (180) no point_a ao point_b.

Sintaxe

inclinação(ponto_a, ponto_b)

Argumentos

  • point_a - geometria de ponto

  • point_b - geometria de ponto

Exemplos

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0

13.2.13.49. interior_ring_n

Retorna um anél interior específico de uma geometria polígono, ou NULL se a geometria não for polígono.

Sintaxe

interior_ring_n(geometry, index)

Argumentos

  • geometry - geometria do polígono

  • index - índice do interior a ser retornado, onde 1 é o primeiro anél interior

Exemplos

  • 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))’

13.2.13.50. intersection

Retorna uma geometria que representa a porção compartilhada de duas geometrias.

Sintaxe

intersection(geometria1, geometria2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • geom_to_wkt( intersection( 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( intersection( 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)’

Leitura adicional: algoritmo Interseção

13.2.13.51. intersects

Testa quando a geometria faz intercessão com outra. Retorna VERDADEIRO se as geometrias espacialmente intercessionam (compartilham alguma porção no espaço) e falso quando não.

Sintaxe

intersects(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → TRUE

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → FALSE

Leitura adicional: overlay_intersects

13.2.13.52. intersects_bbox

Testa quando a geometria do retângulo envolvente sobrepõe outro retãngulo envolvente de outra geometria. Retorna VERDADEIRO se as geometrias espacialmente fazem intercessão com o retângulo envolvente definido e falso se não fizerem.

Sintaxe

intersects_bbox(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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

13.2.13.53. is_closed

Retorna VERDADEIRO se uma linha é fechada (pontos iniciais e finais são coincidentes), ou falso, se a linha não é fechada. Se a geometria não for uma linha então o resultado será NULO.

Sintaxe

is_closed(geometry)

Argumentos

  • geometry - uma geometria de linha

Exemplos

  • 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

13.2.13.54. is_empty

Retorna VERDADEIRO se a geometria está vazia (sem coordenadas), falso caso a geometria não estiver vazia e NULLO se não houver geometria. Veja também is_empty_or_null.

Sintaxe

is_empty(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • 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

Leitura adicional: is_empty_or_null

13.2.13.55. is_empty_or_null

Returns TRUE if a geometry is NULL or empty (without coordinates) or false otherwise. This function is like the expression @geometry IS NULL or is_empty(@geometry)’

Sintaxe

is_empty_or_null(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • 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

Leitura adicional: is_empty, NULL

13.2.13.56. is_multipart

Retorna VERDADEIRO se a geometria não for Multi tipo.

Sintaxe

is_multipart(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → TRUE

  • is_multipart(geom_from_wkt('POINT (0 0)')) → FALSE

13.2.13.57. is_valid

Retorna VERDADEIRO se a geometria for válida; se for bem formada em 2D de acordo com as regras OGC.

Sintaxe

is_valid(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → TRUE

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → FALSE

Leintura adicional: make_valid, algoritmo Verificar a validade algorithm

13.2.13.58. $length

Retorna o comprimento de uma linha. Se você precisar do comprimento da borda de um polígono, use $perimeter. O comprimento calculado por esta função respeita tanto a configuração do elipsóide do projeto atual quanto as configurações da unidade de distância. Por exemplo, se um elipsóide foi definido para o projeto, o comprimento calculado será elipsoidal, e se nenhum elipsóide for definido, o comprimento calculado será planimétrico.

Sintaxe

$length

Exemplos

  • $comprimento → 42.4711

13.2.13.59. length

Retorna o número de caracteres em uma string ou o tamanho de uma geometria linha.

Variante string

Retorna o número de caracteres em uma string.

Sintaxe

length(string)

Argumentos

  • string - string para contar o comprimento de

Exemplos

  • length('hello') → 5

Variante geometria

Calcule o comprimento de um objeto de geometria linha. Os cálculos são sempre planimétricos no Sistema de Referência Espacial (SRS) dessa geometria, e as unidades do comprimento retornado corresponderão às unidades do SRS. Isso difere dos cálculos realizados pela função $length, que realizará cálculos elipsoidais com base nas configurações de elipsóide e unidade de distância do projeto.

Sintaxe

length(geometry)

Argumentos

  • geometry - objeto de geometria linha

Exemplos

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

Leitura adicional: straight_distance_2d

13.2.13.60. length3D

Calcule o comprimento de um objeto de linha geométrica. Os cálculos são sempre planimétricos no Sistema de Referência Espacial (SRS) dessa geometria, e as unidades do comprimento retornado corresponderão às unidades do SRS. Isso difere dos cálculos realizados pela função $length, que realizará cálculos elipsoidais com base nas configurações de elipsóide e unidade de distância do projeto.

Sintaxe

length3D(geometry)

Argumentos

  • geometry - objeto de geometria linha

Exemplos

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

13.2.13.61. line_interpolate_angle

Retorna o ângulo paralelo à geometria a uma distância especificada ao longo de uma geometria de linhas. Os ângulos estão em graus no sentido horário do norte.

Sintaxe

line_interpolate_angle(geometry, distance)

Argumentos

  • geometry - Uma geometria de linha

  • distance - distância ao longo da linha para interpolar

Exemplos

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

13.2.13.62. line_interpolate_point

Retorna o ponto interpolado por uma distância específica ao longo de uma geometria de linha.

Sintaxe

line_interpolate_point(geometry, distance)

Argumentos

  • geometry - Uma geometria de linha

  • distance - distância ao longo da linha para interpolar

Exemplos

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 8 0)'), distance:=5)) → ‘Point (5 0)’

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 1, 2 0)'), distance:=2.1)) → ‘Point (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

Ponto interpolado a 500m do início da linha

Leitura adicional: algoritmo Interpolar ponto na linha

13.2.13.63. line_locate_point

Retorna a distância ao longo de uma linha correspondente à posição mais próxima da linha a uma geometria de ponto especificada.

Sintaxe

line_locate_point(geometry, point)

Argumentos

  • geometry - Uma geometria de linha

  • point - geometria do ponto para localizar a posição mais próxima na cadeia de linhas para

Exemplos

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

13.2.13.64. line_merge

Retorna uma geometria LineString ou MultiLineString, em que quaisquer LineStrings conectadas da geometria de entrada foram mescladas em uma única cadeia de linhas. Esta função retornará NULL se passar uma geometria que não seja uma LineString/MultiLineString.

Sintaxe

line_merge(geometry)

Argumentos

  • geometry - uma geometria LineString/MultiLineString

Exemplos

  • 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)’

13.2.13.65. line_substring

Retorna a parte de uma geometria de linha (ou curva) que fica entre as distâncias inicial e final especificadas (medidas a partir do início da linha). Os valores Z e M são interpolados linearmente a partir dos valores existentes.

Sintaxe

line_substring(geometry, start_distance, end_distance)

Argumentos

  • geometry - uma geometria de linha ou curva

  • start_distance - distância de inicio da sub linha

  • end_distance - distância para o fim da sub linha

Exemplos

  • 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

Linha de substring com começo posto em 0 metros e final 250 metros.

Leitura adicional: algoritmo Linha de substring.

13.2.13.66. m

Retorna o valor m (medição) de uma geometria de ponto.

Sintaxe

m(geometry)

Argumentos

  • geometry - uma geometria de ponto

Exemplos

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

13.2.13.67. m_at

Retrieves a m coordinate of the geometry, or NULL if the geometry has no m value.

Sintaxe

m_at(geometry, vertex)

Argumentos

  • geometry - objeto geométrico

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemplos

  • m_at(geom_from_wkt('LineStringZM(0 0 0 0, 10 10 0 5, 10 10 0 0)'), 1) → 5

13.2.13.68. m_max

Retorna o valor máximo de m (medida) de uma geometria.

Sintaxe

m_max(geometry)

Argumentos

  • geometry - uma geometria contendo valores m

Exemplos

  • 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

13.2.13.69. m_min

Retorna o valor mínimo de m (medida) de uma geometria.

Sintaxe

m_min(geometry)

Argumentos

  • geometry - uma geometria contendo valores m

Exemplos

  • 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

13.2.13.70. main_angle

Retorna o ângulo do eixo longo (no sentido horário, em graus a partir do Norte) do retângulo envolvente mínimo orientado, que cobre completamente a geometria.

Sintaxe

main_angle(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

13.2.13.71. make_circle

Cria um polígono circular.

Sintaxe

make_circle(center, radius, [segments=36])

[] indica argumentos opcionais

Argumentos

  • center - ponto central do círculo

  • radius - raio do círculo

  • segments - argumento opcional para segmentação de polígonos. Por padrão esse valor é 36

Exemplos

  • 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))’

13.2.13.72. make_ellipse

Cria um polígono elíptico.

Sintaxe

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36])

[] indica argumentos opcionais

Argumentos

  • center - ponto central da elipse

  • semi_major_axis - eixo semi maior da elipse

  • semi_minor_axis - eixo semi menor da elipse

  • azimuth - orientação da elipse

  • segments - argumento opcional para segmentação de polígonos. Por padrão esse valor é 36

Exemplos

  • 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))’

13.2.13.73. make_line

Cria uma geometria de linha a partir de uma série de geometrias de ponto.

Lista de variantes de argumentos

Os vértices de linha são especificados como argumentos separados para a função.

Sintaxe

make_line(point1, point2, …)

Argumentos

  • point - uma geometria de ponto (ou array de pontos)

Exemplos

  • 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)’

Variante array

Os vértices de linha são especificados como um array de pontos.

Sintaxe

make_line(array)

Argumentos

  • array - array de pontos

Exemplos

  • 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)’

13.2.13.74. make_point

Cria uma geometria de ponto a partir de x e y (e valores z e m opcionais).

Sintaxe

make_point(x, y, [z], [m])

[] indica argumentos opcionais

Argumentos

  • x - coordenada x do ponto

  • y - coordenada y do ponto

  • z - coordenada z opcional do ponto

  • m - valor m opcional do ponto

Exemplos

  • geom_to_wkt(make_point(2,4)) → ‘Point (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)’

13.2.13.75. make_point_m

Cria uma geometria de ponto a partir de uma coordenada x, y e um valor m.

Sintaxe

criar_ponto_m(x, y, m)

Argumentos

  • x - coordenada x do ponto

  • y - coordenada y do ponto

  • m - valor m do ponto

Exemplos

  • geom_to_wkt(make_point_m(2,4,6)) → ‘PointM (2 4 6)’

13.2.13.76. make_polygon

Cria uma geometria de polígono a partir de um anel externo e uma série opcional de geometrias de anel interno.

Sintaxe

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] indica argumentos opcionais

Argumentos

  • outerRing - geometria linha fechada para o anel externo do polígono

  • innerRing - linha fechada opcional para o anel interior

Exemplos

  • 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))’

13.2.13.77. make_rectangle_3points

Cria um retângulo a partir de 3 pontos.

Sintaxe

make_rectangle_3points(point1, point2, point3, [option=0])

[] indica argumentos opcionais

Argumentos

  • point1 - Primeiro ponto.

  • point2 - Segundo ponto.

  • point3 - Terceiro ponto.

  • option - Um argumento opcional para construir o retângulo. Por padrão este valor é 0. O valor pode ser 0 (distância) ou 1 (projetado). Opção distância: A segunda distância é igual à distância entre o 2º e o 3º ponto. Opção projetada: A segunda distância é igual à distância da projeção perpendicular do 3º ponto sobre o segmento ou sua extensão.

Exemplos

  • 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))’

13.2.13.78. make_regular_polygon

Cria um polígono regular.

Sintaxe

make_regular_polygon(center, radius, number_sides, [circle=0])

[] indica argumentos opcionais

Argumentos

  • center - centro do polígono regular

  • radius - segundo ponto. A primeira se o polígono regular estiver inscrito. O ponto médio do primeiro lado se o polígono regular for circunscrito.

  • numero_lados - Número de lados/bordas do polígono regular

  • circle - Argumento opcional para a construção do poligono regular. Por padrão o valor é 0. Valor pode ser 0 (inscrito) ou 1 (circunscrito)

Exemplos

  • 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))’

13.2.13.79. make_square

Cria um quadrado a partir da diagonal.

Sintaxe

make_square(point1, point2)

Argumentos

  • point1 - Primeiro ponto da diagonal

  • point2 - Último ponto da diagonal

Exemplos

  • 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))’

13.2.13.80. make_triangle

Cria um polígono triangular.

Sintaxe

make_triangle(point1, point2, point3)

Argumentos

  • point1 - primeiro ponto do triângulo

  • point2 - segundo ponto do triângulo

  • point3 - terceiro ponto do triângulo

Exemplos

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → ‘Triangle ((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)’

13.2.13.81. make_valid

Retorna uma geometria válida ou uma geometria vazia se a geometria não puder ser tornada valida.

Sintaxe

make_valid(geometry, [method=structure], [keep_collapsed=false])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • method - algoritmo de reparo. Pode ser ‘structure’ ou ‘linework’. A opção ‘linework’ combina todos os anéis em um conjunto de linhas com nós e então extrai polígonos válidos desse linework. O método ‘structure’ primeiro torna todos os anéis válidos e, em seguida, mescla as cascas e subtrai os buracos das cascas para gerar um resultado válido. Assume que os furos e cascas são categorizados corretamente.

  • keep_collapsed - se definido como true, os componentes que foram recolhidos em uma dimensionalidade inferior serão mantidos. Por exemplo, um anel colapsando em uma linha ou uma linha colapsando em um ponto.

Exemplos

  • 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)')) → An empty geometry

Leitura adicional: algoritmo is_valid, Corrigir geometrias

13.2.13.82. minimal_circle

Retorna o círculo mínimo de uma geometria. Ele representa o círculo mínimo que envolve todas as geometrias dentro do conjunto.

Sintaxe

minimal_circle(geometry, [segments=36])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • segments - argumento opcional para segmentação de polígonos. Por padrão esse valor é 36

Exemplos

  • 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

Minimal enclosing circle of each feature

Leitura adicional: algoritmo Círculos mínimos fechados.

13.2.13.83. nodes_to_points

Retorna uma geometria multiponto que consiste em cada nó na geometria de entrada.

Sintaxe

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] indica argumentos opcionais

Argumentos

  • geometry - objeto geométrico

  • ignore_closing_nodes - argumento opcional que especifica se deve incluir nós duplicados que fecham linhas ou anéis de polígonos. O padrão é false, definido como true para evitar incluir esses nós duplicados na coleção de saída.

Exemplos

  • 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

Multi-point feature extracted from vertices

Leitura adicional: algoritmo Extrair vértices

13.2.13.84. num_geometries

Retorna o número de geometrias em uma coleção de geometrias, ou o número de partes em uma geometria multi parte. A função retorna NULO se a geometria de entrada não for uma coleção.

Sintaxe

num_geometries(geometry)

Argumentos

  • geometry - uma coleção de geometria ou uma geometria multi parte

Exemplos

  • 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

13.2.13.85. num_interior_rings

Retorna o número de anéis interiores em um polígono ou coleção de geometrias, ou NULL se a geometria de entrada não for polígono ou coleção.

Sintaxe

num_interior_rings(geometry)

Argumentos

  • geometry - geometria de entrada

Exemplos

  • 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

13.2.13.86. num_points

Retorna o número de vértices em uma geometria.

Sintaxe

num_points(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • num_points(@geometry) → number of vertices in the current feature’s geometry

13.2.13.87. num_rings

Retorna o número de anéis (incluindo anéis externos) em um polígono ou coleção de geometrias ou NULO se a geometria de entrada não for um polígono ou coleção.

Sintaxe

num_rings(geometry)

Argumentos

  • geometry - geometria de entrada

Exemplos

  • 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

13.2.13.88. offset_curve

Retorna uma geometria formada pelo deslocamento de uma geometria linha para o lado. As distâncias estão no Sistema de Referência Espacial desta geometria.

Sintaxe

offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria (multi) linha

  • distance - distância de deslocamento. Valores positivos serão gerados a esquerda das linhas, valores negativos para a direita

  • segments - número de segmentos a ser usado para representar um quarto de círculo quando um estilo de união arredondado é utilizado. Valores maiores resultam em linhas mais suaves com mais nós.

  • join - estilo de junção dos cantos, onde 1 = round, 2 = miter e 3 = bevel

  • miter_limit - limite na proporção de esquadria usada para cantos muito afiados (ao usar apenas junções de esquadria)

Exemplos

  • offset_curve(@geometry, 10.5) → line offset to the left by 10.5 units

  • offset_curve(@geometry, -10.5) → line offset to the right by 10.5 units

  • offset_curve(@geometry, 10.5, segments:=16, join:=1) → line offset to the left by 10.5 units, using more segments to result in a smoother curve

  • offset_curve(@geometry, 10.5, join:=3) → line offset to the left by 10.5 units, using a beveled join

../../../_images/offset_lines.png

Em azul a camada de origem, em vermelho a de deslocamento

Leitura adicional: algoritmo Linhas de desvio.

13.2.13.89. order_parts

Ordena as partes de um MultiGeometry por um determinado critério

Sintaxe

order_parts(geometry, orderby, [ascending=true])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria de vários tipos

  • orderby - uma expressão que define os critérios de ordenação

  • ascending - booleano, verdadeiro para ascendente, falso para descendente

Exemplos

  • 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)’

13.2.13.90. oriented_bbox

Retorna uma geometria que representa o menor retângulo envolvente orientado de uma geometria de entrada.

Sintaxe

oriented_bbox(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • 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

Orientação mínima da caixa limitante.

Leitura adicional: algoritmo Orientação mínima da caixa limitante.

13.2.13.91. overlaps

Testa quando a geometria sobrepõe outra. Retorna VERDADEIRO se as geometrias compartilham espaço, são da mesma dimensão, mas não estão completamente contidas umas nas outras.

Sintaxe

overlaps(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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

13.2.13.92. overlay_contains

Retorna quando a feição atual contém espacialmente no mínimo uma feição de uma camada alvo, ou um lista baseada em expressão de resultados de feições na camada alvo contidas pela feição atual.

Leia mais sobre o predicado GEOS “Contains” , como descrito na função do PostGIS `ST_Contains<https://postgis.net/docs/ST_Contains.html>`_.

Sintaxe

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_contains('regions') → VERDADEIRO se a feição espacialmente contiver uma region

  • overlay_contains('regions', filter:= population > 10000) → VERDADEIRO se a feição atual espacialmente contém uma ‘region’ com ‘population’ maior que 10000

  • overlay_contains('regions', name) → uma lista de ‘name’, para regiões contidas pela feição atual

  • array_to_string(overlay_contains('regions', name)) → uma lista de nomes em uma string separada por vírgula, para as regiões contidas na feição atual.

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → uma lista ordenada de ‘name’, para as regiões contidas pela feição atual e com ‘population’ maior que 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions contained in the current feature

Leitura adicional: contains, manipulação de arrays, algoritmo Selecionar pela localização

13.2.13.93. overlay_crosses

Retorna quando a feição atual espacialmente cruza uma feição de uma camada alvo, ou uma lista de resultados baseados em expressão para as feições na camada alvo cruzadas pela feição atual.

Leia mais sobre o predicado GEOS “Crosses”, conforme descrito na função PostGIS ST_Crosses.

Sintaxe

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_crosses('regions') → VERDADEIRO se a feição atual espacialmente cruzar uma região.

  • overlay_crosses('regions', filter:= population > 10000) → VERDADEIRO se a feição atual espacialmente cruzar com uma ‘region’ com ‘population’ maior que 10000

  • overlay_crosses('regions', name) → uma lista de nomes, para as ‘regions’ cruzadas pela feição atual

  • array_to_string(overlay_crosses('regions', name)) → uma string separada por vírgulas da lista de ‘name’, para ‘regions’ cruzadas pela feição atual

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → uma lista ordenada de ‘name’, para cada ‘region’ cruzada pela feição atual e com ‘population’ maior que 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions crossed by the current feature

Leitura adicional: crosses, manipulação de array, algoritmo Selecionar pela localização

13.2.13.94. overlay_disjoint

Retorna se a feição atual está separada espacialmente de todos as feições de uma camada de destino ou de uma lista de resultados baseados em expressão para as feições na camada de destino que estão separados da feição atual.

Leia mais sobre o predicado GEOS “Disjoint”, conforme descrito na função PostGIS ST_Disjoint.

Sintaxe

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_disjoint('regions') → VERDADEIRO se a feição atual for espacialmente separada de todas as ‘regions’

  • overlay_disjoint('regions', filter:= population > 10000) → VERDADEIRO se a feição atual for espacialmente separada de todas ‘regions’ com ‘population’ maior que 10000

  • overlay_disjoint('regions', name) → uma lista de ‘name’, para ‘regions’ que estão espacialmente separadas da feição atual

  • array_to_string(overlay_disjoint('regions', name)) → uma string de valores separados por vírgula da lista de ‘name’, com cada ‘regions’ separadas espacialmente da feição atual

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → uma lista ordenada de ‘name’, de cada ‘region’ espacialmente separada da feição atual e com população maior que 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially disjoint from the current feature

Leitura adicional: disjoint, manipulação de array, algoritimo Selecionar pela localização

13.2.13.95. overlay_equals

Retorna quando a feição atual é espacialmente igual a pelo menos uma feição da camada alvo, ou uma lista baseada em expressão de resultados das feições na camada alvo que são espacialmente iguais à feição atual.

Leia mais sobre o predicado GEOS “Equals” acima, conforme descrito na função PostGIS ST_Equals function.

Sintaxe

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_equals('regions') → VERDADEIRO se a feição atual for espacialmente igual a ‘regions’

  • overlay_equals('regions', filter:= population > 10000) → VERDADEIRO se a feição atual for espacialmente igual a uma região com população maior que 10000

  • overlay_equals('regions', name) → uma lista de nomes, para as regiões espacialmente igual à feição atual

  • array_to_string(overlay_equals('regions', name)) → uma lista de nomes separados por vírgula para as regiões espacialmente iguais à feição atual

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → uma lista de nomes ordenada das regiões espacialmente iguais à feição atual e com “population” maior que 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially equal to the current feature

Leitura adicional: manipulação de array, algoritmo Selecionar pela localização

13.2.13.96. overlay_intersects

Retorna se feição atual intercepta espacialmente pelo menos uma feição de uma camada de destino ou uma matriz de resultados baseados em expressão para as feições na camada de destino interceptados pela feição atual.

Leia mais sobre o predicado GEOS “Intersects”, como descrito na função PostGIS ST_Intersects.

Sintaxe

overlay_intersects(layer, [expression], [filter], [limit], [cache=false], [min_overlap], [min_inscribed_circle_radius], [return_details], [sort_by_intersection_size])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

  • min_overlap - define um filtro de exclusão opcional:

    • para polígonos, uma área mínima em unidades quadradas da feição atual para a interseção. Se a interseção resultar em vários polígonos a interseção será retornada se pelo menos um dos polígonos tiver uma área maior ou igual ao valor

    • para linhas, um comprimento mínimo em unidades da feição atual. Se a interseção resultar em várias linhas, a interseção será retornada se pelo menos uma das linhas tiver um comprimento maior ou igual ao valor.

  • min_inscribed_circle_radius - define um filtro de exclusão opcional (somente para polígonos): raio mínimo em unidades da feição atual para o círculo inscrito máximo da interseção. Se a interseção resultar em vários polígonos, a interseção será retornada se pelo menos um dos polígonos tiver um raio para o círculo máximo inscrito maior ou igual ao valor.

    Leia mais sobre predicado GEOS, como descrito na função PostGIS ST_MaximumInscribedCircle.

    Este argumento requer GEOS >= 3.9.

  • return_details - Defina como true para retornar uma lista de mapas contendo (nomes de chave entre aspas) o ‘id’ da feição, a expressão ‘result’ e o valor ‘overlap’. O ‘radius’ do círculo inscrito máximo também é retornado quando a camada de destino é um polígono. Válido apenas quando usado com o parâmetro de expressão

  • sort_by_intersection_size - somente válido quando utilizado em uma expressão, defina como ‘des’ para retornar os resultados ordenados pelo valor de sobreposição ou defina como ‘asc’ para ordenação ascendente.

Exemplos

  • overlay_intersects('regions') → VERDADEIRO se a feição atual espacialmente fizer intercessão com uma região

  • overlay_intersects('regions', filter:= population > 10000) → VERDADEIRO se a feição atual espacialmente fizer intercessão com uma região com população maior que 10000

  • overlay_intersects('regions', name) → um arrau de nomes, para as regiões interceptadas pela feição atual

  • array_to_string(overlay_intersects('regions', name)) → uma lista separada por vírgula em string de nomes, para “regions” enterceptadas pela feição atual

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → um array ordenada de “name” para “region” interceptadas pela feição atual e com “population” maior que 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions intersected by the current feature

  • overlay_intersects(layer:='regions', min_overlap:=0.54) → VERDADEIRO se a feição atual espacialmente fizer intercessão com uma região e a área da intercessão (de pelo menos uma das partes no caso de multi poligonos) for maior ou igual a 0.54

  • overlay_intersects(layer:='regions', min_inscribed_circle_radius:=0.54) → VERDADEIRO se a feição atual espacialmente fizer intercessão com uma região e o raio máximo do círculo inscrito da área de interseção (de pelo menos uma das partes no caso de multipartes) for maior ou igual a 0,54

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), return_details:=true) → an array of maps containing ‘id’, ‘result’, ‘overlap’ and ‘radius’

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), sort_by_intersection_size:='des') → an array of geometries (in WKT) ordered by the overlap value in descending order

Leitura adicional: intersects, manipulação de array, algoritmo Selecionar pela localização

13.2.13.97. overlay_nearest

Retorna se a feição atual tem feições de uma camada de destino dentro de uma determinada distância ou uma matriz de resultados baseados em expressões para as feições na camada de destino dentro de uma distância da feição atual.

Nota: Esta função pode ser lenta e consumir muita memória para camadas grandes.

Sintaxe

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer - a camada alvo

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filtro - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não estiver definido, todas as feições da camada alvo serão usadas.

  • limit - um inteiro opcional para limitar o número de feições correspondentes. Se não for definido, apenas a feição mais próxima será retornada. Se definido como -1, retorna todas as feições correspondentes.

  • max_distance - uma distãncia opcional para limitar a busca de feições correspondentes. se não for preenchida, todas as feições na camada alvo serão utilizadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_nearest('airports') → VERDADEIRO se a camada “airports” possuir ao menos uma feição.

  • overlay_nearest('airports', max_distance:= 5000) → VERDADEIRO se houver um aeroporto dentro de uma distância de 5000 unidade do mapa da feição atual

  • overlay_nearest('airports', name) → “nome” do “airport” mais próximo à feição atual, como uma lista

  • array_to_string(overlay_nearest('airports', name)) → nome do airport mais próximo à feição atual, como um texto.

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → nome do airport mais próximo dentro de uma distância de 5.000 unidades do mapa da feição atual, como uma lista

  • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → uma lista de nomes, para até três aeroportos civís próximos ordenados pela distância

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → um a lista de nomes, de todos os aeroportos dentro de uma distância de 5000 unidades do mapa a partir da feição atual, ordenado pela distância

Leitura adicional: manipulação de array, algoritmo Unir atributos por mais próximo

13.2.13.98. overlay_touches

Retorna se a feição atual toca espacialmente pelo menos uma feição de uma camada de destino ou uma matriz de resultados baseados em expressão para as feições na camada de destino tocadas pela feição atual.

Leia mais sobre o predicado subjacente “Touches” do GEOS, conforme descrito na função ST_Touches do PostGIS.

Sintaxe

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_touches('regions') → VERDADEIRO se a feição atual espacialmente tocar uma região

  • overlay_touches('regions', filter:= population > 10000) → TRUE se a feição atual espacialmente tocar uma região com uma população maior que 10000

  • overlay_touches('regions', name) → uma lista de nomes, das regiões tocadas pela feição atual.

  • string_to_array(overlay_touches('regions', name)) → texto separado por virgula de uma lista de nomes, das regiões tocadas pela feição atual

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → uma lista de nomes ordenados, das regiões tocadas pela feição atual e com população maior que 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions touched by the current feature

Leitura adicional: touches, manipulação de array, algoritmo Selecionar pela localização

13.2.13.99. overlay_within

Retorna se a feição atual está espacialmente dentro de pelo menos uma feição da camada de destino ou uma matriz de resultados baseados em expressão para as feições na camada de destino que contém a feição atual.

Leia mais sobre o predicado GEOS “dentro” subjacente, conforme descrito na função ST_Within do PostGIS.

Sintaxe

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] indica argumentos opcionais

Argumentos

  • layer* - a camada cuja sobreposição é verificada

  • expression - uma expressão opcional para avaliar as feições da camada alvo. Se não fornecida, a função irá retornar um booleano indicando que possui ao menos uma combinação.

  • filter - uma expressão opcional para filtrar as feições alvo a serem verificadas. Se não fornecida, todas as feições serão verificadas.

  • limit - um inteiro opcional para limitar o número de feições combinadas. Se não fornecido, todas as combinações serão retornadas.

  • cache - configure como verdadeiro para construir um índice espacial local (na maioria das vezes, isso é indesejado, a menos que esteja trabalhando em um provedor de dados particularmente lento)

Exemplos

  • overlay_within('regions') → VERDADEIRO se a feição atual for espacialmente contida por uma região

  • overlay_within('regions', filter:= population > 10000) → VERDADEIRO se a feição atual é espacialmente continda por uma região com uma população maior que 10000

  • overlay_within('regions', name) → uma lista de nomes, das regiões que contém a feição atual

  • array_to_string(overlay_within('regions', name)) → uma lista em texto separado por vírgula dos nomes das regiões que contém a feição atual

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → uma lista ordenada de nomes das regiões que contém a feição atual e que possuem uma população maior que 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions containing the current feature

Leitura adicional: within, manipulação de array, algoritmo Selecionar pela localização

13.2.13.100. $perimeter

Retorna o comprimento do perímetro da feição atual. O perímetro calculado por esta função respeita a configuração do elipsóide do projeto atual e as configurações da unidade de distância. Por exemplo, se um elipsóide foi definido para o projeto, o perímetro calculado será elipsoidal e, se nenhum elipsóide for definido, o perímetro calculado será planimétrico.

Sintaxe

$perimeter

Exemplos

  • $perimeter → 42

13.2.13.101. perimeter

Retorna o perímetro de um objeto de polígono geométrico. Os cálculos são sempre planimétricos no Spatial Reference System (SRS) dessa geometria, e as unidades do perímetro retornado corresponderão às unidades do SRS. Isso difere dos cálculos executados pela função $perimeter, que realizará cálculos elipsoidais com base nas configurações do elipsóide e da unidade de distância do projeto.

Sintaxe

perimeter(geometry)

Argumentos

  • geometry - objeto de geometria de polígono

Exemplos

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

13.2.13.102. point_n

Retorna um nó específico de uma geometria.

Sintaxe

point_n(geometry, index)

Argumentos

  • geometry - objeto geométrico

  • index - índice do nó a ser retornado, onde 1 é o primeiro nó; se o valor for negativo, o índice do vértice selecionado será sua contagem total menos o valor absoluto

Exemplos

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → ‘Point (4 0)’

Leitura adicional: algoritmo Extrair vértices específicos

13.2.13.103. point_on_surface

Retorna um ponto garantido estar na superfície de uma geometria.

Sintaxe

point_on_surface(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • point_on_surface(@geometry) → a point geometry

Leitura adicional: algoritmo Ponto na Superfície

13.2.13.104. pole_of_inaccessibility

Calcula o pólo aproximado de inacessibilidade para uma superfície, que é o ponto interno mais distante do limite da superfície. Essa função usa o algoritmo ‘polylabel’ (Vladimir Agafonkin, 2016), que é uma abordagem iterativa garantida para encontrar o verdadeiro pólo de inacessibilidade dentro de uma tolerância especificada. Tolerâncias mais precisas requerem mais iterações e demoram mais para serem calculadas.

Sintaxe

pole_of_inaccessibility(geometry, tolerance)

Argumentos

  • geometry - uma geometria

  • tolerance - distância máxima entre o ponto retornado e a localização do pólo verdadeiro

Exemplos

  • 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

Pólo de inacessibilidade

Leitura adicional: algoritmo Pólo de inacessibilidade

13.2.13.105. project

Retorna um ponto projetado de um ponto inicial usando uma distância, um rumo (azimute) e uma elevação em radianos.

Sintaxe

project(point, distance, azimuth, [elevation])

[] indica argumentos opcionais

Argumentos

  • point - ponto inicial

  • distance - distância a projetar

  • azimuth - azimute em radianos no sentido horário, onde 0 corresponde ao norte

  • elevation - ângulo de inclinação em radianos

Exemplos

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → ‘Point(-2, 2)’

Leitura adicional: algoritmo Projetar pontos (Cartesiano)

13.2.13.106. relate

Testa a representação do modelo de interseção 9 estendido dimensional (DE-9IM) da relação entre duas geometrias.

Variante de relação

Retorna a representação Dimensional Extended 9 Intersection Model (DE-9IM) da relação entre duas geometrias.

Sintaxe

relate(geometry, geometry)

Argumentos

  • geometry - uma geometria

  • geometry - uma geometria

Exemplos

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → ‘FF1F00102’

Variante de correspondência de padrão

Testa se a relação DE-9IM entre duas geometrias corresponde a um padrão especificado.

Sintaxe

relate(geometry, geometry, pattern)

Argumentos

  • geometry - uma geometria

  • geometry - uma geometria

  • pattern - DE-9IM padrão a combinar

Exemplos

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → TRUE

13.2.13.107. reverse

Inverte a direção de uma cadeia de linha invertendo a ordem de seus vértices.

Sintaxe

reverse(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • 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

Reversing line direction

Leitura adicional: algoritmo Direção reversa da linha

13.2.13.108. rotate

Retorna uma versão rotacionada de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria.

Sintaxe

rotate(geometry, rotation, [center=NULL], [per_part=false])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • rotation - rotação no sentido horário em graus

  • center - ponto central de rotação. Se não for especificado, o centro da caixa delimitadora da geometria será usado.

  • per_part - aplicar rotação por parte. Se for verdadeiro, a rotação será aplicada em torno do centro do retângulo envolvente de cada peça quando a geometria de entrada for multipartes e um ponto central de rotação explícito não for especificado.

Exemplos

  • rotate(@geometry, 45, make_point(4, 5)) → geometry rotated 45 degrees clockwise around the (4, 5) point

  • rotate(@geometry, 45) → geometry rotated 45 degrees clockwise around the center of its bounding box

../../../_images/rotate.gif

Rotação de feições

13.2.13.109. roundness

Calcula o quão próximo a forma de um polígono está de um círculo. A função retorna VERDADEIRO quando a forma do polígono é um circulo perfeito e 0 quando for completamente plano.

Sintaxe

roundness(geometry)

Argumentos

  • geometry - um polígono

Exemplos

  • 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

Leitura adicional: algoritmo Grau de arredondamento

13.2.13.110. scale

Retorna uma versão em escala de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria.

Sintaxe

scale(geometry, x_scale, y_scale, [center])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • x_scale - fator de escala do eixo x

  • y_scale - fator de escala do eixo y

  • center - ponto central de escala. Se não for especificado, será usado o centro do retângulo envolvente da geometria.

Exemplos

  • scale(@geometry, 2, 0.5, make_point(4, 5)) → geometry scaled twice horizontally and halved vertically, around the (4, 5) point

  • scale(@geometry, 2, 0.5) → geometry twice horizontally and halved vertically, around the center of its bounding box

13.2.13.111. segments_to_lines

Retorna uma geometria de várias linhas que consiste em uma linha para cada segmento na geometria de entrada.

Sintaxe

segments_to_lines(geometry)

Argumentos

  • geometry - objeto geométrico

Exemplos

  • 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))’

Leitura adicional: algoritmo Explodir linhas

13.2.13.112. shared_paths

Returns a collection containing paths shared by the two input geometries. Those going in the same direction are in the first element of the collection, those going in the opposite direction are in the second element. The paths themselves are given in the direction of the first geometry.

Sintaxe

shared_paths(geometry1, geometry2)

Argumentos

  • geometry1 - a LineString/MultiLineString geometry

  • geometry2 - a LineString/MultiLineString geometry

Exemplos

  • 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)))’

13.2.13.113. shortest_line

Retorna a linha mais curta que une geometria1 a geometria2. A linha resultante começará em geometria1 e terminará em geometria2.

Sintaxe

shortest_line(geometry1, geometry2)

Argumentos

  • geometry1 - geometria para encontrar a linha mais curta de

  • geometry2 - geometria para encontrar a linha mais curta para

Exemplos

  • 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)’

13.2.13.114. simplify

Simplifica uma geometria removendo nós usando um limite baseado em distância (ou seja, o algoritmo de Douglas Peucker). O algoritmo preserva grandes desvios nas geometrias e reduz o número de vértices em segmentos quase retos.

Sintaxe

simplify(geometry, tolerance)

Argumentos

  • geometry - uma geometria

  • tolerance - desvio máximo de segmentos retos para pontos a serem removidos

Exemplos

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → ‘LineString(0 0, 10 0)’

../../../_images/simplify_geometries.png

From left to right, source layer and increasing simplification tolerances

Leitura adicional: algoritmo Simplificar

13.2.13.115. simplify_vw

Simplifica uma geometria removendo nós usando um limite baseado em área (ou seja, o algoritmo de Visvalingam-Whyatt). O algoritmo remove vértices que criam pequenas áreas em geometrias, por exemplo, picos estreitos ou segmentos quase retos.

Sintaxe

simplify_vw(geometry, tolerance)

Argumentos

  • geometry - uma geometria

  • tolerance - uma medida da área máxima criada por um nó para que o nó seja removido

Exemplos

  • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → ‘LineString(0 0, 10 0)’

Leitura adicional: algoritmo Simplificar

13.2.13.116. single_sided_buffer

Retorna uma geometria formada pelo buffer de apenas um lado de uma geometria linestring. As distâncias estão no Sistema de Referência Espacial desta geometria.

Sintaxe

single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria (multi) linha

  • distance - distância do buffer. Os valores positivos serão armazenados à esquerda das linhas, os valores negativos à direita

  • segments - número de segmentos a serem usados para representar um quarto de círculo quando um estilo de junção arredondada é usado. Um número maior resulta em um buffer mais suave com mais nós.

  • join - estilo de junção dos cantos, onde 1 = round, 2 = miter e 3 = bevel

  • miter_limit - limite na proporção de esquadria usada para cantos muito afiados (ao usar apenas junções de esquadria)

Exemplos

  • single_sided_buffer(@geometry, 10.5) → line buffered to the left by 10.5 units

  • single_sided_buffer(@geometry, -10.5) → line buffered to the right by 10.5 units

  • single_sided_buffer(@geometry, 10.5, segments:=16, join:=1) → line buffered to the left by 10.5 units, using more segments to result in a smoother buffer

  • single_sided_buffer(@geometry, 10.5, join:=3) → line buffered to the left by 10.5 units, using a beveled join

../../../_images/single_side_buffer.png

Buffer do lado esquerdo versus direito na mesma camada de linha vetorial

Leitura adicional: algoritmo Buffer de lado único

13.2.13.117. sinuosity

Retorna a sinuosidade de uma curva, que é a razão entre o comprimento da curva e a distância reta (2D) entre suas extremidades.

Sintaxe

sinuosity(geometry)

Argumentos

  • geometry - curva de entrada (circularstring, linestring)

Exemplos

  • round(sinuosity(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

13.2.13.118. smooth

Suaviza uma geometria adicionando nós extras que arredondam os cantos na geometria. Se as geometrias de entrada contiverem valores Z ou M, eles também serão suavizados e a geometria de saída manterá a mesma dimensionalidade da geometria de entrada.

Sintaxe

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • iterations - número de iterações de suavização a serem aplicadas. Números maiores resultam em geometrias mais suaves, porém mais complexas.

  • offset - valor entre 0 e 0,5, que controla o quanto a geometria suavizada segue a geometria original. Valores menores resultam em uma suavização mais apertada, valores maiores resultam em uma suavização mais frouxa.

  • min_length - comprimento mínimo de segmentos para aplicar a suavização. Este parâmetro pode ser usado para evitar colocar nós adicionais em excesso em segmentos mais curtos da geometria.

  • max_angle - ângulo máximo no nó para suavização a ser aplicada (0-180). Ao diminuir o ângulo máximo, cantos agudos intencionalmente na geometria podem ser preservados. Por exemplo, um valor de 80 graus manterá os ângulos retos na geometria.

Exemplos

  • 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

Um número crescente de iterações terá como resultado geometrias mais suaves.

Leitura adicional: algoritmo Suave

13.2.13.119. square_wave

Constructs square/rectangular waves along the boundary of a geometry.

Sintaxe

square_wave(geometry, wavelength, amplitude, [strict=False])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • wavelength - wavelength of square waveform

  • amplitude - amplitude of square waveform

  • strict - By default the wavelength argument is treated as a “maximum wavelength”, where the actual wavelength will be dynamically adjusted so that an exact number of square waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Exemplos

  • square_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Square waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/square_wave.png

Symbolizing features with square waves

13.2.13.120. square_wave_randomized

Constructs randomized square/rectangular waves along the boundary of a geometry.

Sintaxe

square_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Exemplos

  • square_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized square waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/square_wave_randomized.png

Symbolizing features with square randomized waves

13.2.13.121. start_point

Retorna o primeiro nó de uma geometria.

Sintaxe

start_point(geometry)

Argumentos

  • geometry - objeto geométrico

Exemplos

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ‘Point (4 0)’

../../../_images/start_point.png

Starting point of a line feature

Further reading: end_point, Extrair vértices específicos algorithm

13.2.13.122. straight_distance_2d

Retorna a distância direta/euclidiana entre o primeiro e o último vértice de uma geometria. A geometria deve ser uma curva (sequência circular, sequência de linhas).

Sintaxe

straight_distance_2d(geometry)

Argumentos

  • geometry - A geometria.

Exemplos

  • straight_distance_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • round(straight_distance_2d(geom_from_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5.657

Leitura adicional: length

13.2.13.123. sym_difference

Retorna uma geometria que representa as partes de duas geometrias que não se intersectam.

Sintaxe

sym_difference(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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)’

Leitura adicional: algoritmo Diferença simétrica

13.2.13.124. tapered_buffer

Cria um buffer ao longo de uma geometria de linha onde o diâmetro do buffer varia uniformemente ao longo do comprimento da linha.

Sintaxe

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] indica argumentos opcionais

Argumentos

  • geometry - geometria de entrada. Deve ser uma geometria de (multi)linha.

  • start_width - largura do buffer no início da linha,

  • end_width - largura do buffer no final da linha.

  • segments - número de segmentos para aproximar as curvas de um quarto de círculo no buffer.

Exemplos

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → Um buffer cônico começando com um diâmetro de 1 e terminando com um diâmetro de 2 ao longo da geometria linestring.

../../../_images/tapered_buffer.png

Buffer cônico em feições de linha

Leitura adicional: algoritmo Buffers cônicos.

13.2.13.125. touches

Tests whether a geometry touches another. Returns TRUE if the geometries have at least one point in common, but their interiors do not intersect.

Sintaxe

touches(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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

Leitura adicional: overlay_touches

13.2.13.126. transform

Retorna a geometria transformada de um CRS de origem para um CRS de destino.

Sintaxe

transform(geometry, source_auth_id, dest_auth_id)

Argumentos

  • geometry - uma geometria

  • source_auth_id - Id da autoridade SRC de origem

  • dest_auth_id - Id da autoridade SRC de destino

Exemplos

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → ‘POINT(0 51)’

Leitura adicional: algoritmo Reprojetar camada

13.2.13.127. translate

Retorna uma versão traduzida de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria.

Sintaxe

translate(geometry, dx, dy)

Argumentos

  • geometry - uma geometria

  • dx - delta x

  • dy - delta y

Exemplos

  • translate(@geometry, 5, 10) → a geometry of the same type like the original one

../../../_images/translate_geometry.png

Tradução de Feições

Leitura adicional: algoritmo Transladar

13.2.13.128. triangular_wave

Constructs triangular waves along the boundary of a geometry.

Sintaxe

triangular_wave(geometry, wavelength, amplitude, [strict=False])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • wavelength - wavelength of triangular waveform

  • amplitude - amplitude of triangular waveform

  • strict - By default the wavelength argument is treated as a “maximum wavelength”, where the actual wavelength will be dynamically adjusted so that an exact number of triangular waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Exemplos

  • triangular_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Triangular waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/triangular_wave.png

Symbolizing features with triangular waves

13.2.13.129. triangular_wave_randomized

Constructs randomized triangular waves along the boundary of a geometry.

Sintaxe

triangular_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Exemplos

  • triangular_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized triangular waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/triangular_wave_randomized.png

Symbolizing features with triangular randomized waves

13.2.13.130. union

Retorna uma geometria que representa a união do conjunto de pontos das geometrias.

Sintaxe

union(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → ‘MULTIPOINT(4 4, 5 5)’

13.2.13.131. wave

Constructs rounded (sine-like) waves along the boundary of a geometry.

Sintaxe

wave(geometry, wavelength, amplitude, [strict=False])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • wavelength - wavelength of sine-like waveform

  • amplitude - amplitude of sine-like waveform

  • strict - By default the wavelength argument is treated as a “maximum wavelength”, where the actual wavelength will be dynamically adjusted so that an exact number of waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Exemplos

  • wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Sine-like waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/wave.png

Symbolizing features with waves

13.2.13.132. wave_randomized

Constructs randomized curved (sine-like) waves along the boundary of a geometry.

Sintaxe

wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] indica argumentos opcionais

Argumentos

  • geometry - uma geometria

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Exemplos

  • wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized curved waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/wave_randomized.png

Symbolizing features with randomized waves

13.2.13.133. wedge_buffer

Retorna um buffer em forma de cunha originário de uma geometria de ponto.

Sintaxe

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] indica argumentos opcionais

Argumentos

  • center - ponto central (origem) do buffer. Deve ser uma geometria de ponto.

  • azimuth - ângulo (em graus) para o meio da cunha apontar.

  • width - largura do buffer (em graus). Observe que a cunha se estenderá até a metade da largura angular de cada lado da direção do azimute.

  • outer_radius - raio externo para buffers

  • inner_radius - raio interno opcional para buffers

Exemplos

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → Um buffer em forma de cunha centrado no ponto (1,2), voltado para o leste, com largura de 180 graus e raio externo de 1.

../../../_images/wedge_buffers.png

Wedge buffering features

Leitura adicional: algoritmo Crie buffers de cunha (wedge buffer).

13.2.13.134. within

Tests whether a geometry is within another. Returns TRUE if the geometry1 is completely within geometry2.

Sintaxe

within(geometry1, geometry2)

Argumentos

  • geometry1 - uma geometria

  • geometry2 - uma geometria

Exemplos

  • 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

Leitura adicional: overlay_within

13.2.13.135. $x

Returns the x coordinate of the current point feature. If the feature is a multipoint feature, then the x-coordinate of the first point will be returned. WARNING: This function is deprecated. It is recommended to use the replacement x() function with @geometry variable instead.

Sintaxe

$x

Exemplos

  • $x → 42

Further reading: x

13.2.13.136. x

Retorna a coordenada x de uma geometria de ponto ou a coordenada x do centroide para uma geometria sem ponto.

Sintaxe

x(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( @geometry ) → x coordinate of the current feature’s centroid

13.2.13.137. $x_at

Retrieves a x coordinate of the current feature’s geometry. WARNING: This function is deprecated. It is recommended to use the replacement x_at function with @geometry variable instead.

Sintaxe

$x_at(vertex)

Argumentos

  • vertex - index of the vertex of the current geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemplos

  • $x_at(1) → 5

Further reading: x_at

13.2.13.138. x_at

Retrieves a x coordinate of the geometry.

Sintaxe

x_at(geometry, vertex)

Argumentos

  • geometry - objeto geométrico

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemplos

  • x_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 4

13.2.13.139. x_max

Retorna a coordenada x máxima de uma geometria. Os cálculos estão no sistema de referência espacial desta geometria.

Sintaxe

x_max(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

13.2.13.140. x_min

Retorna a coordenada x mínima de uma geometria. Os cálculos estão no sistema de referência espacial desta geometria.

Sintaxe

x_min(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

13.2.13.141. $y

Returns the y coordinate of the current point feature. If the feature is a multipoint feature, then the y-coordinate of the first point will be returned. WARNING: This function is deprecated. It is recommended to use the replacement y() function with @geometry variable instead.

Sintaxe

$y

Exemplos

  • $y → 42

Further reading: y

13.2.13.142. y

Retorna a coordenada y de uma geometria de ponto ou a coordenada y do centroide para uma geometria sem ponto.

Sintaxe

y(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( @geometry ) → y coordinate of the current feature’s centroid

13.2.13.143. $y_at

Retrieves a y coordinate of the current feature’s geometry. WARNING: This function is deprecated. It is recommended to use the replacement y_at function with @geometry variable instead.

Sintaxe

$y_at(vertex)

Argumentos

  • vertex - index of the vertex of the current geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemplos

  • $y_at(1) → 2

Further reading: y_at

13.2.13.144. y_at

Retrieves a y coordinate of the geometry.

Sintaxe

y_at(geometry, vertex)

Argumentos

  • geometry - objeto geométrico

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemplos

  • y_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 5

13.2.13.145. y_max

Retorna a coordenada y máxima de uma geometria. Os cálculos estão no sistema de referência espacial desta geometria.

Sintaxe

y_max(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

13.2.13.146. y_min

Retorna a coordenada y mínima de uma geometria. Os cálculos estão no sistema de referência espacial desta geometria.

Sintaxe

y_min(geometry)

Argumentos

  • geometry - uma geometria

Exemplos

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

13.2.13.147. $z

Returns the z value of the current point feature if it is 3D. If the feature is a multipoint feature, then the z value of the first point will be returned. WARNING: This function is deprecated. It is recommended to use the replacement z() function with @geometry variable instead.

Sintaxe

$z

Exemplos

  • $z → 123

13.2.13.148. z

Retorna a coordenada z de uma geometria de ponto, ou NULO se a geometria não tiver valor z.

Sintaxe

z(geometry)

Argumentos

  • geometry - uma geometria de ponto

Exemplos

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

13.2.13.149. z_at

Retrieves a z coordinate of the geometry, or NULL if the geometry has no z value.

Sintaxe

z_at(geometry, vertex)

Argumentos

  • geometry - objeto geométrico

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Exemplos

  • z_at(geom_from_wkt('LineStringZ(0 0 0, 10 10 5, 10 10 0)'), 1) → 5

13.2.13.150. z_max

Retorna a coordenada z máxima de uma geometria, ou NULO se a geometria não tiver valor z.

Sintaxe

z_max(geometry)

Argumentos

  • geometry - uma geometria com coordenada z

Exemplos

  • 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

13.2.13.151. z_min

Retorna a coordenada z mínima de uma geometria, ou NULO se a geometria não tiver valor z.

Sintaxe

z_min(geometry)

Argumentos

  • geometry - uma geometria com coordenada z

Exemplos

  • 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

13.2.14. Funções de Layout

Este grupo contém funções para manipular as propriedades dos itens de layout de impressão.

13.2.14.1. item_variables

Retorna um mapa de variáveis de um item de layout dentro deste layout de impressão.

Sintaxe

item_variables(id)

Argumentos

  • id - ID do item do layout

Exemplos

  • map_get( item_variables('Map 0'), 'map_scale') → escala do item ‘Map 0’ no layout de impressão atual

Leitura adicional: Lista de variáveis padrão

13.2.14.2. map_credits

Returns a list of credit (usage rights) strings for the layers shown in a layout, or specific layout map item.

Sintaxe

map_credits([id], [include_layer_names=false], [layer_name_separator=’: ‘])

[] indica argumentos opcionais

Argumentos

  • id - Map item ID. If not specified, the layers from all maps in the layout will be used.

  • include_layer_names - Defina como verdadeiro para incluir os nomes das camadas antes de suas cadeias de crédito

  • layer_name_separator - String a ser inserida entre os nomes de camadas e seus créditos, se include_layer_names for verdadeiro

Exemplos

  • array_to_string( map_credits() ) → comma separated list of layer credits for all layers shown in all map items in the layout, e.g ‘CC-BY-NC, CC-BY-SA’

  • array_to_string( map_credits( 'Main Map' ) ) → lista de créditos das camadas separada por vírgula das camadas exibidas no item do layout “Main Map”, E.x.: ‘CC-BY-NC, CC-BY-SA’

  • array_to_string( map_credits( 'Main Map', include_layer_names := true, layer_name_separator := ': ' ) ) → lista separada por vírgulas de nomes de camadas e seus créditos para camadas mostradas no item de layout ‘Main Map’, por exemplo ‘Linhas ferroviárias: CC-BY-NC, Basemap: CC-BY-SA’

Esta função precisa que Propriedades de metadados de acesso das camadas tenham sido preenchidos.

13.2.15. Camadas do mapa

Este grupo contém a lista de camadas disponíveis no projeto atual e, para cada camada, seus campos (armazenados no grupo de dados, virtual ou auxiliares bem como os provenientes de uniões). Os campos podem ser interagidos da mesma maneira mencionada em Campos e Valores, exceto que um clique-duplo adicionará o nome como uma string (entre aspas simples) à expressão em vez de como uma referência de campo, visto que eles não pertencem à camada ativa. Isto oferece uma forma conveniente de escrever expressões referenciando diferentes camadas, com quando criamos agregações, atributos ou consultas espaciais.

Também fornece algumas funções convenientes para manipular camadas.

13.2.15.1. decode_uri

Pega uma camada e decodifica o uri do provedor de dados subjacente. Depende do provedor de dados, quais dados estão disponíveis.

Sintaxe

decode_uri(layer, [part])

[] indica argumentos opcionais

Argumentos

  • layer - Camada a qual a uri deve ser decodificada.

  • part - Parte da uri a ser retornada. Se não for especificada, um mapa com todas as parts da url será retornado.

Exemplos

  • 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’

13.2.15.2. layer_property

Retorna uma propriedade de camada correspondente ou valor de metadados.

Sintaxe

layer_property(layer, property)

Argumentos

  • layer - uma string, representando um nome de camada ou um ID de camada

  • property - uma string correspondente à propriedade a ser retornada. As opções válidas são:

    • name: nome da camada

    • ID: ID da camada

    • title: string titulo do metadado

    • abstract: string do metadado resumo

    • keywords: metadado palavas-chave

    • data_url: metadado URL

    • attribution: string do metadado atribuição

    • attribution_url: metadado URL atribuição

    • source: camada origem

    • min_scale: escala de exibição mínima para camada

    • max_scale: escala de exibição máxima para camada

    • is_editable: se a camada estiver no modo de edição

    • crs: camada SRC

    • crs_definition: definição completa do SRC da camada

    • crs_description: descrição do SRC da camada

    • crs_ellipsoid: acronym of the layer CRS ellipsoid

    • extent: extensão da camada (como um objeto de geometria)

    • ditance_units: unidades de distância da camada

    • type: tipo de camada, ex., Vetorial ou Raster

    • storage_type: formato de armazenamento (apenas camadas vetoriais)

    • geometry_type: tipo da geometria, e.x.:, Point (apenas camadas vetoriais)

    • feature_count: contagem aproximada de feição da camada (apenas camadas vetoriais)

    • path: caminho para o arquivo fonte da camada. Disponível apenas para camadas baseadas em arquivos.

Exemplos

  • layer_property('streets','title') → ‘Basemap Streets’

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → ‘EPSG:4326’

Leitura adicional: propriedades de camada vector, raster e mesh

13.2.15.3. load_layer

Loads a layer by source URI and provider name.

Sintaxe

load_layer(uri, provider)

Argumentos

  • uri - layer source URI string

  • provider - layer data provider name

Exemplos

  • layer_property(load_layer('c:/data/roads.shp', 'ogr'), 'feature_count') → count of features from the c:/data/roads.shp vector layer

13.2.16. Funções de mapeamento

Este grupo contém funções para criar ou manipular chaves e valores de estruturas de dados de mapas (também conhecidos como objetos de dicionário, pares de chave-valor ou arrays associativos). Ao contrário de estrutura de dados lista em que a ordem dos valores importa, a ordem dos pares de chave-valor no objeto de mapa não é relevante e os valores são identificados por suas chaves.

13.2.16.1. from_json

Carrega um texto formatado como JSON

Sintaxe

from_json(string)

Argumentos

  • string - string JSON

Exemplos

  • from_json('{"qgis":"rocks"}') → { ‘qgis’: ‘rocks’ }

  • from_json('[1,2,3]') → [1,2,3]

13.2.16.2. hstore_to_map

Cria um mapa a parir de uma string formatada como hstore

Sintaxe

hstore_to_map(string)

Argumentos

  • string - string de entrada

Exemplos

  • hstore_to_map('qgis=>rocks') → { ‘qgis’: ‘rocks’ }

13.2.16.3. map

Retorna um mapa contendo todas as chaves e valores passados como par de parâmetros.

Sintaxe

map(key1, value1, key2, value2, …)

Argumentos

  • key - uma chave (string)

  • valor - um valor

Exemplos

  • map('1','one','2', 'two') → { ‘1’: ‘one’, ‘2’: ‘two’ }

  • map('1','one','2', 'two')['1'] → ‘one’

13.2.16.4. map_akeys

Retorna um array contendo todas as chaves de um mapa

Sintaxe

map_akeys(map)

Argumentos

  • map - um mapa

Exemplos

  • map_akeys(map('1','one','2','two')) → [ ‘1’, ‘2’ ]

13.2.16.5. map_avals

Retorna todos os valores de um map como um array.

Sintaxe

map_avals(map)

Argumentos

  • map - um mapa

Exemplos

  • map_avals(map('1','one','2','two')) → [ ‘one’, ‘two’ ]

13.2.16.6. map_concat

Retorna um mapa contendo todas as entradas dos mapas fornecidos. Se dois mapas contiverem a mesma chave, o valor do segundo mapa será usado.

Sintaxe

map_concat(map1, map2, …)

Argumentos

  • map - um mapa

Exemplos

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { ‘1’: ‘one’, ‘2’: ‘two’, ‘3’: ‘three’ }

13.2.16.7. map_delete

Retorna um mapa com a chave fornecida e seu valor correspondente excluído.

Sintaxe

map_delete(map, key)

Argumentos

  • map - um mapa

  • key - a chave a ser excluída

Exemplos

  • map_delete(map('1','one','2','two'),'2') → { ‘1’: ‘one’ }

13.2.16.8. map_exist

Returns TRUE if the given key exists in the map.

Sintaxe

map_exist(map, key)

Argumentos

  • map - um mapa

  • key - chave a ser pesquisada

Exemplos

  • map_exist(map('1','one','2','two'),'3') → FALSE

13.2.16.9. map_get

Retorna o valor de um mapa, dada sua chave. Retorna NULO se a chave não existir.

Sintaxe

map_get(map, key)

Argumentos

  • map - um mapa

  • key - chave a ser pesquisada

Exemplos

  • map_get(map('1','one','2','two'),'2') → ‘two’

  • map_get( item_variables('Map 0'), 'map_scale') → escala do item ‘Map 0’ (se existir) no layout de impressão atual

Dica

Você pode utilizar também o operador de índice ([]) para pegar um valor de um mapa.

13.2.16.10. map_insert

Retorna um mapa com uma chave/valor adicionado. Se a chave já existir, seu valor será substituído.

Sintaxe

map_insert(map, key, value)

Argumentos

  • map - um mapa

  • key - a chave a ser adicionada

  • value - o valor a ser adicionado

Exemplos

  • map_insert(map('1','one'),'3','three') → { ‘1’: ‘one’, ‘3’: ‘three’ }

  • map_insert(map('1','one','2','overridden'),'2','two') → { ‘1’: ‘one’, ‘2’: ‘two’ }

13.2.16.11. map_prefix_keys

Returns a map with all keys prefixed by a given string.

Sintaxe

map_prefix_keys(map, prefix)

Argumentos

  • map - um mapa

  • prefix - a string

Exemplos

  • map_prefix_keys(map('1','one','2','two'), 'prefix-') → { ‘prefix-1’: ‘one’, ‘prefix-2’: ‘two’ }

13.2.16.12. map_to_hstore

Mescla os elementos de um mapa em uma string formatada em hstore.

Sintaxe

map_to_hstore(map)

Argumentos

  • map - mapa de entrada

Exemplos

  • map_to_hstore(map('qgis','rocks')) → ‘“qgis”=>”rocks”’

13.2.16.13. map_to_html_dl

Merge map elements into a HTML definition list string.

Sintaxe

map_to_html_dl(map)

Argumentos

  • map - mapa de entrada

Exemplos

  • map_to_html_dl(map('qgis','rocks')) → <dl><dt>qgis</dt><dd>rocks</dd></dl>

13.2.16.14. map_to_html_table

Merge map elements into a HTML table string.

Sintaxe

map_to_html_table(map)

Argumentos

  • map - mapa de entrada

Exemplos

  • map_to_html_table(map('qgis','rocks')) → <table><thead><th>qgis</th></thead><tbody><tr><td>rocks</td></tr></tbody></table>

13.2.16.15. to_json

Cria uma string formada em JSON a partir de um mapa, matriz ou outro valor.

Sintaxe

to_json(value)

Argumentos

  • value - O valor de entrada

Exemplos

  • to_json(map('qgis','rocks')) → {“qgis”:”rocks”}

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

13.2.16.16. url_encode

Returns an URL encoded string from a map. Transforms all characters in their properly-encoded form producing a fully-compliant query string.

Note that the plus sign ‘+’ is not converted.

Sintaxe

url_encode(map)

Argumentos

  • map - a map.

Exemplos

  • url_encode(map('a&+b', 'a and plus b', 'a=b', 'a equals b')) → ‘a%26+b=a%20and%20plus%20b&a%3Db=a%20equals%20b’

13.2.17. Funções Matemáticas

Este grupo contém funções matemáticas (por exemplo, raiz quadrada, sen e cos).

13.2.17.1. abs

Retorna o valor absoluto de um número.

Sintaxe

abs(value)

Argumentos

  • value - um número

Exemplos

  • abs(-2) → 2

13.2.17.2. acos

Retorna o cosseno inverso de um valor em radianos.

Sintaxe

acos(value)

Argumentos

  • value - cosseno de um ângulo em radianos

Exemplos

  • acos(0.5) → 1.0471975511966

13.2.17.3. asin

Retorna o seno inverso de um valor em radianos.

Sintaxe

asin(value)

Argumentos

  • value - seno de um ângulo em radianos

Exemplos

  • asen(1.0) → 1.5707963267949

13.2.17.4. atan

Retorna a tangente inversa de um valor em radianos.

Sintaxe

atan(value)

Argumentos

  • value - tangente de um ângulo em radianos

Exemplos

  • atan(0.5) → 0.463647609000806

13.2.17.5. atan2

Retorna a tangente inversa de dy/dx usando os sinais dos dois argumentos para determinar o quadrante do resultado.

Sintaxe

atan2(dy, dx)

Argumentos

  • dy - diferença na coordenada y

  • dx - diferença na coordenada x

Exemplos

  • atan2(1.0, 1.732) → 0.523611477769969

13.2.17.6. ceil

Arredonda um número para cima.

Sintaxe

ceil(value)

Argumentos

  • value - um número

Exemplos

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

13.2.17.7. clamp

Restringe um valor de entrada a um intervalo especificado.

Sintaxe

clamp(minimum, input, maximum)

Argumentos

  • minimum - o menor valor que input pode assumir

  • input - um valor que será restrito ao intervalo especificado por minimun e maximun

  • maximum - o maior valor que input pode assumir

Exemplos

  • clamp(1,5,10) → 5

    input está entre 1 e 10, então retorna inalterada

  • clamp(1,0,10) → 1

    input é menor que o valor mínimo de 1, então a função retorna 1

  • clamp(1,11,10) → 10

    se o valor de input for maior que o valor máximo de 10, então a função retornará 10

13.2.17.8. cos

Retorna o cosseno de um ângulo.

Sintaxe

cos(angle)

Argumentos

  • angle - ângulo em radianos

Exemplos

  • cos(1.571) → 0.000796326710733263

13.2.17.9. degrees

Converte de radianos para graus.

Sintaxe

degrees(radians)

Argumentos

  • radians - valor numérico

Exemplos

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

13.2.17.10. exp

Retorna o exponencial de um valor.

Sintaxe

exp(value)

Argumentos

  • value - número para retornar o expoente

Exemplos

  • exp(1.0) → 2.71828182845905

13.2.17.11. floor

Arredonda um número para baixo.

Sintaxe

floor(value)

Argumentos

  • value - um número

Exemplos

  • floor(4.9) → 4

  • floor(-4.9) → -5

13.2.17.12. ln

Retorna o logaritmo natural de um valor.

Sintaxe

ln(value)

Argumentos

  • value - valor numérico

Exemplos

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

13.2.17.13. log

Retorna o valor do logaritmo do valor passado e da base.

Sintaxe

log(base, value)

Argumentos

  • base - qualquer número positivo

  • value - qualquer número positivo

Exemplos

  • log(2, 32) → 5

  • log(0.5, 32) → -5

13.2.17.14. log10

Retorna o valor do logaritmo de base 10 da expressão passada.

Sintaxe

log10(value)

Argumentos

  • value - qualquer número positivo

Exemplos

  • log10(1) → 0

  • log10(100) → 2

13.2.17.15. max

Retorna o maior valor em um conjunto de valores.

Sintaxe

max(value1, value2, …)

Argumentos

  • value - um número

Exemplos

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

13.2.17.16. min

Retorna o menor valor em um conjunto de valores.

Sintaxe

min(value1, value2, …)

Argumentos

  • value - um número

Exemplos

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

13.2.17.17. pi

Retorna o valor de pi para cálculos.

Sintaxe

pi()

Exemplos

  • pi() → 3.14159265358979

13.2.17.18. radians

Converte de graus para radianos.

Sintaxe

radians(degrees)

Argumentos

  • degrees - valor numérico

Exemplos

  • radians(180) → 3.14159

  • radians(57.2958) → 1

13.2.17.19. rand

Retorna um inteiro aleatório dentro do intervalo especificado pelo argumento mínimo e máximo (inclusive). Se uma seed for fornecida, o retorno será sempre o mesmo, dependendo da seed.

Sintaxe

rand(min, max, [seed=NULL])

[] indica argumentos opcionais

Argumentos

  • min - um número inteiro que representa o menor número aleatório possível desejado

  • max - um inteiro que representa o maior número aleatório possível desejado

  • seed - qualquer valor usado como seed

Exemplos

  • rand(1, 10) → 8

13.2.17.20. randf

Retorna um float aleatório dentro do intervalo especificado pelo argumento mínimo e máximo (inclusive). Se uma seed for fornecida, o retorno será sempre o mesmo, dependendo da seed.

Sintaxe

randf([min=0.0], [max=1.0], [seed=NULL])

[] indica argumentos opcionais

Argumentos

  • min - um float representando o menor número aleatório possível desejado

  • max - um float representando o maior número aleatório possível desejado

  • seed - qualquer valor usado como seed

Exemplos

  • randf(1, 10) → 4.59258286403147

13.2.17.21. round

Arredonda um número para número de casas decimais.

Sintaxe

round(value, [places=0])

[] indica argumentos opcionais

Argumentos

  • value - número decimal a ser arredondado

  • places - Número inteiro opcional que representa o número de casas para arredondar os decimais. Pode ser negativo.

Exemplos

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

13.2.17.22. scale_exponential

Transforma um determinado valor de um domínio de entrada para um intervalo de saída usando uma curva exponencial. Esta função pode ser usada para atenuar valores dentro ou fora do intervalo de saída especificado.

Sintaxe

scale_exponential(value, domain_min, domain_max, range_min, range_max, exponent)

Argumentos

  • value - Um valor no domínio de entrada. A função retornará um valor escalado correspondente no intervalo de saída.

  • domain_min - Especifica o valor mínimo no domínio de entrada, o menor valor que o valor de entrada deve assumir.

  • domain_max - Especifica o valor maior no domínio de entrada, o maior valor que o valor de entrada deve assumir.

  • range_min - Especifica um valor mínimo no intervalo de saída, o menor valor que a função deve retornar.

  • range_max - Especifica o valor máximo do intervalor de saída, o maior valor que a função deverá retornar.

  • exponent - Um valor positivo (maior que 0), que determina a forma como os valores de entrada são mapeados para o intervalo de saída. Grandes expoentes farão com que os valores de saída ‘acelerem’, iniciando lentamente antes de acelerar à medida que os valores de entrada se aproximam do máximo do domínio. Expoentes menores (menos de 1) farão com que os valores de saída ‘desacelerem’, onde o mapeamento começa rapidamente, mas diminui conforme se aproxima do máximo do domínio.

Exemplos

  • scale_exp(5,0,10,0,100,2) → 25

    facilitando o ln, usando um expoente de 2

  • scale_exp(3,0,10,0,100,0.5) → 54.772

    easing out, usando um expoente de 0.5

13.2.17.23. scale_linear

Transforma um determinado valor de um domínio de entrada em um intervalo de saída usando interpolação linear.

Sintaxe

scale_linear(value, domain_min, domain_max, range_min, range_max)

Argumentos

  • value - Um valor no domínio de entrada. A função retornará um valor escalado correspondente no intervalo de saída.

  • domain_min - Especifica o valor mínimo no domínio de entrada, o menor valor que o valor de entrada deve assumir.

  • domain_max - Especifica o valor maior no domínio de entrada, o maior valor que o valor de entrada deve assumir.

  • range_min - Especifica um valor mínimo no intervalo de saída, o menor valor que a função deve retornar.

  • range_max - Especifica o valor máximo do intervalor de saída, o maior valor que a função deverá retornar.

Exemplos

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    dimensionar um valor entre 0 e 1 para um ângulo entre 0 e 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    escalar uma população que varia entre 1000 e 10000 para um tamanho de fonte entre 9 e 20

13.2.17.24. scale_polynomial

Transforms a given value from an input domain to an output range using a polynomial curve. This function can be used to ease values in or out of the specified output range.

Sintaxe

scale_polynomial(value, domain_min, domain_max, range_min, range_max, exponent)

Argumentos

  • value - Um valor no domínio de entrada. A função retornará um valor escalado correspondente no intervalo de saída.

  • domain_min - Especifica o valor mínimo no domínio de entrada, o menor valor que o valor de entrada deve assumir.

  • domain_max - Especifica o valor maior no domínio de entrada, o maior valor que o valor de entrada deve assumir.

  • range_min - Especifica um valor mínimo no intervalo de saída, o menor valor que a função deve retornar.

  • range_max - Especifica o valor máximo do intervalor de saída, o maior valor que a função deverá retornar.

  • exponent - Um valor positivo (maior que 0), que determina a forma como os valores de entrada são mapeados para o intervalo de saída. Grandes expoentes farão com que os valores de saída ‘acelerem’, iniciando lentamente antes de acelerar à medida que os valores de entrada se aproximam do máximo do domínio. Expoentes menores (menos de 1) farão com que os valores de saída ‘desacelerem’, onde o mapeamento começa rapidamente, mas diminui conforme se aproxima do máximo do domínio.

Exemplos

  • scale_polynomial(5,0,10,0,100,2) → 25

    facilitando o ln, usando um expoente de 2

  • scale_polynomial(3,0,10,0,100,0.5) → 54.772

    easing out, usando um expoente de 0.5

13.2.17.25. sin

Retorna o seno de um ângulo.

Sintaxe

sin(angle)

Argumentos

  • angle - ângulo em radianos

Exemplos

  • sin(1.571) → 0.999999682931835

13.2.17.26. sqrt

Retorna a raiz quadrada de um valor.

Sintaxe

sqrt(value)

Argumentos

  • value - um número

Exemplos

  • sqrt(9) → 3

13.2.17.27. tan

Retorna a tangente de um ângulo.

Sintaxe

tan(angle)

Argumentos

  • angle - ângulo em radianos

Exemplos

  • tan(1.0) → 1.5574077246549

13.2.18. Funções de Malhas

Este grupo contém funções que calculam ou retornam valores relacionados à mesh.

13.2.18.1. $area_face

Retorna a área da face da malha atual. A área calculada por esta função respeita tanto a configuração do elipsóide do projeto atual quanto as configurações da unidade de área. Por exemplo, se um elipsóide foi definido para o projeto, a área calculada será elipsoidal, e se nenhum elipsóide for definido, a área calculada será planimétrica.

Sintaxe

$area_face

Exemplos

  • $face_area → 42

13.2.18.2. $face_index

Retorna o índice da face da malha atual.

Sintaxe

$face_index

Exemplos

  • $face_index → 4581

13.2.18.3. $vertex_as_point

Retorna o vértice atual como uma geometria de ponto.

Sintaxe

$vertex_as_point

Exemplos

  • geom_to_wkt( $vertex_as_point ) → ‘POINT(800 1500 41)’

13.2.18.4. $vertex_index

Retorna o índice do vértice do mesh atual

Sintaxe

$vertex_index

Exemplos

  • $vertex_index → 9874

13.2.18.5. $vertex_x

Retorna a coordenada X do vértice da malha atual.

Sintaxe

$vertex_x

Exemplos

  • $vertex_x → 42.12

13.2.18.6. $vertex_y

Retorna a coordenada Y do vértice da malha atual.

Sintaxe

$vertex_y

Exemplos

  • $vertex_y → 12.24

13.2.18.7. $vertex_z

Retorna o valor Z do vértice do mesh atual.

Sintaxe

$vertex_z

Exemplos

  • $vertex_z → 42

13.2.19. Operadores

Este grupo contém operadores (por exemplo, +, -, *). Observe que, para a maioria das funções matemáticas abaixo, se uma das entradas for NULL, o resultado será NULL.

13.2.19.1. %

Remainder of division. Takes the sign of the dividend.

Sintaxe

a % b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 9 % 2 → 1

  • 9 % -2 → 1

  • -9 % 2 → -1

  • 5 % NULO → NULO

13.2.19.2. *

Multiplicação de dois valores

Sintaxe

a * b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 * 4 → 20

  • 5 * NULO → NULO

13.2.19.3. +

Adição de dois valores. Se um dos valores for NULO, o resultado será NULO.

Sintaxe

a + b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 + 4 → 9

  • 5 + NULO → NULO

  • 'QGIS ' + 'ROCKS' → ‘QGIS ROCKS’

  • to_datetime('2020-08-01 12:00:00') + '1 day 2 hours' → 2020-08-02T14:00:00

Leitura adicional: concat, ||

13.2.19.4. -

Subtração de dois valores. Se um dos valores for NULO, o resultado será NULO.

Sintaxe

a - b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 - 4 → 1

  • 5 - NULO → NULO

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

13.2.19.5. /

Divisão de dois valores

Sintaxe

a / b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 / 4 → 1.25

  • 5 / NULO` → NULO

13.2.19.6. //

Floor division of two values

Sintaxe

a // b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 9 // 2 → 4

13.2.19.7. <

Compara dois valores e avalia como 1 se o valor da esquerda for menor que o valor da direita.

Sintaxe

a < b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 < 4 → FALSE

  • 5 < 5 → FALSE

  • 4 < 5 → TRUE

13.2.19.8. <=

Compara dois valores e avalia como 1 se o valor da esquerda for menor ou igual ao valor da direita.

Sintaxe

a <= b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 <= 4 → FALSE

  • 5 <= 5 → TRUE

  • 4 <= 5 → TRUE

13.2.19.9. <>

Compara dois valores e avalia com 1 se eles não forem iguais.

Sintaxe

a <> b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 <> 4 → TRUE

  • 4 <> 4 → FALSE

  • 5 <> NULO → NULO

  • NULO <> NULO → NULO

13.2.19.10. =

Compara dois valores e avalia com 1 se forem iguais.

Sintaxe

a = b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 = 4 → FALSE

  • 4 = 4 → TRUE

  • 5 = NULO → NULO

  • NULO = NULO → NULO

13.2.19.11. >

Compara dois valores e avalia como 1 se o valor esquerdo for maior que o valor direito.

Sintaxe

a > b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 > 4 → TRUE

  • 5 > 5 → FALSE

  • 4 > 5 → FALSE

13.2.19.12. >=

Compara dois valores e avalia como 1 se o valor da esquerda for maior ou igual ao valor da direita.

Sintaxe

a >= b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 >= 4 → TRUE

  • 5 >= 5 → TRUE

  • 4 >= 5 → FALSE

13.2.19.13. AND

Returns TRUE when conditions a and b are true.

Sintaxe

a AND b

Argumentos

  • a - condição

  • b - condição

Exemplos

  • TRUE AND TRUE → TRUE

  • TRUE AND FALSE → FALSE

  • 4 = 2+2 AND 1 = 1 → TRUE

  • 4 = 2+2 AND 1 = 2 → FALSE

13.2.19.14. BETWEEN

Returns TRUE if value is within the specified range. The range is considered inclusive of the bounds. To test for exclusion NOT BETWEEN can be used.

Sintaxe

value BETWEEN lower_bound AND higher_bound

Argumentos

  • value - the value to compare with a range. It can be a string, a number or a date.

  • lower_bound AND higher_bound - range bounds

Exemplos

  • 'B' BETWEEN 'A' AND 'C' → TRUE

  • 2 BETWEEN 1 AND 3 → TRUE

  • 2 BETWEEN 2 AND 3 → TRUE

  • 'B' BETWEEN 'a' AND 'c' → FALSE

  • lower('B') BETWEEN 'a' AND 'b' → TRUE

Nota

value BETWEEN lower_bound AND higher_bound is the same as “value >= lower_bound AND value <= higher_bound”.

Leitura adicional: NOT BETWEEN

13.2.19.15. ILIKE

Returns TRUE if the first parameter matches case-insensitive the supplied pattern. LIKE can be used instead of ILIKE to make the match case-sensitive. Works with numbers also.

Sintaxe

string/número padrão ILIKE

Argumentos

  • string/number - string para pesquisar

  • pattern - padrão a ser procurado, você pode usar ‘%’ como curinga, ‘_’ como um único caractere e ‘\\’ para escapar caracteres especiais.

Exemplos

  • '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

13.2.19.16. IN

Returns TRUE if value is found within a list of values.

Sintaxe

a IN b

Argumentos

  • a - valor

  • b - lista de valores

Exemplos

  • 'A' IN ('A','B') → TRUE

  • 'A' IN ('C','B') → FALSE

13.2.19.17. IS

Returns TRUE if a is the same as b.

Sintaxe

a IS b

Argumentos

  • a - qualquer valor

  • b - qualquer valor

Exemplos

  • '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, if your geometry is not NULL

13.2.19.18. IS NOT

Returns TRUE if a is not the same as b.

Sintaxe

a IS NOT b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 'a' IS NOT 'b' → TRUE

  • 'a' IS NOT 'a' → FALSE

  • 4 IS NOT 2+2 → FALSE

13.2.19.19. LIKE

Returns TRUE if the first parameter matches the supplied pattern. Works with numbers also.

Sintaxe

texto/número padrão LIKE

Argumentos

  • string/number - valor

  • pattern - padrão a ser comparado com o valor, você pode usar ‘%’ como curinga, ‘_’ como caractere único e ‘\\’ para escapar esses caracteres especiais.

Exemplos

  • '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

13.2.19.20. NOT

Nega uma condição.

Sintaxe

NOT a

Argumentos

  • a - condição

Exemplos

  • NOT 1 → FALSE

  • NOT 0 → TRUE

13.2.19.21. NOT BETWEEN

Returns TRUE if value is not within the specified range. The range is considered inclusive of the bounds.

Sintaxe

value NOT BETWEEN lower_bound AND higher_bound

Argumentos

  • value - the value to compare with a range. It can be a string, a number or a date.

  • lower_bound AND higher_bound - range bounds

Exemplos

  • 'B' NOT BETWEEN 'A' AND 'C' → FALSE

  • 1.0 NOT BETWEEN 1.1 AND 1.2 → TRUE

  • 2 NOT BETWEEN 2 AND 3 → FALSE

  • 'B' NOT BETWEEN 'a' AND 'c' → TRUE

  • lower('B') NOT BETWEEN 'a' AND 'b' → FALSE

Nota

value NOT BETWEEN lower_bound AND higher_bound is the same as “value < lower_bound OR value > higher_bound”.

Leitura adicional: BETWEEN

13.2.19.22. OR

Returns TRUE when condition a or b is true.

Sintaxe

a OR b

Argumentos

  • a - condição

  • b - condição

Exemplos

  • 4 = 2+2 OR 1 = 1 → TRUE

  • 4 = 2+2 OR 1 = 2 → TRUE

  • 4 = 2   OR 1 = 2 → FALSE

13.2.19.23. []

Operador de índice. Retorna um elemento de uma matriz ou valor de mapa.

Sintaxe

[index]

Argumentos

  • index - índice do array ou chave de um valor num mapa

Exemplos

  • 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

Leitura adicional: array_get, map_get

13.2.19.24. ^

Potência de dois valores.

Sintaxe

a ^ b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 5 ^ 4 → 625

  • 5 ^ NULO → NULO

13.2.19.25. ||

Une dois valores em uma string.

Se um dos valores for NULL o resultado será NULL. Veja a função CONCAT para um comportamento diferente

Sintaxe

a || b

Argumentos

  • a - valor

  • b - valor

Exemplos

  • 'Aqui' || ' e ' || 'ali' → ‘Aqui e ali’

  • 'Nothing' || NULL → NULL

  • 'Dia: ' || "Diameter" → ‘Dia: 25’

  • 1 || 2 → ‘12’

Leitura adicional: concat, +

13.2.19.26. ~

Executa uma correspondência de expressão regular em um valor de string. Os caracteres de barra invertida devem ter escape duplo (por exemplo, “\\s” para corresponder a um caractere de espaço em branco).

Sintaxe

string ~ regex

Argumentos

  • string - Um valor de string

  • regex - Uma expressão regular. As barras devem ser escapadas, e.x.: \\d.

Exemplos

  • 'hello' ~ 'll' → TRUE

  • 'hello' ~ '^ll' → FALSE

  • 'hello' ~ 'llo$' → TRUE

  • 'abc123' ~ '\\d+' → TRUE

Leitura adicional: regexp_match

13.2.20. Funções de Processamento

Este grupo contém funções que operam em algoritmos de processamento.

13.2.20.1. parameter

Retorna o valor de um parâmetro de entrada do algoritmo de processamento.

Sintaxe

parameter(name)

Argumentos

  • name - nome do parâmetro de entrada correspondente

Exemplos

  • parameter('BUFFER_SIZE') → 5.6

13.2.21. Funções de Rasters

Este grupo contém funções para operar na camada raster.

13.2.21.1. raster_attributes

Returns a map with the fields names as keys and the raster attribute table values as values from the attribute table entry that matches the given raster value.

Sintaxe

raster_attributes(layer, band, value)

Argumentos

  • layer - o nome ou id de uma camada raster

  • band - the band number for the associated attribute table lookup.

  • value - raster value

Exemplos

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, make_point(1,1))) → {‘class’: ‘Vegetated’, ‘subclass’: ‘Trees’}

13.2.21.2. raster_statistic

Retorna as estatísticas de uma camada raster.

Sintaxe

raster_statistic(layer, band, property)

Argumentos

  • camada - uma string, representando um nome de camada raster ou um ID de camada

  • band - inteiro representando o número da banda da camada raster, começando em 1

  • property - uma string correspondente à propriedade a ser retornada. As opções válidas são:

    • min: valor mínimo

    • max: valor máximo

    • avg: valor médio (média)

    • stdev: desvio padrão dos valores

    • range: intervalo de valores (max. - min.)

    • sum: soma de todos os valores do raster

Exemplos

  • raster_statistic('lc',1,'avg') → Valor médio da banda 1 da camada raster ‘lc’

  • raster_statistic('ac2010',3,'min') → Menor valor da banda 3 da camada raster ‘2010’

13.2.21.3. raster_value

Retorna o valor raster encontrado no ponto fornecido.

Sintaxe

raster_value(layer, band, point)

Argumentos

  • layer - o nome ou id de uma camada raster

  • banda - o número da banda para amostrar o valor.

  • point - geometria de ponto (para geometrias multipartes com mais de uma parte, um valor NULO será retornado)

Exemplos

  • raster_value('dem', 1, make_point(1,1)) → 25

13.2.22. Funções de Registro e Atributos

Este grupo contém funções que operam na identificação da registros.

13.2.22.1. attribute

Retorna um atributo de uma feição.

** Variante 1**

Retorna o valor de um atributo da feição atual.

Sintaxe

attribute(attribute_name)

Argumentos

  • attribute_name - nome do atributo a ser retornado

Exemplos

  • attribute( 'nome' ) → valor armazenado no atributo ‘nome’ para a feição atual

Variante 2

Permite que a feição de destino e o nome do atributo sejam especificados.

Sintaxe

attribute(feature, attribute_name)

Argumentos

  • feature - uma feição

  • attribute_name - nome do atributo a ser retornado

Exemplos

  • attribute( @atlas_feature, 'name' ) → valor armazenado no atributo ‘name’ na feição atual do atlas

13.2.22.2. attributes

Retorna um mapa contendo todos os atributos de uma feição, onde os nomes de campo são as chaves do mapa

** Variante 1**

Retorna um mapa de todos os atributos da feição atual.

Sintaxe

attributes()

Exemplos

  • attributes()['name'] → valor armazenado no atributo ‘name’ da feição atual

Variante 2

Permite que a feição de destino seja especificada.

Sintaxe

attributes(feature)

Argumentos

  • feature - uma feição

Exemplos

  • attributes( @atlas_feature )['name'] → valor armazenado no atributo ‘name’ na feição atual do do atlas

Leitura adicional: Funções de mapeamento

13.2.22.3. $currentfeature

Returns the current feature being evaluated. This can be used with the ‘attribute’ function to evaluate attribute values from the current feature. WARNING: This function is deprecated. It is recommended to use the replacement @feature variable instead.

Sintaxe

$currentfeature

Exemplos

  • attribute( $currentfeature, 'name' ) → valor armazenado no atributo ‘name’ da feição atual

13.2.22.4. display_expression

Retorna a expressão de exibição para uma determinada feição em uma camada. A expressão é avaliada por padrão. Pode ser usado com zero, um ou mais argumentos, veja abaixo para detalhes.

Sem parâmetros

Se for chamada sem nenhum parâmetro, a função irá avaliar a expressão de exibição da feição atual na camada atual.

Sintaxe

display_expression()

Exemplos

  • display_expression() → Expressão de exibição da feição atual na camada atual.

Um parâmetro ‘feição’

Se chamada apenas com um parâmetro ‘feição’, a função avaliará a feição especificada da camada atual.

Sintaxe

display_expression(feature)

Argumentos

  • feature - Feição que deverá ser avaliada.

Exemplos

  • display_expression(@atlas_feature) → Expressão de exibição da feição atual do atlas.

Parâmetros de camada e feição

Se a função for chamada com uma camada e uma feição, ela avaliará a feição especificada da camada especificada.

Sintaxe

display_expression(layer, feature, [evaluate=true])

[] indica argumentos opcionais

Argumentos

  • layer - A camada (ou ID ou nome)

  • feature - Feição que deverá ser avaliada.

  • evaluate - Se a expressão deve ser avaliada. Se false, a expressão será retornada apenas como uma string literal (que pode ser avaliada posteriormente usando a função ‘eval’).

Exemplos

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → Expressão de exibição da feição com o ID 1 na camada ‘streets’.

  • display_expression('a_layer_id', @feature, 'False') → The display expression of the given feature not evaluated.

13.2.22.5. feature_id

Returns a feature’s unique ID, or NULL if the feature is not valid.

Sintaxe

feature_id(feature)

Argumentos

  • feature - um objeto feição

Exemplos

  • feature_id( @feature ) → the ID of the current feature

Further reading: get_feature_by_id

13.2.22.6. get_feature

Retorna a primeia feição de uma camada correspondente a um determinado valor de atributo.

Single value variant

Along with the layer ID, a single column and value are specified.

Sintaxe

get_feature(layer, attribute, value)

Argumentos

  • layer - nome ou ID da camada

  • attribute - attribute name to use for the match

  • value - valor do atributo a ser correspondido

Exemplos

  • get_feature('streets','name','main st') → primeira feição encontrada na camada “streets” com o valor “main st” no campo “name”

Variação por mapeamento

Along with the layer ID, a map containing the columns (key) and their respective value to be used.

Sintaxe

get_feature(layer, attribute)

Argumentos

  • layer - nome ou ID da camada

  • attribute - Map containing the column and value pairs to use

Exemplos

  • get_feature('streets',map('name','main st','lane_num','4')) → first feature found in “streets” layer with “main st” value in the “name” field and “4” value in the “lane_num” field

13.2.22.7. get_feature_by_id

Retorna a feição com um id em uma camada.

Sintaxe

get_feature_by_id(layer, feature_id)

Argumentos

  • layer - camada, nome da camada ou ID da camada

  • feature_id - id da feição que será retornada

Exemplos

  • get_feature_by_id('streets', 1) → feição de id 1 na camada “streets”

Further reading: feature_id

13.2.22.8. $id

Returns the feature id of the current row. WARNING: This function is deprecated. It is recommended to use the replacement @id variable instead.

Sintaxe

$id

Exemplos

  • $id → 42

Further reading: feature_id, get_feature_by_id

13.2.22.9. is_attribute_valid

Returns TRUE if a specific feature attribute meets all constraints.

Sintaxe

is_attribute_valid(attribute, [feature], [layer], [strength])

[] indica argumentos opcionais

Argumentos

  • attribute - an attribute name

  • feature - A feature. If not set, the current feature will be used.

  • layer - A vector layer. If not set, the current layer will be used.

  • strength - Set to ‘hard’ or ‘soft’ to narrow down to a specific constraint type. If not set, the function will return FALSE if either a hard or a soft constraint fails.

Exemplos

  • is_attribute_valid('HECTARES') → TRUE if the current feature’s value in the “HECTARES” field meets all constraints.

  • is_attribute_valid('HOUSES',get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE if the value in the “HOUSES” field from the feature with “FID”=10 in ‘my_layer’ fails to meet all constraints.

Further reading: Restrições

13.2.22.10. is_feature_valid

Returns TRUE if a feature meets all field constraints.

Sintaxe

is_feature_valid([feature], [layer], [strength])

[] indica argumentos opcionais

Argumentos

  • feature - A feature. If not set, the current feature will be used.

  • layer - A vector layer. If not set, the current layer will be used.

  • strength - Set to ‘hard’ or ‘soft’ to narrow down to a specific constraint type. If not set, the function will return FALSE if either a hard or a soft constraint fails.

Exemplos

  • is_feature_valid(strength:='hard') → TRUE if all fields from the current feature meet their hard constraints.

  • is_feature_valid(get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE if all fields from feature with “FID”=10 in ‘my_layer’ fails to meet all constraints.

Further reading: Restrições

13.2.22.11. is_selected

Returns TRUE if a feature is selected. Can be used with zero, one or two arguments, see below for details.

Sem parâmetros

If called with no parameters, the function will return TRUE if the current feature in the current layer is selected.

Sintaxe

is_selected()

Exemplos

  • is_selected() → TRUE if the current feature in the current layer is selected.

Um parâmetro ‘feição’

If called with a ‘feature’ parameter only, the function returns TRUE if the specified feature from the current layer is selected.

Sintaxe

is_selected(feature)

Argumentos

  • feature - A feição que deve ser verificada para seleção.

Exemplos

  • is_selected(@atlas_feature) → TRUE if the current atlas feature is selected.

  • is_selected(get_feature('streets', 'name', 'Main St.')) → TRUE if the unique named “Main St.” feature on the active “streets” layer is selected.

  • is_selected(get_feature_by_id('streets', 1)) → TRUE if the feature with the id 1 on the active “streets” layer is selected.

Dois parâmetros

If the function is called with both a layer and a feature, it will return TRUE if the specified feature from the specified layer is selected.

Sintaxe

is_selected(layer, feature)

Argumentos

  • layer - A camada (seu ID ou nome) na qual a seleção será verificada.

  • feature - A feição que deve ser verificada para seleção.

Exemplos

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → TRUE if the current building’s street is selected (assuming the building layer has a field named ‘street_name’ and the ‘streets’ layer has a field called ‘name’ with unique values).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → TRUE if the feature with the id 1 on the “streets” layer is selected.

13.2.22.12. maptip

Retorna o maptip de uma feição de uma camada. A expressão é avaliada por padrão. Pode ser usada com zero, um ou mais argumentos, veja abaixo para mais detalhes.

Sem parâmetros

Se chamada sem parâmetros, a função avaliará a dica de mapa da feição atual na camada atual.

Sintaxe

maptip()

Exemplos

  • maptip() → Maptip da feição atual da camada atual.

Um parâmetro ‘feição’

Se chamada apenas com um parâmetro ‘feição’, a função avaliará a feição especificada da camada atual.

Sintaxe

maptip(feature)

Argumentos

  • feature - Feição que deverá ser avaliada.

Exemplos

  • maptip(@atlas_feature) → Maptip da feição atual da feição do atlas.

Parâmetros de camada e feição

Se a função for chamada com uma camada e uma feição, ela avaliará a feição especificada da camada especificada.

Sintaxe

maptip(layer, feature, [evaluate=true])

[] indica argumentos opcionais

Argumentos

  • layer - A camada (ou ID ou nome)

  • feature - Feição que deverá ser avaliada.

  • evaluate - Se a expressão precisa ser avaliada, Se falso, a expressão será retornada como um texto literal (que pode ser potencialmente avaliada futuramente utilizando a função ‘eval_template’)

Exemplos

  • maptip('streets', get_feature_by_id('streets', 1)) → Maptip da feição de ID 1 na camada ‘streets’.

  • maptip('a_layer_id', @feature, 'False') → The maptip of the given feature not evaluated.

13.2.22.13. num_selected

Retorna o número de feições selecionadas em uma determinada camada. Por padrão, funciona na camada na qual a expressão é avaliada.

Sintaxe

num_selected([layer=current layer])

[] indica argumentos opcionais

Argumentos

  • layer - Camada (ou seu id ou nome) onde a seleção deverá ser verificada.

Exemplos

  • num_selected() → O número de feições selecionadas na feição atual.

  • num_selected('streets') → Número de feições selecionadas na camada ‘streets’

13.2.22.14. represent_attributes

Returns a map with the attribute names as keys and the configured representation values as values. The representation value for the attributes depends on the configured widget type for each attribute. Can be used with zero, one or more arguments, see below for details.

Sem parâmetros

If called with no parameters, the function will return the representation of the attributes of the current feature in the current layer.

Sintaxe

represent_attributes()

Exemplos

  • represent_attributes() → The representation of the attributes for the current feature.

Um parâmetro ‘feição’

If called with a ‘feature’ parameter only, the function will return the representation of the attributes of the specified feature from the current layer.

Sintaxe

represent_attributes(feature)

Argumentos

  • feature - Feição que deverá ser avaliada.

Exemplos

  • represent_attributes(@atlas_feature) → The representation of the attributes for the specified feature from the current layer.

Parâmetros de camada e feição

If called with a ‘layer’ and a ‘feature’ parameter, the function will return the representation of the attributes of the specified feature from the specified layer.

Sintaxe

represent_attributes(layer, feature)

Argumentos

  • layer - The layer (or its ID or name).

  • feature - Feição que deverá ser avaliada.

Exemplos

  • represent_attributes('atlas_layer', @atlas_feature) → The representation of the attributes for the specified feature from the specified layer.

Leitura adicional: represent_value

13.2.22.15. represent_value

Retorna o valor de representação configurado para um valor de campo. Depende do tipo de widget configurado. Frequentemente, isso é útil para widgets de ‘Mapa de valores’.

Sintaxe

represent_value(value, [fieldName])

[] indica argumentos opcionais

Argumentos

  • value - O valor que deve ser resolvido. Provavelmente um campo.

  • fieldName - The field name for which the widget configuration should be loaded.

Exemplos

  • represent_value("field_with_value_map") → Descrição do valor

  • represent_value('static value', 'field_name') → Descrição do valor estático

Leitura adicional: widget types, represent_attributes

13.2.22.16. sqlite_fetch_and_increment

Gerencia valores auto incrementais em bancos de dados sqlite

Valores SQLIte padrões podem apenas serem aplicados durante a inserção e não pré-buscados.

Isso torna impossível adquirir uma chave primária incrementada via AUTO_INCREMENT antes de criar a linha no banco de dados. Observação: com postgres, isso funciona por meio da opção avaliar valores padrão.

Ao adicionar novas feições com relações, é muito bom poder adicionar filhos para um pai, enquanto o formulário dos pais ainda está aberto e equanto a feição pai não estiver commitada.

Para contornar essa limitação, esta função pode ser usada para gerenciar valores de sequência em uma tabela separada em formatos baseados em sqlite como gpkg.

A tabela de sequência será filtrada para um id de sequência (filter_attribute e filter_value) e o valor atual do id_field será incrementado em 1 e o valor incrementado retornado.

Se colunas adicionais exigirem a especificação de valores, o mapa default_values poderá ser usado para essa finalidade.

Observação

Esta função modifica a tabela sqlite de destino. Destina-se ao uso com configurações de valor padrão para atributos.

Quando o parâmetro do banco de dados for uma camada e a camada estiver no modo de transação, o valor será recuperado apenas uma vez durante o tempo de vida de uma transação e armazenado em cache e incrementado. Isso torna inseguro trabalhar no mesmo banco de dados de vários processos em paralelo.

Sintaxe

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

[] indica argumentos opcionais

Argumentos

  • database - Caminho para o arquivo sqlite ou camada geopackage

  • table - Nome da tabela que gerencia as sequências

  • id_field - Nome do campo que contém o valor atual

  • filter_attribute - Nome do campo que contém o identificador único para essa sequência. Precisa ter o indice UNIQUE.

  • filter_value - Nome da sequencia a ser usada.

  • default_values - Mapa com valores padrão para colunas adicionais na tabela. Os valores precisam ser informados integralmente. Funções são permitidas.

Exemplos

  • 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

Leitura adicional: Data Sources Properties, Setting relations between multiple layers

13.2.22.17. uuid

Gera um Idenrificador Universal Único (UUID) para cada linha utilizando o método Qt QUuid::createUuid.

Sintaxe

uuid([format=’WithBraces’])

[] indica argumentos opcionais

Argumentos

  • format - Formato, que irá formatar o UUID. ‘WithBraces’, ‘WithoutBraces’ ou ‘Id128’.

Exemplos

  • uuid() → ‘{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}’

  • uuid('WithoutBraces') → ‘0bd2f60f-f157-4a6d-96af-d4ba4cb366a1’

  • uuid('Id128') → ‘0bd2f60ff1574a6d96afd4ba4cb366a1’

13.2.23. Relações

Este grupo contém a liste de relações disponíveis no projeto atual, junto com suas descrições. Ele permite acesso rápido ao ID da relação para a escrita de uma expressção (como por exemplo a função relation_aggregate) ou customização de um formulário.

13.2.24. Sensors Functions

This group contains functions to interact with sensors.

13.2.24.1. sensor_data

Returns the last captured value (or values as a map for sensors which report multiple values) from a registered sensor.

Sintaxe

sensor_data(name, [expiration])

[] indica argumentos opcionais

Argumentos

  • name - the sensor name

  • expiration - maximum millisecond since last captured value allowed

Exemplos

  • sensor_data('geiger_1') → ‘2000’

13.2.25. Funções de String

Este grupo contém funções que operam em textos (por exemplo, quer substituir, converter para maiúsculas).

13.2.25.1. ascii

Retorna o código unicode associado ao primeiro caractere de uma string.

Sintaxe

ascii(string)

Argumentos

  • string - string a ser convertida para código unicode

Exemplos

  • ascii('Q') → 81

13.2.25.2. char

Retorna um caractere associal a um código unicode.

Sintaxe

char(code)

Argumentos

  • code - número de um código unicode

Exemplos

  • char(81) → ‘Q’

13.2.25.3. concat

Concatena várias strings em uma. Valores nulos são convertidos em strings vazias. Outros valores (como números) são convertidos para string).

Sintaxe

concat(string1, string2, …)

Argumentos

  • string - um valor string

Exemplos

  • concat('sun', 'set') → ‘sunset’

  • concat('a','b','c','d','e') → ‘abcde’

  • concat('Anno ', 1984) → ‘Anno 1984’

  • concat('The Wall', NULL) → ‘The Wall’

Sobre a concatenação de campos

Você pode também concatenar strings ou valores de campos utilizando também os operadores || ou +, com algumas características:

  • O operador + também significa somar expressão; portanto, se você tiver um operando inteiro (valor numérico ou de campo), isso pode ser propenso a erros e é melhor usar os outros:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • Quando qualquer um dos argumentos for um valor NULL, || ou + retornará um valor NULL. Para retornar os outros argumentos independentemente do valor NULL, convém usar a função concat:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    

further reading: ||, +

13.2.25.4. format

Formate uma string usando os argumentos fornecidos.

Sintaxe

format(string, arg1, arg2, …)

Argumentos

  • string - Uma string com espaços reservados %1, %2, etc., para os argumentos. Os espaços reservados podem ser repetidos. O espaço reservado de menor número é substituído por arg1, o próximo por arg2, etc.

  • arg - qualquer tipo. Qualquer número de argumentos.

Exemplos

  • format('Isso %1 um %2','é', 'teste') → ‘Isso é um teste’

  • format('Isso é %2',' um pouco inesperado mas o 2 é o menor número na string','normal') → ‘Isso é um pouco inesperado mas o 2 é o menor número na string’

13.2.25.5. format_date

Fomata o tipo date ou string em uma string formadata customizada. Usa o formato de string do Qt date/time . Veja QDateTime::toString.

Sintaxe

format_date(datetime, format, [language])

[] indica argumentos opcionais

Argumentos

  • datetime - valor data, hora ou datetime

  • format - String do modelo usado para formatar a string.

    Expression

    Output

    d

    o dia como número sem zero à esquerda (1 a 31)

    dd

    o dia como número com um zero à esquerda (01 a 31)

    ddd

    localização abreveada do nome do dia (ex. ‘Seg’ a ‘Dom’)

    dddd

    o nome longo do dia localizado (ex., ‘Segunda-feira’ a ‘Domingo’)

    M

    o mês como número sem zero à esquerda (1-12)

    MM

    o mês como número com um zero à esquerda (01-12)

    MMM

    o nome abreviado do mês localizado (ex., ‘Jan’ a ‘Dez’)

    MMMM

    o nome longo do mês localizado (ex., ‘janeiro’ a ‘dezembro’)

    yy

    o ano como número de dois dígitos (00-99)

    yyyy

    o ano como número de quatro dígitos

    Estas expressões podem ser usadas para a parte da hora da string de formatação:

    Expression

    Output

    h

    a hora sem zero à esquerda (0 a 23 ou 1 a 12 se for exibido AM/PM)

    hh

    a hora com um zero à esquerda (00 a 23 ou 01 a 12 se for exibido AM/PM)

    H

    a hora sem zero à esquerda (0 a 23, mesmo com exibição AM/PM)

    HH

    a hora com um zero à esquerda (00 a 23, mesmo com exibição AM/PM)

    m

    o minuto sem zero à esquerda (0 a 59)

    mm

    o minuto com um zero à esquerda (00 a 59)

    s

    o segundo sem zero à esquerda (0 a 59)

    ss

    o segundo com um zero à esquerda (00 a 59)

    z

    os milissegundos sem zeros à direita (0 a 999)

    zzz

    os milissegundos com zeros à direita (000 a 999)

    AP or A

    Iinterprete como uma hora AM/PM. AP precisa ser ambos ‘AM’ ou ‘PM’.

    ap or a

    Interprete como uma hora AM/PM. ap precisa ser ambos ‘am’ ou ‘pm’.

  • language - lingua (caixa baixa, duas ou três letras, código de linguagem ISO 639) usada para formatar a data em uma string customizada. Por padrão a localização do usuário atual do QGIS é utilizada.

Exemplos

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

  • format_date('2012-05-15','d MMMM yyyy','fr') → ‘15 mai 2012’

  • format_date('2012-05-15','dddd') → ‘Terça-feira’, se a localização é uma variante do Português.

  • 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’

13.2.25.6. format_number

Retonra um número formatado com o separador de milhar de acordo com a localização, Por padrão a localização atual do QGIS é utilizada. Também permite truncar as casas decimais para a quantidade de casas fornecidas.

Sintaxe

format_number(number, [places=0], [language], [omit_group_separators=false], [trim_trailing_zeroes=false])

[] indica argumentos opcionais

Argumentos

  • number - número a ser formatado

  • places - número inteiro que representa o número de casas decimais para truncar a cadeia.

  • language - lingua (minúscula, duas- ou três letras, ISO 639 código de lingua) Utilizado para formatar o número em uma string. Por padrão a localização atual do usuário no QGIS é utilizada.

  • omit_group_separators - if set to true then group separators will not be included in the string

  • trim_trailing_zeroes - if set to true then trailing zeros following the decimal point will be trimmed from the string

Exemplos

  • format_number(10000000.332,2) → ‘10,000,000.33’ se, por exemplo, a localização atual for uma variante do Inglês

  • format_number(10000000.332,2,'fr') → ‘10 000 000,33’

13.2.25.7. left

Retorna uma parte de uma string que contém os enésimos caractere mais a esquerda de uma string.

Sintaxe

left(string, length)

Argumentos

  • string - a string

  • length - inteiro. O número de caracteres à esquerda da cadeia a ser retornada.

Exemplos

  • left('Hello World',5) → ‘Hello’

13.2.25.8. length

Retorna o número de caracteres em uma string ou o tamanho de uma geometria linha.

Variante string

Retorna o número de caracteres em uma string.

Sintaxe

length(string)

Argumentos

  • string - string para contar o comprimento de

Exemplos

  • length('hello') → 5

Variante geometria

Calcule o comprimento de um objeto de geometria linha. Os cálculos são sempre planimétricos no Sistema de Referência Espacial (SRS) dessa geometria, e as unidades do comprimento retornado corresponderão às unidades do SRS. Isso difere dos cálculos realizados pela função $length, que realizará cálculos elipsoidais com base nas configurações de elipsóide e unidade de distância do projeto.

Sintaxe

length(geometry)

Argumentos

  • geometry - objeto de geometria linha

Exemplos

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

13.2.25.9. lower

Converte uma cadeia em letras minúsculas.

Sintaxe

lower(string)

Argumentos

  • string - a string a ser convertida para letras minúsculas

Exemplos

  • lower('HELLO World') → ‘hello world’

13.2.25.10. lpad

Retorna uma cadeia preenchida à esquerda até a largura especificada, usando um caractere de preenchimento. Se a largura de destino for menor que o comprimento da cadeia, a cadeia, será truncada.

Sintaxe

lpad(string, width, fill)

Argumentos

  • string - string para preencher

  • width - comprimento da nova cadeia

  • fill - caractere que irá preencher o espaço restante

Exemplos

  • lpad('Hello', 10, 'x') → ‘xxxxxHello’

  • lpad('Hello', 3, 'x') → ‘Hel’

13.2.25.11. ltrim

Removes the longest string containing only the specified characters (a space by default) from the start of string.

Sintaxe

ltrim(string, [characters=’ ‘])

[] indica argumentos opcionais

Argumentos

  • string - string para aparar

  • characters - characters to trim

Exemplos

  • ltrim('   hello world  ') → ‘hello world ‘

  • ltrim('zzzytest', 'xyz') → ‘test’

Further reading: rtrim, trim

13.2.25.12. regexp_match

Retorna a primeira posição que corresponda com a expressão regular em uma string unicode, ou 0 se a sub string não for encontrada.

Sintaxe

regexp_match(input_string, regex)

Argumentos

  • input_string - a string a ser usada contra a expressão regular

  • regex - A expressão regular a ser testada contra a string, os caracteres de barra invertida precisam ser escapados (Ex., “\\s” para combinar com espaço em branco ou “\\b” para corresponder a um limite de palavra).

Exemplos

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

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

13.2.25.13. regexp_replace

Retorna uma string com Retorna uma string com a expressão regular fornecida substituída.

Sintaxe

regexp_replace(input_string, regex, replacement)

Argumentos

  • input_string - a string para substituir as correspondências

  • regex - Expressão regular para substituir. caracteres com barra invertida devem ser escapados (e.x.: “\\s” para corresponder a um caractere de espaço em branco).

  • replacement - String que irá subistituir quaisquer ocorrências da expressão regular fornecida. captura de grupos pode ser inserida na string de substituição utilizando \\1, \\2, etc.

Exemplos

  • regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → ‘QGIS DOES ROCK’

  • regexp_replace('ABC123','\\d+','') → ‘ABC’

  • regexp_replace('my name is John','(.*) is (.*)','\\2 is \\1') → ‘John is my name’

13.2.25.14. regexp_substr

Retorna a parte de uma cadeia que corresponde a uma expressão regular fornecida.

Sintaxe

regexp_substr(input_string, regex)

Argumentos

  • input_string - string onde irá procurar ocorrências

  • regex - A expressão regular a ser comparada. Os caracteres de barra invertida devem ter escape duplo (e.x.:, “\\s” para corresponder a um caractere de espaço em branco).

Exemplos

  • regexp_substr('abc123','(\\d+)') → ‘123’

13.2.25.15. replace

Retorna uma string com a string, array ou mapa de strings fornecido substituído.

Variante String & array

Retorna uma string com a string ou matriz de strings fornecida substituída por uma string ou uma matriz de strings.

Sintaxe

replace(string, before, after)

Argumentos

  • string - string de entrada

  • before - string ou matriz de strings para substituir

  • after - string ou matriz de strings a ser utilizadas como substitutas

Exemplos

  • replace('QGIS SHOULD ROCK','SHOULD','DOES') → ‘QGIS DOES ROCK’

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → ‘QGIS XYZ’

  • replace('QGIS',array('Q','S'),'') → ‘GI’

Variação por mapeamento

Retorna a string com as chaves de mapas substituidas pelos valores pareados. As chaves mais longas são avaliadas primeiro.

Sintaxe

replace(string, map)

Argumentos

  • string - string de entrada

  • map - map que contém chaves e valores

Exemplos

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → ‘QGIS DOES ROCK’

  • replace('forty two',map('for','4','two','2','forty two','42')) → ‘42’

13.2.25.17. rpad

Retorna uma string preenchida à direita na largura especificada, usando um caractere de preenchimento. Se a largura de destino for menor que o comprimento da string, a string será truncada.

Sintaxe

rpad(string, width, fill)

Argumentos

  • string - string para preencher

  • width - comprimento da nova cadeia

  • fill - caractere que irá preencher o espaço restante

Exemplos

  • rpad('Hello', 10, 'x') → ‘Helloxxxxx’

  • rpad('Hello', 3, 'x') → ‘Hel’

13.2.25.18. rtrim

Removes the longest string containing only the specified characters (a space by default) from the end of string.

Sintaxe

rtrim(string, [characters=’ ‘])

[] indica argumentos opcionais

Argumentos

  • string - string para aparar

  • characters - characters to trim

Exemplos

  • rtrim('   hello world  ') → ‘ hello world’

  • rtrim('testxxzx', 'xyz') → ‘test’

Further reading: ltrim, trim

13.2.25.19. strpos

Retorna a primeira posição encontrada de uma substring em outra string, ou 0 se a substring não for encontrada.

Sintaxe

strpos(haystack, needle)

Argumentos

  • haystack - string that is to be searched

  • needle - string to search for

Exemplos

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

13.2.25.20. substr

Retorna uma parte de uma string.

Sintaxe

substr(string, start, [length])

[] indica argumentos opcionais

Argumentos

  • string - string de entrada inteira

  • start - inteiro representando a posição inicial para extrair começando com 1; se start for negativo, a string de retorno começará no final da string menos o valor inicial

  • length - inteiro representando o tamanho da string a ser extraída; se length for negativo, a string retornada irá omitir a quantidade de caracteres do final da string

Exemplos

  • 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’

13.2.25.21. title

Converte todas as palavras de uma string de título (todas as palavras com a primeira letra maiúscula).

Sintaxe

title(string)

Argumentos

  • string - string a ser convertida

Exemplos

  • title('hello WOrld') → ‘Hello World’

13.2.25.22. to_string

Converte um número em string.

Sintaxe

to_string(number)

Argumentos

  • number - Interio ou valor real. Número a ser convertido para string.

Exemplos

  • to_string(123) → ‘123’

13.2.25.23. trim

Remove todos os espaços em branco do início e do final (espaços vazios, tabulações, etc) de uma string.

Sintaxe

trim(string)

Argumentos

  • string - string para aparar

Exemplos

  • trim('   hello world  ') → ‘hello world’

Further reading: ltrim, rtrim

13.2.25.24. upper

Converte uma string em letras maiúsculas.

Sintaxe

upper(string)

Argumentos

  • string - string a ser convertida para maiúscula

Exemplos

  • upper('hello WOrld') → ‘HELLO WORLD’

13.2.25.25. wordwrap

Retorna uma string agrupada em um número máximo/mínimo de caracteres.

Sintaxe

wordwrap(string, wrap_length, [delimiter_string])

[] indica argumentos opcionais

Argumentos

  • string - string a ser agrupada

  • wrap_length - um inteiro. Se wrap_length for positivo, o número representará o número máximo ideal de caracteres a serem agrupados; se negativo, o número representa o número mínimo de caracteres a serem agrupados.

  • delimiter_string - String elimitadora opcional para agrupar em uma nova linha.

Exemplos

  • wordwrap('UNIVERSITY OF QGIS',13) → ‘UNIVERSITY OF<br>QGIS’

  • wordwrap('UNIVERSITY OF QGIS',-3) → ‘UNIVERSITY<br>OF QGIS’

13.2.26. Expressões do usuário

Este grupo contém as expressões salvas como expressões do usuário.

13.2.27. Variáveis

Este grupo contém variáveis ​​dinâmicas relacionadas a aplicação, ao arquivo do projeto e outras configurações. A disponibilidade das variáveis ​​depende do contexto:

  • da caixa de diálogo expressionSelect Selecionar por expressão

  • a partir da caixa de diálogo calculateField Calculadora de campo

  • na caixa de diálogo de propriedades da camada

  • do layout de impressão

Para usar essas variáveis ​​em uma expressão, elas devem ser precedidas pelo caractere @ (por exemplo, @row_number).

Variável

Descrição

algorithm_id

O ID exclusivo de um algoritmo

animation_end_time

Fim do intervalo de tempo geral da animação (como um valor de data e hora)

animation_interval

Duração do intervalo temporal geral da animação (como um valor de intervalo)

animation_start_time

Início do intervalo temporal geral da animação (como um valor de data e hora)

atlas_feature

A feição atual do atlas (como objeto de feição)

atlas_featureid

O ID da feição do atlas atual

atlas_featurenumber

O número atual da feição do atlas no layout

atlas_filename

O nome do arquivo do atlas atual

atlas_geometry

A geometria da feição do atlas atual

atlas_layerid

O ID da camada de cobertura do atlas atual

atlas_layername

O nome atual da camada de cobertura do atlas

atlas_pagename

O nome da página atual do atlas

atlas_totalfeatures

O número total de feições no atlas

canvas_cursor_point

A última posição do cursor na tela nas coordenadas geográficas do projeto

cluster_color

A cor dos símbolos em um cluster ou NULL se os símbolos tiverem cores misturadas

cluster_size

O número de símbolos contidos em um cluster

current_feature

A feição atualmente sendo editada no formulário de atributo ou na linha da tabela

current_geometry

A geometria da feição atualmente sendo editada no formulário ou na linha da tabela

current_parent_feature

representa a feição que está sendo editada no formulário pai. Apenas utilizável em um formulário incorporado pelo contexto.

geometria_parent_atual

representa a geometria da feição que está sendo editada no formulário pai. Apenas utilizável em formulário incorporado pelo contexto.

form_mode

Para que o formulário é usado, como AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode ou IdentifyMode como string.

feature

The current feature being evaluated. This can be used with the ‘attribute’ function to evaluate attribute values from the current feature.

frame_duration

Duração temporal de cada quadro de animação (como um valor de intervalo)

frame_number

Número do quadro atual durante a reprodução da animação

frame_rate

Número de quadros por segundo durante a reprodução da animação

fullextent_maxx

Valor máximo de x da extensão completa da tela (incluindo todas as camadas)

fullextent_maxy

Valor y máximo da extensão total da tela (incluindo todas as camadas)

fullextent_minx

Valor mínimo de x da extensão completa da tela (incluindo todas as camadas)

fullextent_miny

Valor y mínimo da extensão completa da tela (incluindo todas as camadas)

geometry

The geometry of the current feature being evaluated

geometry_part_count

O número de partes na geometria da feição renderizada

geometry_part_num

O número da parte da geometria atual para a feiição que está sendo renderizada

geometry_point_count

O número de pontos na parte da geometria renderizada

geometry_point_num

O número do ponto atual na parte da geometria renderizada

geometry_ring_num

Número do anel da geometria atual da feição sendo renderizado (para feições do tipo polígonos apenas). O anel exterior tem um valor de 0;

grid_axis

O eixo de anotação da grade atual (por exemplo, ‘x’ para longitude, ‘y’ para latitude)

grid_number

O valor atual da anotação da grade

id

The ID of the current feature being evaluated

item_id

O ID do usuário do item de layout (não necessariamente exclusivo)

item_uuid

O ID exclusivo do item de layout

layer

A camada atual

layer_crs

Autoridade do Sistema de Referência de Coordenadas da camada atual

layer_crs_ellipsoid

The ellipsoid Authority ID of the current layer CRS

layer_cursor_point

Point geometry under the mouse position in map canvas, in active layer’s CRS

layer_id

O ID da camada atual

layer_ids

Uma lista com os ID de todas as camadas de mapas no projeto atual

layer_name

O nome da camada atual

layers

Lista com todas as camadas no projeto atual

layout_dpi

A resolução da composição (DPI)

layout_name

O nome do layout

layout_numpages

O número de páginas no layout

layout_page

O número da página do item atual no layout

layout_pageheight

Altura da página atual no layout (em mm para tamanhos de papéis padrão, ou qualquer outra unidade sendo usada pelo tamanho de papel customizado)

layout_pageoffsets

Array de coordenadas do eixo Y de cada página. Permite posicionar itens dinamicamente nas páginas em um contexto em que os tamanhos das páginas podem mudar

layout_pagewidth

Largura da página atual no layout (em mm para tamanhos de papel padrão, ou outra unidade utilizada em tamanhos de papel customizado)

legend_column_count

O número de colunas na legenda

legend_filter_by_map

Indica se o conteúdo da legenda é filtrado pelo mapa

legend_filter_out_atlas

Indica se o atlas é filtrado para fora da legenda

legend_split_layers

Indica se as camadas podem ser divididas na legenda

legend_title

O título da lenda

legend_wrap_string

O(s) caractere(s) usados ​​para quebrar o texto da legenda

map_crs

O Sistema de referência de coordenadas do mapa atual

map_crs_acronym

A sigla do Sistema de referência de coordenadas do mapa atual

map_crs_definition

A definição completa do Sistema de referência de coordenadas do mapa atual

map_crs_description

O nome do Sistema de referência de coordenadas do mapa atual

map_crs_ellipsoid

A sigla do elipsóide do Sistema de referência de coordenadas do mapa atual

map_crs_proj4

A definição Proj4 do Sistema de referência de coordenadas do mapa atual

map_crs_projection

O nome descritivo do método de projeção usado pelo sistema de referência de coordenadas do mapa (por exemplo, ‘Albers Área Igual’)

map_crs_wkt

A definição WKT do Sistema de referência de coordenadas do mapa atual

map_end_time

O fim do intervalo de tempo temporal do mapa (como um valor de data e hora)

map_extent

A geometria que representa a extensão atual do mapa

map_extent_center

A feição de ponto no centro do mapa

map_extent_height

A altura atual do mapa

map_extent_width

A largura atual do mapa

map_id

O ID do destino atual do mapa. Será ‘canvas’ para renderizações de tela, e o ID do item para renderizações de mapa de layout

intervalo do mapa

A duração do intervalo de tempo temporal do mapa (como um valor de intervalo)

map_layer_ids

A lista de IDs da camada do mapa visíveis no mapa

map_layers

A lista de camadas do mapa visíveis no mapa

map_rotation

A rotação atual do mapa

map_scale

A escala atual do mapa

map_start_time

O início do intervalo de tempo temporal do mapa (como um valor de data e hora)

map_units

As unidades de medidas do mapa

model_path

Caminho completo (incluindo o nome do arquivo) do modelo atual (ou caminho do projeto se o modelo estiver incorporado em um projeto).

model_folder

Pasta que contém o modelo atual (ou pasta do projeto se o modelo estiver incorporado em um projeto).

model_name

Nome do modelo atual

model_group

Grupo para o modelo atual

notification_message

Conteúdo da mensagem de notificação enviada pelo provedor (disponível apenas para ações acionadas por notificações do provedor).

parent

Refere-se a feição atual na camada pai, fornecendo acesso aos seus atributos e geometria ao filtrar uma função aggregate

project_abstract

O resumo do projeto, extraído dos metadados do projeto

project_area_units

A unidade de área do projeto atual, usada no cálculo de áreas de geometrias

project_author

O autor do projeto, extraído dos metadados do projeto

project_basename

O nome base do nome do arquivo do projeto atual (sem caminho e extensão)

project_creation_date

A data de criação do projeto, extraída dos metadados do projeto

project_crs

O Sistema de referência de coordenadas do projeto

project_crs_arconym

A sigla do Sistema de referência de coordenadas do projeto

project_crs_definition

A definição completa do Sistema de referência de coordenadas do projeto

project_crs_description

A descrição do Sistema de referência de coordenadas do projeto

project_crs_ellipsoid

O elipsóide do Sistema de referência de coordenadas do projeto

project_crs_proj4

A representação do Proj4 do Sistema de referência de coordenadas do projeto

project_crs_wkt

A representação WKT (well known text) do Sistema de referência de coordenadas do projeto

project_distance_units

A unidade de distância para o projeto atual, usada no cálculo de comprimentos de geometrias e distâncias

project_ellipsoid

O nome do elipsóide do projeto atual, usado no cálculo de áreas geodésicas ou comprimentos de geometrias

project_filename

O nome do arquivo do projeto atual

project_folder

A pasta do projeto atual

project_home

O caminho inicial do projeto atual

project_identifier

O identificador do projeto, obtido dos metadados do projeto

project_keywords

As palavras-chave do projeto, extraídas dos metadados do projeto

project_last_saved

Data/hora em que o projeto foi salvo pela última vez.

project_path

O caminho completo (incluindo o nome do arquivo) do projeto atual

project_title

O título do projeto atual

project_units

As unidades do SRC do projeto

qgis_locale

O idioma atual do QGIS

qgis_os_name

O nome atual do sistema operacional, por exemplo, ‘windows’, ‘linux’ ou ‘osx’

qgis_platform

A plataforma QGIS, por exemplo, ‘desktop’ ou ‘servidor’

qgis_release_name

O nome da versão atual do QGIS

qgis_short_version

A string curta da versão atual do QGIS

qgis_version

A string de versão atual do QGIS

qgis_version_no

O número da versão atual do QGIS

row_number

Armazena o número da linha atual

snapping_results

Dá acesso aos resultados de encaixe ao digitalizar uma feição (disponível apenas no adicionar feição)

scale_value

O valor atual da distância da barra de escala

selected_file_path

Caminho de arquivo selecionado do seletor de widget de arquivo ao carregar um arquivo com um sistema de armazenamento externo

symbol_angle

O ângulo do símbolo usado para renderizar a feição (válido apenas para símbolos de marcador)

symbol_color

A cor do símbolo usado para renderizar a feição

symbol_count

O número de feições representadas pelo símbolo (na legenda do layout)

symbol_frame

The frame number (for animated symbols only)

symbol_id

O ID interno do símbolo (na legenda do layout)

symbol_label

O rótulo do símbolo (um rótulo definido pelo usuário ou o rótulo gerado automaticamente por padrão - na legenda do layout)

symbol_layer_count

Número total de camadas de símbolo no símbolo

symbol_layer_index

Current symbol layer index

symbol_marker_column

Número da coluna para marcador (válido apenas para preenchimentos de padrão de ponto).

symbol_marker_row

Número da linha do marcador (válido apenas para preenchimentos de padrão de ponto).

user_account_name

O nome da conta do sistema operacional do usuário atual

user_full_name

O nome do usuário do sistema operacional do usuário atual

value

O valor atual

vector_tile_zoom

Nível exato de zoom do bloco vetorial do mapa que está sendo renderizado (derivado da escala do mapa atual). Normalmente no intervalo [0, 20]. Ao contrário de @zoom_nível, esta variável é um valor de ponto flutuante que pode ser usado para interpolar valores entre dois níveis de zoom inteiros.

with_variable

Permite definir uma variável para uso em uma expressão e evitar recalcular o mesmo valor repetidamente

@zoom_nível

Nivel de zoom do tile do vetor no mapa que está sendo renderizado (derivado da escala do mapa atual). Normalmente um intervalo [0,20].

Alguns exemplos:

  • Retorna a coordenada X de um centro de item de mapa no layout:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Retorne, para cada feição na camada atual, o número de feições de aeroporto sobrepostas:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Obtém o object_id do primeiro ponto ajustado de uma linha:

    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'
      )
    )
    

13.2.28. Funções Recentes

Este grupo contém funções usadas recentemente. Dependendo do contexto de seu uso (seleção de feição, calculadora de campo, genérico), as expressões aplicadas recentemente são adicionadas à lista correspondente (até dez expressões), ordenadas de mais para menos recente. Isso facilita a rápida recuperação e reaplicação de expressões usadas anteriormente.