14.2. Expressões¶
Com base nos dados da camada e nas funções predefinidas ou definidas pelo usuário, Expressões oferece uma maneira poderosa de manipular valor, geometria e variáveis de atributos, a fim de alterar dinamicamente o estilo da geometria, o conteúdo ou a posição do rótulo, o valor do diagrama, a altura de um item de layout, selecionar alguns recursos, criar um campo virtual …
14.2.1. O Construtor de expressão string¶
A plataforma principal para construir expressões, o Expression string builder está disponível em muitas partes no QGIS e, pode ser acessado quando:
clicando no botão expressão;
ref:selecionando feições<sec_selection> com a ferramenta
Selecionar por Expressão…;
editando atributos com a ferramenta
Calculadora de Campo;
manipulação de parâmetros de simbologia, rótulo ou item de layout com a ferramenta
Substituição de dados definida (veja Data defined override setup);
Construindo uma camada de símbolo de geradora de geometria ;
Realizando algum geoprocessamento.
A plataforma de Construção de Expressão oferece acesso a:
Aba de Expressão, a qual ajuda a escrever e verificar a expressão a ser usada, graças a uma lista predefinida de funções;
Aba de Editor de Função a qual ajuda a expandir a lista de funções por meio de criações customizadas de novas funções.
Alguns casos de usos das Expressões:
A partir da Calculadora de Campo, calcula-se um campo de densidade populacional (“pop_density”) usando os campos existentes de população (“total_pop”) e de área (“area_km2”):
"total_pop" / "area_km2"
Atualiza-se o campo sobre nível de densidade (“density_level”) com categorias de acordo com os valores da densidade (“pop_density”):
CASE WHEN "pop_density" < 50 THEN 'Low population density' WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population density' WHEN "pop_density" >= 150 THEN 'High population density' END
Update a region layer field with the names (comma separated) of contained airports:
aggregate('airport_layer', 'concatenate', "name", within($geometry, geometry(@parent)), ', ')
Aplica-se um estilo categorizado para todas as feições de acordo com condição do valor médio da casa ser maior ou maior do que 10000€ por metro quadrado:
"price_m2" > 10000
Usando a ferramenta “Selecionar por Expressão…”, seleciona-se todas as feições representativas de áreas de “Alta densidade populacional” e as quais possuem valor médio da casa maior do que 10000€ por metro 2:
"density_level" = 'High population density' and "price_m2" > 10000
Do mesmo modo, a expressão anterior poderia também ser usada para definir quais feições deveriam ser rotuladas ou mostradas no mapa.
Usar expressões permite a você um monte de possibilidades.
Dica
Use Parâmetros Nomeados para aperfeiçoar a leitura da expressão
Algumas funções exigem a configuração de inúmeros parâmetros. O mecanismo de Expressão suporta o uso de Parâmetros nomeados. Isto significa que ao invés de escrever a expressão criptografada clamp( 1, 2, 9)
, você pode usar clamp( min:=1, value:=2, max:=9)
. Isto permite que os argumentos sejam trocados, por exemplo, clamp( value:=2, max:=9, min:=1)
. Usar Parâmetros nomeados ajuda a esclarecer ao que os argumentos de uma função se referem, o que pode ser útil quando você estará tentando interpretar uma função no futuro.
14.2.2. Lista de funções¶
A guia Expressão fornece a interface principal para escrever expressões usando funções, campos e valores da camada. Ele contém os seguintes widgets:
Uma área do editor de expressão para digitar ou colar expressões. O preenchimento automático está disponível para acelerar a escrita de expressões:
Variáveis correspondentes, nomes de funções e nomes de campos para o texto de entrada são mostrados abaixo: use as setas Up e Down para navegar pelos itens e pressione Tab para inserir na expressão ou basta clicar no item desejado.
Os parâmetros de função são mostrados ao preenchê-los.
O QGIS também verifica a correção da expressão e destaca todos os erros usando:
Sublinhado: para funções desconhecidas, argumentos errados ou inválidos;
Marcador: para todos os outros erros (por exemplo, parênteses ausentes, caracteres inesperados) em um único local.
Dica
Documente sua expressão com comentários
Ao usar expressões complexas, é uma boa prática adicionar texto como um comentário com várias linhas ou comentários embutidos para ajudá-lo a se lembrar.
/* Labels each region with its highest (in altitude) airport(s) and altitude, eg 'AMBLER : 264m' for the 'Northwest Artic' region */ with_variable( 'airport_alti', -- stores the highest altitude of the region aggregate( 'airports', 'max', "ELEV", -- the field containing the altitude -- and limit the airports to the region they are within filter := within( $geometry, geometry( @parent ) ) ), aggregate( -- finds airports at the same altitude in the region 'airports', 'concatenate', "NAME", filter := within( $geometry, geometry( @parent ) ) and "ELEV" = @airport_alti ) || ' : ' || @airport_alti || 'm' -- using || allows regions without airports to be skipped )
Sob o editor de expressão, Pré-visualização da Saída exibe o resultado da expressão avaliada na primeira feição da camada. Em caso de erro, este é indicado e você pode acessar os detalhes com o hiperlink fornecido.
Um seletor de funções exibe a lista de funções, variáveis, campos … organizados em grupos. Está disponível uma caixa de pesquisa para filtrar a lista e encontrar rapidamente uma função ou campo específico. Clicar duas vezes em um item o adiciona ao editor de expressão.
Um painel de ajuda exibe ajuda para cada item selecionado no seletor de funções.
Dica
Pressione Ctrl+Click ao passar com o mouse sobre o nome de uma função em uma expressão para exibir automaticamente sua ajuda na caixa de diálogo.
O widget de valores de um campo mostrado quando um campo é selecionado no seletor de funções ajuda a buscar atributos de feições. Clicar duas vezes em um valor adiciona-o ao editor de expressão.
Dica
O painel direito, mostrando as funções de ajuda ou valores de campo, pode ser recolhido (invisível) na caixa de diálogo. Pressione o botão Mostrar valores ou Mostrar ajuda para recuperá-lo.

Fig. 14.65 A guia Expressão¶
14.2.2.1. Funções Agregadas¶
Este grupo contém funções que agregam valores em camadas e campos.
Função |
Descrição |
---|---|
aggregate |
Retorna um valor agregado calculado usando feições de outra camada |
array_agg |
Retorna uma matriz de valores agregados de um campo ou expressão |
collect |
Retorna a geometria multipartes de geometrias agregadas de uma expressão |
concatenate |
Retorna todas as strings de caracteres agregadas de um campo ou expressão unida por um delimitador |
concatenate_unique |
Retorna todas as strings agregadas exclusivas de um campo ou expressão unida por um delimitador |
count |
Retorna a contagem de feições correspondentes |
count_distinct |
Retorna a contagem de valores distintos |
count_missing |
Retorna a contagem de valores ausentes (nulos) |
iqr |
Retorna o intervalo interquartil calculado de um campo ou expressão |
majority |
Retorna a maioria agregada dos valores (valor que ocorre com mais frequência) de um campo ou expressão |
max_length |
Retorna o comprimento máximo de strings de um campo ou expressão |
maximum |
Retorna o valor máximo agregado de um campo ou expressão |
mean |
Retorna o valor médio agregado de um campo ou expressão |
median |
Retorna a mediana agregada de um campo ou expressão |
min_length |
Retorna o comprimento mínimo de strings de um campo ou expressão |
minimum |
Retorna o valor mínimo agregado de um campo ou expressão |
minority |
Retorna a minoria agregada de valores (valor que ocorre menos frequentemente) de um campo ou expressão |
q1 |
Retorna o primeiro quartil calculado de um campo ou expressão |
q3 |
Retorna o terceiro quartil calculado de um campo ou expressão |
range |
Retorna o intervalo agregado de valores (máximo - mínimo) de um campo ou expressão |
relation_aggregate |
Retorna um valor agregado calculado usando todas as feições filhas correspondentes de uma relação de camada |
stdev |
Retorna o valor agregado do desvio padrão de um campo ou expressão |
sum |
Retorna o valor agregado agregado de um campo ou expressão |
Exemplos:
Retorne o máximo do campo “passengers” dos recursos da camada agrupada pelo campo “station_class”:
maximum("passengers", group_by:="station_class")
Calcule o número total de passageiros para as estações dentro da feição atlas atual:
aggregate('rail_stations','sum',"passengers", intersects(@atlas_geometry, $geometry))
Retorne a média do campo “field_from_related_table” para todos os recursos filhos correspondentes usando a relação ‘my_relation’ da camada:
relation_aggregate('my_relation', 'mean', "field_from_related_table")
ou:
relation_aggregate(relation:='my_relation', aggregate := 'mean', expression := "field_from_related_table")
14.2.2.2. Funções 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.
Função |
Descrição |
---|---|
array |
Retorna um array contendo todos os valores passados como parâmetro |
array_all |
Retorna true se um array contiver todos os valores de um determinado array |
array_append |
Retorna um array com o valor agregado adicionado no final |
array_cat |
Retorna um array contendo todos os arrays fornecidos concatenados |
array_contains |
Retorna true se um array contiver o valor especificado |
array_distinct |
Retorna um array contendo valores distintos do array especificado |
array_filter |
Retorna um array com apenas os itens para os quais uma expressão é avaliada como verdadeira |
array_find |
Retorna o índice (0 para o primeiro) de um valor dentro de um array. Retorna -1 se o valor não for encontrado. |
array_first |
Retorna o primeiro valor de um array |
array_foreach |
Retorna um array com a expressão especificada avaliada em cada item |
array_get |
Retorna o valor enésimo (0 para o primeiro) de um array |
array_insert |
Retorna um array com o valor agregado especificado na posição especificada |
array_intersect |
Retorna true se qualquer elemento do array_1 existir no array_2 |
array_last |
Retorna o último elemento de um array |
array_length |
Retorna o número de elementos de um array |
array_prepend |
Retorna um array com o valor dado adicionado no início |
array_remove_all |
Retorna um array com todas as entradas do valor dado removidas |
array_remove_at |
Retorna um array com o índice dado removido |
array_reverse |
Retorna o array dado com os valores do array em ordem inversa |
array_slice |
Retorna os valores do array do argumento start_pos até e incluindo o argumento end_pos |
array_sort |
Retorna o array fornecido com seus elementos classificados |
array_to_string |
Concatena elementos do array em uma string separada por um delimitador e usando a string opcional para valores vazios |
generate_series |
Cria um array contendo uma sequência de números |
regexp_matches |
Retorna um array de todas as strings capturadas pela captura de grupos, na ordem em que os próprios grupos aparecem na expressão regular fornecida em uma string |
string_to_array |
Divide a string em um array usando o delimitador fornecido e a string opcional para valores vazios |
14.2.2.3. Funções Cor¶
Este grupo contém funções para manipulação de cores.
Função |
Descrição |
---|---|
color_cmyk |
Retorna uma representação de string de caracteres de uma cor com base em seus componentes ciano, magenta, amarelo e preto |
color_cmyka |
Retorna uma representação de string de caracteres de uma cor com base em seus componentes ciano, magenta, amarelo, preto e alfa (transparência) |
color_grayscale_average |
Aplica um filtro em escala de cinza e retorna uma representação de string de uma cor fornecida |
color_hsl |
Retorna uma representação de string de uma cor com base em seus atributos de matiz, saturação e brilho |
color_hsla |
Retorna uma representação de string de uma cor com base em seus atributos de matiz, saturação, brilho e alfa (transparência) |
color_hsv |
Retorna uma representação de string de uma cor com base em seus atributos de matiz, saturação e valor |
color_hsva |
Retorna uma representação de string de uma cor com base em seus atributos de matiz, saturação, valor e alfa (transparência) |
color_mix_rgb |
Retorna uma string que representa uma cor que mistura os valores vermelho, verde, azul e alfa de duas cores fornecidas com base em uma determinada proporção |
color_part |
Retorna um componente específico de uma string de cor, por exemplo, o componente vermelho ou o componente alfa |
color_rgb |
Retorna uma representação de string de uma cor com base em seus componentes vermelho, verde e azul |
color_rgba |
Retorna uma representação de string de uma cor com base em seus componentes vermelho, verde, azul e alfa (transparência) |
create_ramp |
Retorna uma rampa de gradiente a partir de um mapa de strings de cores e incrementos |
darker |
Retorna uma string de cor mais escura (ou mais clara) |
lighter |
Retorna uma string de cor mais clara (ou mais escura) |
project_color |
Retorna uma cor do esquema de cores do projeto |
ramp_color |
Retorna uma string que representa uma cor de uma rampa de cores |
set_color_part |
Define um componente de cor específico para uma string de cor, por exemplo, o componente vermelho ou o componente alfa |
14.2.2.4. Funções Condicionais¶
Este grupo contém funções para lidar com verificações condicionais em expressões.
Função |
Descrição |
---|---|
CASE WHEN … THEN … END |
Avalia uma expressão e retorna um resultado se verdadeiro. Você pode testar várias condições |
CASE WHEN … THEN … ELSE … END |
Avalia uma expressão e retorna um resultado diferente, se for verdadeiro ou falso. Você pode testar várias condições |
coalesce |
Retorna o primeiro valor diferente de NULL da lista de expressões |
if |
Testa uma condição e retorna um resultado diferente, dependendo da verificação condicional |
nullif(value1, value2) |
Retorna um valor nulo se value1 for igual a value2, caso contrário, retornará value1. Isso pode ser usado para substituir condicionalmente valores por NULL. |
try |
Tenta uma expressão e retorna seu valor se estiver livre de erros, um valor alternativo (se fornecido) ou Nulo se ocorrer um erro |
Alguns exemplos:
Enviar de volta um valor se a primeira condição é verdade, outra coisa manda outro valor:
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
14.2.2.5. Funções de Conversão¶
Este grupo contém funções para converter um tipo de dado para outro (por exemplo, texto para inteiro, inteiro para texto).
Função |
Descrição |
---|---|
to_date |
Converte uma string em um objeto de data |
to_datetime |
Converte uma string em um objeto de date e hora |
to_dm |
Converte uma coordenada em grau, minuto |
to_dms |
Converte coordenadas em graus, minutos, segundos |
to_int |
Converte uma string em número inteiro |
to_interval |
Converte uma string em um tipo de intervalo (pode ser usado para dias, horas, meses etc. de uma data) |
to_real |
Converte uma string em um número real |
to_string |
Converte número para string |
to_time |
Converte uma string em um objeto de tempo |
14.2.2.6. Funções Personalizadas¶
Este grupo contém funções criadas pelo usuário. Veja Editor de Funções para mais detalhes.
14.2.2.7. Funções Data e Hora¶
Este grupo contém funções para trabalhar datas e hora data.
Função |
Descrição |
---|---|
age |
Retorna como intervalo a diferença entre duas datas ou data/hora |
day |
Extrai o dia de uma data ou data/hora, ou o número de dias de um intervalo |
day_of_week |
Retorna um número correspondente ao dia da semana para uma data ou data/hora especificada |
epoch |
Retorna o intervalo em milissegundos entre a época unix e um determinado valor de data |
hour |
Extrai a parte da hora de uma data/hora ou tempo, ou o número de horas de um intervalo |
minute |
Extrai a parte dos minutos de uma data/hora ou tempo, ou o número de minutos de um intervalo |
month |
Extrai a parte do mês de uma data ou data/hora ou o número de meses de um intervalo |
now |
Retorna data e hora atuais |
second |
Extrai a parte dos segundo de uma data/hora ou horário, ou o número de segundos de um intervalo |
week |
Extrai o número da semana de uma data ou data/hora ou o número de semanas de um intervalo |
year |
Extrai a parte do ano de uma data ou data/hora ou o número de anos de um intervalo |
Este grupo também compartilha várias funções com os grupos Funções de Conversão ( to_date, to_time, to_datetime, to_interval) e Funções String (format_date).
Alguns exemplos:
Obtenha o mês e o ano de hoje no formato “month_number/year”:
format_date(now(),'MM/yyyy') -- Returns '03/2017'
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') - to_datetime(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>
Nota
Armazenando data e data/hora e intervalos em campos
A capacidade de armazenar data, hora e data/hora diretamente nos campos pode depender do provedor da fonte de dados (por exemplo, o Shapefile aceita o formato data, mas não o formato data/hora ou hora). A seguir, são apresentadas algumas sugestões para superar essa limitação:
data, date/hora e hora podem ser armazenados nos campos de tipo de texto após o uso da função
to_format()
.Intervalos podem ser armazenados em campos do tipo inteiro ou decimal após o uso de uma das funções de extração de data (por exemplo,
day()
para obter o intervalo expresso em dias)
14.2.2.8. Campos e Valores¶
Contém uma lista de campos da camada.
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.
14.2.2.9. Funções de Arquivos e Caminhos¶
Este grupo contém funções que manipulam nomes de arquivos e caminhos.
Função |
Descrição |
---|---|
base_file_name |
Retorna o nome base do arquivo sem o diretório ou sufixo do arquivo. |
file_exists |
Retorna verdadeiro se existir um caminho de arquivo. |
file_name |
Retorna o nome de um arquivo (incluindo a extensão do arquivo), excluindo o diretório. |
file_path |
Retorna o componente de diretório de um caminho de arquivo, sem o nome do arquivo |
file_size |
Retorna o tamanho (em bytes) de um arquivo. |
file_suffix |
Retorna a extensão do arquivo de um caminho. |
is_directory |
Retorna verdadeiro se um caminho corresponder a um diretório. |
is_file |
Retorna verdadeiro se um caminho corresponder a um arquivo. |
14.2.2.10. Fuzzy Matching Functions¶
This group contains functions for fuzzy comparisons between values.
Função |
Descrição |
---|---|
hamming_distance |
Retorna o número de caracteres nas posições correspondentes nas strings de entrada em que os caracteres são diferentes |
levensheim |
Retorna o número mínimo de edições de caracteres (inserções, exclusões ou substituições) necessárias para alterar uma string para outra. Mede a semelhança entre duas strings |
longest_common_substring |
Retorna a substring comum mais longa entre duas strings |
soundex |
Retorna a representação Soundex de uma string |
14.2.2.11. Funções Gerais¶
Este grupo contém funções gerais variadas.
Função |
Descrição |
---|---|
env |
Obtém uma variável de ambiente e retorna seu conteúdo como uma string. Se a variável não for encontrada, |
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. |
is_layer_visible |
Retorna verdadeiro se uma camada especificada estiver visível |
layer_property |
Retorna uma propriedade de uma camada ou um valor de seus metadados. Pode ser o nome da camada, src, tipo de geometria, contagem de feições… |
var |
Retorna o valor armazenado em uma variável especificada. Veja Variáveis abaixo |
with_variable |
Cria e define uma variável para qualquer código de expressão que será fornecido como um terceiro argumento. Útil para evitar repetições em expressões em que o mesmo valor precisa ser usado mais de uma vez. |
14.2.2.12. Funções Geometria¶
Este grupo contém funções que operam em objetos de geometria (por exemplo, buffer, transform, $ área).
Função |
Descrição |
---|---|
$area |
Retorna o tamanho da área da feição atual |
$geometry |
Retorna a geometria da feição atual (pode ser usado para processamento com outras funções) |
$length |
Retorna o comprimento da feição de linha atual |
$perimeter |
Retorna o perímetro da feição de polígono atual |
$x |
Retorna a coordenada X da feição atual |
$x_at(n) |
Retorna a coordenada X do enésimo nó da geometria da feição atual |
$y |
Retorna a coordenada Y da feição atual |
$y_at(n) |
Retorna a coordenada Y do enésimo nó da geometria da feição atual |
angle_at_vertex |
Retorna o ângulo da bissetriz (ângulo médio) para a geometria para um vértice especificado em uma geometria de linhas. Os ângulos estão em graus no sentido horário do norte |
area |
Retorna a área de uma feição de geometria de polígono . Os cálculos estão no Sistema de Referência Espacial desta geometria |
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 |
boundary |
Retorna o fechamento do limite combinatório da geometria (isto é, o limite topológico da geometria - veja também Boundary). |
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 (veja também Bounding boxes) |
bounds_height |
Retorna a altura da caixa delimitadora de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
bounds_width |
Retorna a largura da caixa delimitadora de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
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 (veja também Buffer) |
buffer_by_m |
Cria um buffer ao longo de uma geometria de linha em que o diâmetro do buffer varia de acordo com os valores M nos vértices da linha (veja também Variable width buffer (by M value)) |
centroid |
Retorna o centro geométrico de uma geometria (veja também Centroids) |
closest_point |
Retorna o ponto em uma geometria mais próxima de uma segunda geometria |
collect_geometries |
Coleta um conjunto de geometrias em um objeto de geometria com várias partes (veja também Collect geometries) |
combine |
Retorna a combinação de duas geometrias |
contains(a,b) |
Retorna 1 (verdadeiro) se e somente se nenhum ponto de b estiver no exterior de a e pelo menos um ponto do interior de b estiver no interior de a |
convex_hull |
Returns the convex hull of a geometry (this represents the minimum convex geometry that encloses all geometries within the set) (see also Convex hull) |
crosses |
Retorna 1 (verdadeiro) se as geometrias fornecidas tiverem alguns, mas não todos, pontos interiores em comum |
difference(a,b) |
Retorna uma geometria que representa a parte da geometria a que não se cruza com a geometria b (veja tambéms Difference) |
disjoint |
Retorna 1 (verdadeiro) se as geometrias não compartilharem nenhum espaço juntas |
distance |
Retorna a distância mínima (com base no Sistema de Referência Espacial) entre duas geometrias em unidades projetadas |
distance_to_vertex |
Retorna a distância ao longo da geometria para um vértice especificado |
end_point |
Retorna o último nó de uma geometria (veja também Extract specific vertices) |
extend |
Aumenta o início e o fim de uma geometria de uma linha em uma quantidade especificada (veja também Extend lines) |
exterior_ring |
Retorna uma string de linhas que representa o anel externo de uma geometria de polígono ou nula se a geometria não for um polígono |
extrude(geom,x,y) |
Retorna uma versão extrudida da geometria de entrada (Multi) Curva ou (Multi) Linhas com uma extensão especificada por X e Y |
flip_coordinates |
Retorna uma cópia da geometria com as coordenadas X e Y trocadas (veja também Swap X and Y coordinates) |
force_rhr |
Força uma geometria a respeitar a Regra da Mão Direita (veja também Force right-hand-rule) |
geom_from_gml |
Retorna uma geometria criada a partir de uma representação GML da geometria |
geom_from_wkt |
Retorna uma geometria criada a partir de uma representação de texto bem conhecido (WKT) |
geom_to_wkt |
Retorna a representação de texto bem conhecido (WKT) da geometria sem metadados SRID |
geometry |
Retorna a geometria de uma feição |
geometry_n |
Retorna a enésima geometria de uma coleção de geometrias ou nula se a geometria de entrada não for uma coleção |
hausdorff_distance |
Retorna basicamente uma medida de quão semelhantes ou diferentes são duas geometrias, com uma distância menor indicando geometrias mais semelhantes |
inclination |
Retorna a inclinação medida do zênite (0) ao nadir (180) no ponto_a ao ponto_b |
interior_ring_n |
Retorna a geometria do enésimo anel interno de uma geometria de polígono ou nula se a geometria não for um polígono |
intersection |
Retorna uma geometria que representa a parte compartilhada de duas geometrias (veja também Intersection) |
intersects |
Testa se uma geometria cruza outra. Retorna 1 (verdadeiro) se as geometrias se cruzam espacialmente (compartilham qualquer parte do espaço) e 0 se não o fizerem |
intersects_bbox |
Testa se a caixa delimitadora de uma geometria se sobrepõe à caixa delimitadora de outra geometria. Retorna 1 (verdadeiro) se as geometrias se cruzam espacialmente (compartilham qualquer parte do espaço) sua caixa delimitadora ou 0 se não o fizerem |
is_closed |
Retorna true se uma string de linha estiver fechada (os pontos inicial e final são coincidentes), false se uma string de linha não estiver fechada ou null se a geometria não for uma string de linha |
length |
Retorna o comprimento de uma feição de geometria de linha (ou o comprimento de uma string) |
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. |
line_interpolate_point |
Retorna o ponto interpolado por uma distância especificada ao longo de uma geometria de linhas. (veja também Interpolate point on line) |
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. |
line_merge |
Returns a (Multi-)LineString geometry, where any connected LineStrings from the input geometry have been merged into a single linestring. |
line_substring |
Retorna a parte de uma geometria de linha ou curva que cai entre as distâncias inicial e final especificadas (medidas desde o início da linha) (veja também Line substring) |
m |
Retorna o valor M de uma geometria de ponto |
make_circle |
Cria uma geometria circular com base no ponto central e raio |
make_ellipse |
Cria uma geometria elíptica com base no ponto central, eixos e azimute |
make_line |
Cria uma geometria de linha a partir de uma série ou de um array de geometrias de pontos |
make_point(x,y,z,m) |
Retorna uma geometria de ponto a partir dos valores X e Y (e Z ou M opcionais) |
make_point_m(x,y,m) |
Retorna uma geometria de ponto das coordenadas X e Y e valores M |
make_polygon |
Cria uma geometria de polígono a partir de um anel externo e uma série opcional de geometrias de anel interno |
make_rectangle_3points |
Cria um retângulo a partir de 3 pontos |
make_regular_polygon |
Cria um polígono regular |
make_square |
Cria um quadrado a partir de uma diagonal |
make_triangle |
Cria um polígono triangular |
minimal_circle |
Retorna o círculo mínimo de uma geometria de entrada (veja também Minimum enclosing circles) |
nodes_to_points |
Retorna uma geometria multiponto que consiste em cada nó na geometria de entrada (veja também Extract vertices) |
num_geometries |
Retorna o número de geometrias em uma coleção de geometrias ou nulo se a geometria de entrada não for uma coleção |
num_interior_rings |
Retorna o número de anéis internos em uma coleção de polígonos ou geometria ou nulo se a geometria de entrada não for um polígono ou coleção |
num_points |
Retorna o número de vértices em uma geometria |
num_rings |
Retorna o número de anéis (incluindo anéis externos) em uma coleção de geometria ou polígono, ou nulo se a geometria de entrada não for uma coleção ou polígono |
offset_curve |
Retorna uma geometria formada deslocando uma geometria de linhas para o lado. As distâncias estão no Sistema de Referência Espacial desta geometria. (veja também Offset lines) |
order_parts |
Ordena as partes de um MultiGeometry por um determinado critério |
oriented_bbox |
Retorna uma geometria que representa a caixa delimitadora orientada mínima de uma geometria de entrada (veja também Oriented minimum bounding box) |
overlaps |
Testa se uma geometria se sobrepõe a outra. Retorna 1 (verdadeiro) se as geometrias compartilham espaço, têm a mesma dimensão, mas não são completamente contidas uma pela outra |
perimeter |
Retorna o perímetro de uma feição de polígono de geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
point_n |
Retorna um nó específico de uma geometria (veja também Extract specific vertices) |
point_on_surface |
Retorna um ponto que, com certeza, fica na superfície de uma geometria (veja também Point on Surface) |
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 (veja também Pole of inaccessibility) |
project |
Returns a point projected from a start point using a distance, a bearing (azimuth) and an elevation in radians (see also Project points (Cartesian)) |
relate |
Testa ou retorna a representação do Dimensional Extended 9 Intersection Model (DE-9IM) do relacionamento entre duas geometrias |
reverse |
Inverte a direção de uma string de linhas invertendo a ordem de seus vértices (veja também Reverse line direction) |
segments_to_lines |
Retorna uma geometria multi linhas que consiste em uma linha para cada segmento na geometria de entrada (veja também Explode lines) |
shortest_line |
Retorna a linha mais curta que une duas geometrias. A linha resultante começará na geometria 1 e terminará na geometria 2 |
simplify |
Simplifica uma geometria removendo nós usando um limite baseado em distância (veja também Simplify) |
simplify_vw |
Simplifica uma geometria removendo nós usando um limite baseado em área (veja também Simplify) |
single_sided_buffer |
Retorna uma geometria formada fazendo um buffer em apenas um lado de uma geometria de linhas. As distâncias estão no Sistema de Referência Espacial desta geometria (veja também Single sided buffer) |
smooth |
Suaviza uma geometria adicionando nós extras que arredondam os cantos da geometria (veja também Smooth) |
start_point |
Retorna o primeiro nó de uma geometria (veja também Extract specific vertices) |
sym_difference |
Retorna uma geometria que representa as partes de duas geometrias que não se cruzam (veja também Symmetrical difference) |
tapered_buffer |
Cria um buffer ao longo de uma geometria de linha em que o diâmetro do buffer varia uniformemente ao longo do comprimento da linha (veja também Tapered buffers) |
touches |
Testa se uma geometria toca outra. Retorna 1 (verdadeiro) se as geometrias tiverem pelo menos um ponto em comum, mas seus interiores não se cruzam |
transform |
Retorna a geometria transformada do SRC de origem no SRC de destino (veja também Reproject layer) |
translate |
Retorna uma versão traduzida de uma geometria. Os cálculos estão no Sistema de Referência Espacial da geometria (veja também Translate) |
union |
Retorna uma geometria que representa a união do conjunto de pontos das geometrias |
wedge_buffer |
Retorna um buffer em forma de cunha originário de uma geometria de ponto, dada um ângulo e raios (veja também Create wedge buffers) |
within (a,b) |
Testa se uma geometria está dentro de outra. Retorna 1 (verdadeiro) se a geometria a estiver completamente dentro da geometria b |
x |
Retorna a coordenada X de uma geometria de ponto ou a coordenada X do centróide para uma geometria que não seja de ponto |
x_max |
Retorna a coordenada X máxima de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
x_min |
Retorna a coordenada X mínima de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
y |
Retorna a coordenada Y de uma geometria de ponto ou a coordenada Y do centróide para uma geometria que não seja de ponto |
y_max |
Retorna a coordenada Y máxima de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
y_min |
Retorna a coordenada Y mínima de uma geometria. Os cálculos estão no Sistema de Referência Espacial desta geometria |
z |
Retorna a coordenada Z de uma geometria de ponto |
Alguns exemplos:
Retorna a coordenada X do centróide da feição atual:
x( $geometry )
Devolve um valor de acordo com a área da feição:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
Você pode manipular a geometria atual usando a variável
$geometry
para criar um buffer ou obter um ponto na superfície da geometria:buffer( $geometry, 10 ) point_on_surface( $geometry )
Dado uma feição de ponto, gere uma linha fechada (usando
make_line
) em torno da geometria de ponto:make_line( -- using an array of points placed around the original array_foreach( -- list of angles for placing the projected points (every 90°) array:=generate_series( 0, 360, 90 ), -- translate the point 20 units in the given direction (angle) expression:=project( $geometry, distance:=20, azimuth:=radians( @element ) ) ) )
14.2.2.13. Funções de Layout¶
Este grupo contém funções para manipular as propriedades dos itens de layout de impressão.
Função |
Descrição |
---|---|
item_variables |
Retorna um mapa de variáveis de um item de layout dentro deste layout de impressão |
Um exemplo:
Obtenha a escala do ‘Map 0’ no layout de impressão atual:
map_get( item_variables('Map 0'), 'map_scale')
14.2.2.14. Camadas do mapa¶
Este grupo contém uma lista das camadas disponíveis no projeto atual. Isso oferece uma maneira conveniente de escrever expressões referentes a várias camadas, como quando se fazem consultas usando aggregates, attribute ou spatial.
Também fornece algumas funções convenientes para manipular camadas.
Função |
Descrição |
---|---|
decode_uri |
Toma uma camada e decodifica a URI do provedor de dados subjacente. As informações disponíveis dependem do tipo de provedor de dados. |
14.2.2.15. Funções de mapas¶
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 valores-chave ou arrays associativos). Ao contrário de list data structure em que a ordem dos valores importa, a ordem dos pares de valores-chave no objeto de mapa não é relevante e os valores são identificados por suas chaves.
Função |
Descrição |
---|---|
from_json |
Carrega uma string com formato json |
hstore_to_map |
Cria um mapa a partir de uma string com formato hstore |
json_to_map |
Cria um mapa a partir de uma string com formato json |
map |
Retorna um mapa contendo todas as chaves e valores passados como par de parâmetros |
map_akeys |
Retorna todas as chaves de um mapa como um array |
map_avals |
Retorna todos os valores de um mapa como um array |
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. |
map_delete |
Retorna um mapa com a chave fornecida e seu valor correspondente excluído |
map_exist |
Retorna verdadeiro se a chave especificada existir no mapa |
map_get |
Retorna o valor de um mapa, considerando sua chave |
map_insert |
Retorna um mapa com uma chave/valor adicionado |
map_to_hstore |
Mescla elementos do mapa em uma string formatada em hstore |
map_to_json |
Mescla elementos do mapa em uma string com formato json |
to_json |
Cria uma string formatada em json a partir de um mapa, um array ou outro valor |
14.2.2.16. Funções Matemáticas¶
Este grupo contém funções matemáticas (por exemplo, raiz quadrada, sen e cos).
Função |
Descrição |
---|---|
abs |
Retorna o valor absoluto de um número |
acos |
Retorna o arco cosseno de um valor em radianos |
asin |
Retorna o arco seno de um valor em radianos |
atan |
Retorna o arco tangente de um valor em radianos |
atan2(y,x) |
Retorna o arco tangente Y/X usando os sinais dos dois argumentos para determinar o quadrante do resultado |
azimuth(a,b) |
Retorna o azimute baseado no norte como o ângulo em radianos medido no sentido horário da vertical no ponto a ao ponto b |
ceil |
Arredonda um número para cima |
clamp |
Restringe um valor de entrada para um intervalo especificado |
cos |
Retorna o cosseno de um ângulo em radianos |
degrees |
Converte de radianos em graus |
exp |
Retorna exponencial de um valor |
floor |
Arredonda um número para baixo |
inclination |
Retorna a inclinação medida do zênite (0) ao nadir (180) no ponto_a ao ponto_b. |
ln |
Retorna o logaritmo natural da expressão passada |
log |
Retorna o valor do logaritmo do valor passado e da base |
log10 |
Retorna o valor do logaritmo base 10 da expressão passada |
max |
Retorna o maior valor não nulo em um conjunto de valores |
min |
Retorna o menor valor não nulo em um conjunto de valores |
pi |
Retorna o valor de pi para cálculos |
radians |
Converte de graus em radianos |
rand |
Retorna o número inteiro aleatório dentro do intervalo especificado pelo argumento mínimo e máximo (inclusive) |
randf |
Returns the random float within the range specified by the minimum and maximum argument (inclusive) |
round |
Arredonda para o número de casas decimais |
scale_exp |
Transforma um determinado valor de um domínio de entrada em um intervalo de saída usando uma curva exponencial |
scale_linear |
Transforma um dado valor de um domínio de entrada em um intervalo de saída usando interpolação linear |
sin |
Retorna o seno de um ângulo em radianos |
sqrt |
Retorna a raiz quadrada de um valor |
tan |
Retorna a tangente de um ângulo em radianos |
14.2.2.17. 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.
Função |
Descrição |
---|---|
a + b |
Adição de dois valores (a mais b) |
a - b |
Subtração de dois valores (a menos b) |
a * b |
Multiplicação de dois valores (a multiplicado por b) |
a / b |
Divisão de dois valores (a dividido por b) |
a % b |
Resto da divisão de a por b (por exemplo, 7% 2 = 1 ou 2 cabe em 7 três vezes com resto 1) |
a ^ b |
Potência de dois valores (por exemplo, 2^2=4 ou 2^3=8) |
a < b |
Compara dois valores e avalia como 1 se o valor da esquerda for menor que o valor da direita (a é menor que b) |
a <= b |
Compara dois valores e avalia como 1 se o valor da esquerda for menor ou igual ao valor da direita |
a <> b |
Compara dois valores e avalia como 1 se eles não forem iguais |
a = b |
Compara dois valores e avalia como 1 se forem iguais |
a != b |
a e b não são iguais |
a > b |
Compara dois valores e avalia como 1 se o valor da esquerda for maior que o valor da direita (a é maior que b) |
a >= b |
Compara dois valores e avalia como 1 se o valor da esquerda for maior ou igual ao valor da direita |
a ~ b |
a corresponde à expressão regular b |
|| |
Une dois valores em uma string. Se um dos valores for NULL, o resultado será NULL |
‘\n’ |
Insere uma nova linha em uma string |
LIKE |
Retorna 1 se o primeiro parâmetro corresponder ao padrão fornecido |
ILIKE |
Retorna 1 se o primeiro parâmetro corresponder a maiúsculas e minúsculas o padrão fornecido (ILIKE pode ser usado em vez de LIKE para fazer a correspondência sem maiúsculas e minúsculas) |
a IS b |
Testa se dois valores são idênticos. Retorna 1 se a for igual a b |
a OR b |
Retorna 1 quando a condição a ou a condição b for verdadeira |
a AND b |
Retorna 1 quando as condições a e b forem verdadeiras |
NOT |
Nega uma condição |
“Column_name” |
Value of the field Column_name, take care to not be confused with simple quote, see below |
‘string’ |
um valor de string, tome cuidado para não se confundir com aspas duplas, veja acima |
NULL |
valor nulo |
a IS NULL |
a não tem valor |
a IS NOT NULL |
a tem um valor |
a IN (value[,value]) |
a está abaixo dos valores listados |
a NOT IN (value[,value]) |
a não está abaixo dos valores listados |
Alguns exemplos:
Juntando um texto e um valor a partir de um nome de coluna:
'My feature''s id is: ' || "gid"
Testa se o campo de atributo “description” começa com a string ‘Hello’ no valor (observe a posição do caractere
%
):"description" LIKE 'Hello%'
14.2.2.18. Funções de Processamento¶
Este grupo contém funções que operam em algoritmos de processamento.
Função |
Descrição |
---|---|
parameter |
Retorna o valor de um parâmetro de entrada do algoritmo de processamento |
14.2.2.19. Funções Rasters¶
Este grupo contém funções para operar na camada raster.
Função |
Descrição |
---|---|
raster_statistic |
Retorna estatísticas de uma camada raster |
raster_value |
Retorna o valor da banda raster no ponto fornecido |
14.2.2.20. Funções de Registro e Atributos¶
Este grupo contém funções que operam na identificação da registros.
Função |
Descrição |
---|---|
$currentfeature |
Retorna a feição atual que está sendo avaliada. Isso pode ser usado com a função ‘attribute’ para avaliar os valores de atributo da feição atual. |
$id |
Retorna o ID da feição da linha atual |
attribute |
Retorna o valor de um atributo especificado de uma feição |
attributes |
Retorna um map de todos os atributos de uma feição, com nomes de campo como chaves do mapa |
get_feature |
Retorna a primeira feição de uma camada que corresponde a um determinado valor de atributo |
get_feature_by_id |
Retorna a feição de uma camada que corresponde ao ID fornecido da feição |
is_selected |
Retorna se uma feição for selecionada |
num_selected |
Retorna o número de feições selecionadas em uma determinada camada |
represent_value |
Returns the configured representation value for a field value (convenient with some widget types) |
sql_fetch_and_increment |
Manage autoincrementing values in SQLite databases |
uuid |
Gera um Identificador Universalmente Exclusivo (UUID) para cada linha. Cada UUID tem 38 caracteres. |
Alguns exemplos:
Retorne a primeira feição na camada “LayerA”, cujo campo “id” possui o mesmo valor que o campo “name” da feição atual (um tipo de junção):
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Calcule a área da feição unida do exemplo anterior:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
14.2.2.21. Funções String¶
Este grupo contém funções que operam em textos (por exemplo, quer substituir, converter para maiúsculas).
Função |
Descrição |
---|---|
char |
Retorna o caractere associado a um código unicode |
concat |
Concatena várias strings em uma |
format |
Formata uma string usando argumentos fornecidos |
format_date |
Formata um tipo de data ou string em um formato de string personalizado |
format_number |
Returns a number formatted with the locale separator for thousands (also truncates the number to the number of supplied places) |
left(string, n) |
Retorna uma substring que contém os n caracteres mais à esquerda da string |
length |
Retorna o comprimento de uma string (ou o comprimento de uma feição de geometria de linha) |
lower |
converte uma string para letras minúsculas |
lpad |
Retorna uma string preenchida à esquerda na largura especificada, usando o caractere de preenchimento |
regexp_match |
Retorna a primeira posição correspondente que corresponde a uma expressão regular dentro de uma sequência ou 0 se a substring não for encontrada |
regexp_replace |
Retorna uma string com a expressão regular fornecida substituída |
regexp_substr |
Retorna a parte de uma string que corresponde a uma expressão regular fornecida |
replace |
Retorna uma string com a string, matriz ou mapa de strings fornecidos substituídos por uma string, um array de strings ou valores em pares |
right(string, n) |
Retorna uma substring que contém os n caracteres mais à direita da string |
rpad |
Retorna uma string preenchida à direita na largura especificada, usando o caractere de preenchimento |
strpos |
Retorna a primeira posição correspondente de uma substring dentro de outra string ou 0 se a substring não for encontrada |
substr |
Retorna uma parte de uma string |
title |
Converte todas as palavras de uma sequência em maiúsculas (todas as palavras em minúsculas com letra maiúscula inicial) |
trim |
Remove todos os espaços em branco iniciais e finais (espaços, guias, etc.) de uma string |
upper |
Converte a string para letras maiúsculas |
wordwrap |
Retorna uma string quebrada para um número máximo/mínimo de caracteres |
Sobre a concatenação de campos
Você pode concatenar strings ou valores de campo usando os operadores ||
ou +
ou a função concat
, com algumas características especiais:
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''s id is: ' + "gid" => triggers an error as gid is 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çãoconcat
:"country_name" || NULL => NULL concat('My feature''s id is: ', NULL) => My feature's id is concat("firstname", "nickname", "lastname") => Chuck Norris (if empty nickname) "firstname" + "nickname" + "lastname" => NULL (if one field is empty)
Para outros casos, faça o que for mais conveniente:
'My country is ' + "country_name" + ' (' + "country_code" + ')' 'My country is ' || "country_name" || ' (' || "country_code" || ')' concat('My country is ', "country_name", ' (', "country_code", ')') # All the above return: My country is France (FR)
14.2.2.22. Variáveis¶
Este grupo contém variáveis dinâmicas relacionadas ao aplicativo, ao arquivo do projeto e outras configurações. A disponibilidade das variáveis depende do contexto:
da caixa de diálogo |CalculeField| 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
).
Função |
Descrição |
---|---|
algorithm_id |
O ID exclusivo de um algoritmo |
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 |
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_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 |
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 |
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_id |
O ID da camada atual |
layer_name |
O nome da camada 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 |
A altura da página ativa no layout (em mm) |
layout_pagewidth |
A largura da página ativa no layout (em mm) |
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 do Proj4 do Sistema de referência de coordenadas do mapa atual |
map_crs_wkt |
A definição WKT do Sistema de referência de coordenadas do mapa atual |
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 |
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_units |
As unidades de medidas do mapa |
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 ao recurso 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 |
Gives access to snapping results while digitizing a feature (only available in add feature) |
scale_value |
O valor atual da distância da barra de escala |
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_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) |
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 |
with_variable |
Permite definir uma variável para uso em uma expressão e evitar recalcular o mesmo valor repetidamente |
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' ) )
14.2.2.23. 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.
14.2.3. Editor de Funções¶
Com a guia Editor de Funções, você pode escrever suas próprias funções na linguagem Python. Isso fornece uma maneira prática e confortável de abordar necessidades específicas que não seriam cobertas pelas funções predefinidas.

Fig. 14.66 A guia Editor de Funções¶
Para criar uma nova função:
Digite um nome para usar no formulário que aparece e pressione OK.
Um novo item com o nome que você fornece é adicionado no painel esquerdo da guia Editor de Funções; este é um arquivo Python
.py
baseado no arquivo de modelo QGIS e armazenado na pasta/python/expressions
no diretório ativo user profile.O painel direito exibe o conteúdo do arquivo: um modelo de script python. Atualize o código e sua ajuda de acordo com suas necessidades.
Pressione o botão
Salvar e Carregar Funções. A função que você escreveu é adicionada à árvore de funções na guia Expressão, por padrão, no grupo``Personalizada``.
Aproveite sua nova função.
Se a função precisar de melhorias, ative a guia Editor de Funções, faça as alterações e pressione novamente o botão
Salvar e Carregar Funções para disponibilizá-las no arquivo, e portanto, em qualquer guia de expressão.
As funções personalizadas do Python são armazenadas no diretório de perfil do usuário, o que significa que, a cada inicialização do QGIS, ele carrega automaticamente todas as funções definidas no perfil do usuário atual. Esteja ciente de que novas funções são salvas apenas na pasta /python/expression
e não no arquivo do projeto. Se você compartilha um projeto que utiliza uma de suas funções personalizadas, também precisará compartilhar o arquivo .py
na pasta /python/expression
.
Aqui há um breve exemplo de como criar suas próprias funções:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def my_sum(value1, value2, feature, parent):
"""
Calculates the sum of the two parameters value1 and value2.
<h2>Example usage:</h2>
<ul>
<li>my_sum(5, 8) -> 13</li>
<li>my_sum("field1", "field2") -> 42</li>
</ul>
"""
return value1 + value2
O pequeno exemplo cria uma função my_sum
que fornecerá uma função com dois valores. Ao usar o argumento da função args = 'auto'
, o número de argumentos da função necessário será calculado pelo número de argumentos com os quais a função foi definida no Python (menos 2 - feição
e pai
).
Esta função pode ser usada em expressões:

Fig. 14.67 Função Personalizada adicionada à guia Expressão¶
Informações adicionais sobre a criação de código Python podem ser encontradas em Passo-a-passo para desenvolvedor PyQGIS.