14.2. Expresiones¶
Basada en datos de capa y funciones predefinidas o definidas por el usuario, Expressions ofrece una forma poderosa de manipular el valor del atributo, la geometría y las variables para cambiar dinámicamente el estilo de la geometría, el contenido o la posición de la etiqueta, el valor del diagrama, la altura de un elemento de diseño, seleccionar algunas entidades, cree un campo virtual …
14.2.1. El constructor de cadena de Expresión¶
El diálogo principal para construir expresiones, el :guilabel: Expression string builder está disponible desde muchas partes en QGIS y, en particular, se puede acceder mediante:
selecting features con la herramienta
Select By Expression…;
editing attributes con p.ej. la herramienta
Field calculator;
manipular parámetros de simbología, etiqueta o elemento de diseño con la herramienta
Data defined override (ver Configuración de anulación definida por datos);
construyendo una geometry generator symbol layer;
haciendo algún geoprocessing.
El cuadro de diálogo del generador de expresiones ofrece acceso a:
Expression tab que, gracias a una lista de funciones predefinidas, ayuda a escribir y verificar la expresión a usar;
Function Editor tab lo que ayuda a ampliar la lista de funciones mediante la creación de funciones personalizadas.
Algunos casos de uso de expresiones:
Desde la Calculadora de campos, calcule un campo «pop_density» utilizando los campos existentes «total_pop» y «area_km2»
"total_pop" / "area_km2"
Actualice el campo «density_level» con categorías de acuerdo con los valores «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
Actualice un campo de capa de región con los nombres (separados por comas) de los aeropuertos contenidos:
aggregate('airport_layer', 'concatenate', "name", within($geometry, geometry(@parent)), ', ')
Aplique un estilo categorizado a todas las características de acuerdo a si el precio promedio de su casa es menor o mayor a 10000€ por metro cuadrado
"price_m2" > 10000
Usando la herramienta «Select By Expression…», seleccione todas las características que representan áreas de “High population density” and cuyo precio promedio de la vivienda es superior a 10000€ por metro cuadrado:
"density_level" = 'High population density' and "price_m2" > 10000
Del mismo modo, la expresión anterior también podría usarse para definir qué entidades deberían etiquetarse o mostrarse en el mapa.
El uso de expresiones le ofrece un montón de posibilidades.
Truco
Use named parameters to improve the expression reading
Algunas funciones requieren que se configuren muchos parámetros. El motor de expresión admite el uso de parámetros con nombre. Esto significa que en lugar de escribir la expresión críptica clamp( 1, 2, 9)
, puede usar clamp( min:=1, value:=2, max:=9)
. Esto también permite cambiar los argumentos, p.ej. clamp( value:=2, max:=9, min:=1)
. El uso de parámetros con nombre ayuda a aclarar a qué se refieren los argumentos para una función de expresión, lo cual es útil cuando intentas interpretar una expresión en una fecha posterior.
14.2.2. Lista de funciones¶
La pestaña Expression proporciona la interfaz principal para escribir expresiones usando funciones, campos y valores de capa. Contiene los siguientes widgets:
Un área del editor de expresiones para escribir o pegar expresiones. El autocompletado está disponible para acelerar la escritura de expresiones:
Las variables correspondientes, los nombres de las funciones y los nombres de campo para el texto de entrada se muestran a continuación: use las flechas Up y Down para examinar los elementos y presione Tab para insertar en la expresión o simplemente haga clic en el elemento deseado.
Los parámetros de la función son mostrados mientras los rellena.
QGIS también verifica la corrección de la expresión y resalta todos los errores usando:
Underline: para funciones desconocidas, argumentos incorrectos o inválidos;
Marker: para cualquier otro error (por ejemplo, paréntesis faltante, carácter inesperado) en una sola ubicación.
Truco
Documenta tu expresion con comentarios
Cuando se utiliza una expresión compleja, es una buena práctica agregar texto como un comentario de varias líneas o comentarios entrelíneas para ayudarlo a recordar.
/* 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 )
Bajo el editor de expresión, an Output preview muestra el resultado de la expresión evaluada en la primera entidad de la capa. En caso de error, se lo incica y puede acceder a detalles con el hipervínculo provisto.
Un selector de funciones muestra la lista de funciones, variables, campos … organizados en grupos. Hay un cuadro de búsqueda disponible para filtrar la lista y encontrar rápidamente una función o campo en particular. Al hacer doble clic en un elemento, se agrega al editor de expresiones.
Un panel de ayuda para cada elemento seleccionado en el selector de función.
Truco
Press¡iona Ctrl+Click cuando se pasa el nombre de una función en una expresión para mostrar automáticamente su ayuda en el cuadro de diálogo.
El widget de valores de un campo que se muestra cuando se selecciona un campo en el selector de funciones ayuda a recuperar atributos de características. Al hacer doble clic en un valor, se agrega al editor de expresiones.
Truco
El panel derecho, mostrando funciones de ayuda o valores de campo, puede ser colapsado (invisible) en el diálogo. Presione el botón guilabel:Show Values o Show Help para restaurarlo.

Figura 14.65 La pestaña Expresión¶
14.2.2.1. Agregar Funciones¶
Este grupo contiene funciones que agregan valores sobre campos y capas.
Función |
Descripción |
---|---|
aggregate |
Devuelve un valor agregado calculado usando entidades de alguna otra capa |
array_agg |
Devuelve un arreglo de valores agregados de un campo o expresión |
collect |
Devuelve la geometría multiparte de geometrías agregadas desde una expresión |
concatenar |
Devuelve todas las cadenas agregadas de un campo o expresión unida por un delimitador |
concatenate_unique |
Devuelve todas las cadenas agregadas únicas de un campo o expresión unidas por un delimitador |
count |
Devuelve el recuento de las entidades coincidentes |
count_distinct |
Devuelve el recuento de valores distintos |
count_missing |
Devuelve el recuento de valores ausentes (nulos) |
iqr |
Devuelve el rango intercuartil calculado de un campo o expresión |
majority |
Devuelve la mayoría agregada de valores (valor más común) de un campo o expresión |
max_length |
Devuelve la máxima longitud de las cadenas de un campo o expresión |
máximo |
Devuelve el valor máximo agregado de un campo o expresión |
mean |
Devuelve el valor medio agregado de un campo o expresión |
median |
Devuelve el valor mediana agregado de un campo o expresión |
min_length |
Returns the minimum length of strings from a field or expression |
minimum |
Devuelve el valor mínimo agregado de un campo o expresión |
minority |
Devuelve la minoría agregada de valores (valor menos frecuente) de un campo o expresión |
q1 |
Devuelve el primer cuartil calculado de un campo o expresión |
q3 |
Devuelve el tercer cuartil calculado a partir de un campo o expresión |
intervalo |
Devuelve el intervalo agregado de valores (máximo - mínimo) de un campo o expresión |
relation_aggregate |
Devuelve un valor agregado calculado usando todas las entidades secundarias coincidentes de una relación de capa |
stdev |
Devuelve el valor agregado desviación estándar de un campo o expresión |
sum |
Devuelve el valor agregado suma de un campo o expresión |
Ejemplos:
Devolver el máximo del campo «pasajeros» de entidades en la capa agrupados por el campo «station_class»:
maximum("passengers", group_by:="station_class")
Calcule el número total de pasajeros para las estaciones dentro de la entidad actual del atlas:
aggregate('rail_stations','sum',"passengers", intersects(@atlas_geometry, $geometry))
Devuelve la media del campo «field_from_related_table» para todas las entidades secundarias coincidentes utilizando la relación “my_relation” de la capa:
relation_aggregate('my_relation', 'mean', "field_from_related_table")
o:
relation_aggregate(relation:='my_relation', aggregate := 'mean', expression := "field_from_related_table")
14.2.2.2. Funciones Arreglo¶
Este grupo contiene funciones para crear y manipular matrices (también conocidas como estructuras de datos de lista). El orden de los valores dentro de la matriz es importante, a diferencia de “map” data structure, donde el orden de los pares clave-valor es irrelevante y los valores se identifican por sus claves.
Función |
Descripción |
---|---|
array |
Devuelve un arreglo conteniendo todos los valores pasados como parámetro |
array_all |
Devuelve verdadero si un arreglo contiene todos los valores de un arreglo dado |
array_append |
Devuelve un arreglo con el valor dado añadido al final |
array_cat |
Devuelve un arreglo conteniendo todos los arreglos dados concatenados |
array_contains |
Devuelve verdadero si un arreglo contiene el valor dado |
array_distinct |
Devuelve un arreglo conteniendo valores distintos de un arreglo dado |
array_filter |
Devuelve un arreglo con solo los elementos para los cuales una expresión se evalúa como verdadera |
array_find |
Devuelve el índice (0 para el primero) de un valor dentro de un arreglo. Devuelve -1 si ei valor no es encontrado. |
array_first |
Devuelve el primer valor de un arreglo |
array_foreach |
Devuelve un arreglo con la expresión dada evaluada en cada elemento |
array_get |
Devuelve el Nsimo valor (0 para el primero) de un arreglo |
array_insert |
Devuelve un arreglo con el valor dado añadido en la posición dada |
array_intersect |
Devuelve verdadero si algún elemento del array_1 existe en el array_2 |
array_last |
Devuelve el último elemento de un arreglo |
array_length |
Devuelve el número de elementos de un arreglo |
array_prepend |
Devuelve un arreglo con el valor dado añadido al principio |
array_remove_all |
Devuelve un arreglo con todas las entradas del valor dado borrado |
array_remove_at |
Devuelve un arreglo con el índice dado borrado |
array_reverse |
Devuelve un arreglo con los valores del arreglo en orden inverso |
array_slice |
Devuelve los valores del arreglo desde el argumento start_pos hasta el argumento end_pos incluido |
array_sort |
Devuelve el arreglo proporcionado con sus elementos ordenados |
array_to_string |
Concatena elementos del arreglo en una cadena separada por un delimitador y usando una cadena opcional para valores vacíos |
generate_series |
Crea un arreglo conteniendo una secuencia de números |
regexp_matches |
Devuelve una arreglo de todas las cadenas capturadas por los grupos de captura, en el orden en que los grupos aparecen en la expresión regular proporcionada en una cadena |
string_to_array |
Divide la cadena en un arreglo utilizando el delimitador suministrado y la cadena opcional para valores vacíos |
14.2.2.3. Funciones de Color¶
Este grupo contiene funciones para manipular colores.
Función |
Descripción |
---|---|
color_cmyk |
Devuelve una representación en forma de cadena de un color en base a sus componentes cian, magenta, amarillo y negro |
color_cmyka |
Devuelve una representación de cadena de un color basada en sus componentes cian, magenta, amarillo, negro y alfa (transparencia) |
color_grayscale_average |
Aplica un filtro de escala de grises y devuelve una representación como cadena de un color proporcionado |
color_hsl |
Devuelve una representación de cadena de un color en función de sus atributos de tono, saturación y luminosidad. |
color_hsla |
Devuelve una representación en forma de cadena de un color en base a sus atributos de matiz, saturación, luminosidad y canal alfa (transparencia). |
color_hsv |
Devuelve una representación de cadena de un color en función de sus atributos de matiz, saturación y valor |
color_hsva |
Devuelve una representación en forma de cadena de un color en base a sus atributos de matiz, saturación, valor y canal alfa (transparencia) |
color_mix_rgb |
Devuelve una cadena que representa un color que mezcla los valores rojo, verde, azul y alfa de dos colores proporcionados en función de una proporción dada |
color_part |
Devuelve un componente específico de la cadena de un color, por ejemplo el componente rojo o el alfa |
color_rgb |
Devuelve una representación de cadena de un color en función de sus componentes rojo, verde y azul. |
color_rgba |
Devuelve una representación de cadena de un color en función de sus componentes rojo, verde, azul y alfa (transparencia) |
create_ramp |
Devuelve una rampa de degradado de un mapa de cadenas de colores y pasos |
darker |
Devuelve una cadena de color más oscura (o más clara) |
lighter |
Devuelve una cadena de color más clara (o más oscura) |
project_color |
Devuelve un color del esquema de color del proyecto |
ramp_color |
Devuelve una cadena que representa un color de una rampa de color |
set_color_part |
Establece un componente de color específico para una cadena de color, por ejemplo, el componente rojo o el componente alfa |
14.2.2.4. Funciones Condicionales¶
Este grupo contiene funciones para manejar comprobaciones condicionales en expresiones.
Función |
Descripción |
---|---|
CASE WHEN … THEN … END |
Evalúa una expresión y devuelve un resultado si es verdadera. Puede probar múltiples condiciones |
CASE WHEN … THEN … ELSE … END |
Evalúa una expresión y devuelve un resultado diferente sea verdadero o falso. Puede probar múltiples condiciones |
coalesce |
Devuelve el primer valor no-NULO de la lista de expresión |
if |
Prueba una condición y devuelve un resultado diferente dependiendo de la comprobación condicional |
nullif(value1, value2) |
Devuelve un valor nulo si valor1 es igual a valor2; de lo contrario, devuelve valor1. Esto se puede usar para sustituir condicionalmente valores con NULL. |
try |
Intenta una expresión y devuelve su valor si está libre de errores, un valor alternativo (si se proporciona) o Nulo si se produce un error |
Algún ejemplo:
Devuelva un valor si la primera condición es verdadera, de lo contrario, otro valor
CASE WHEN "software" LIKE '%QGIS%' THEN 'QGIS' ELSE 'Other' END
14.2.2.5. Funciones de conversión¶
Este grupo contiene funciones para convertir un tipo de datos a otro (por ejemplo, cadena a entero, entero a cadena).
Función |
Descripción |
---|---|
to_date |
Convierte una cadena de texto en un objeto fecha |
to_datetime |
Convierte una cadena en un objeto de fecha y hora |
to_dm |
Convierte una coordenada a grados, minutos |
to_dms |
Convierte coordenada a grados, minutos, segundos |
to_int |
Convierte una cadena de texto a número entero |
to_interval |
Convierte una cadena a un tipo intervalo (puede ser usado para tomar días, horas, meses, etc. de una fecha) |
to_real |
Convierte una cadena de texto en número real |
to_string |
Convierte un número en cadena. |
to_time |
Convierte una cadena a un objeto de hora |
14.2.2.6. Funciones personalizadas¶
Este grupo contiene funciones creadas por el usuario. Ver Editor de Funciones para mas detalles.
14.2.2.7. Funciones de Fecha y Hora¶
Este grupo contiene funciones para manipular datos de fecha y hora.
Función |
Descripción |
---|---|
age |
Devuelve como un intervalo la diferencia entre dos fechas o fechas con hora |
day |
Extrae el día de una fecha o fecha con hora, o el número de días de un intervalo |
day_of_week |
Devuelve un número correspondiendo a el día de la semana para una especificada fecha o fecha con hora |
epoch |
Devuelve el intervalo en milisegundos entre la época unix y un valor de fecha dado |
hour |
Estrae la hora de una fecha con hora u hora, o el número de horas de un intervalo |
minute |
Extrae el minuto de una fecha con hora o una hora, e el número de minutos de un intervalo |
month |
Extrae la parte del mes de una fecha o fecha con hora, o el número de meses de un intervalo |
now |
Devuelve la fecha actual y hora |
second |
Extrae los segundos de una fecha con hora u hora, o el número de segundos de un intervalo |
week |
Extrae el número de la semana de una fecha o el número de semanas de un intervalo. |
year |
Extrae la parte del año de una fecha o fecha con hora, o el número de años de un intervalo |
Este grupo también comparte varias funciones con las Funciones de conversión ( to_date, to_time, to_datetime, to_interval) y grupos Funciones de cadena (format_date).
Algún ejemplo:
Obtener el mes y año de hoy en el formato «month_number/year»:
format_date(now(),'MM/yyyy') -- Returns '03/2017'
Además de estas funciones, restar fechas, fechas y horas utilizando el operador `` -`` (menos) devolverá un intervalo.
Sumar o restar un intervalo a fechas, fechas y horas, utilizando los operadores `` + “” (más) y `` -`` (menos), devolverá una fecha y hora.
Obtener el número de días hasta el lanzamiento de QGIS 3.0
to_date('2017-09-29') - to_date(now()) -- Returns <interval: 203 days>
Lo mismo con la hora:
to_datetime('2017-09-29 12:00:00') - to_datetime(now()) -- Returns <interval: 202.49 days>
Obtener la fecha con hora de ahora a 100 días:
now() + to_interval('100 days') -- Returns <datetime: 2017-06-18 01:00:00>
Nota
Almacenando la fecha y fecha con hora e intervalos en campos
La capacidad de almacenar los valores date, * time* y datetime directamente en los campos puede depender del proveedor de la fuente de datos (por ejemplo, Shapefile acepta el formato date, pero no el formato datetime o time). Las siguientes son algunas sugerencias para superar esta limitación:
date, Datetime y time pueden ser alamacenados en campos de tipo texto despues de usar la función
to_format()
.Los Intervals pueden ser almacenados en campos de tipo integral o decimal después de usar una de las funciones de extracción (p.ej.,
day()
para obtener el intervalo expresado en días)
14.2.2.8. Campos y Valores¶
Contiene una lista de campos de una capa.
Doble-click en el nombre de un campo para añadirlo a tu expresión. También puede escribir el nombre del campo (preferiblemente entre comillas dobles) o su alias.
Para recuperar los valores de los campos para usar en una expresión, seleccione el campo apropiado y, en el widget que se muestra, elija entre 10 Samples y All Unique. Los valores solicitados se muestran y puede usar el cuadro Search en la parte superior de la lista para filtrar el resultado. También se puede acceder a los valores de muestra haciendo clic derecho en un campo.
Para añadir un valor a una expresión que esté escribiendo, doble-click en él en la lista. Si el valor es del tipo cadena, debe ir con comillas simples, en otro caso no se necesitan comillas.
14.2.2.9. Funciones de Archivos y Rutas¶
Este grupo contiene funciones que manipulan nombres de archivos y rutas.
Función |
Descripción |
---|---|
base_file_name |
Devuelve el nombre base de un archivo sin el directorio o el sufijo del archivo. |
file_exists |
Devuelve verdadero si una ruta de archivo existe. |
file_name |
Devuelve el nombre de un archivo (incluyendo la extensión del archivo), excluyendo el directorio. |
file_path |
Devuelve el componente directorio de una ruta de archivo, sin el nombre de archivo. |
file_size |
Devuelve el tamaño (en bytes) de un archivo. |
file_suffix |
Devuelve la extensión del archivo de un archivo con ruta. |
is_directory |
Devuelve verdadero si una ruta corresponde a un directorio. |
is_file |
Devuelve verdadero si una ruta corresponde a un archivo. |
14.2.2.10. Funciones Concordancia aproximada¶
Este grupo contiene funciones para comparaciones difusas entre valores.
Función |
Descripción |
---|---|
hamming_distance |
Devuelve el número de caracteres en las posiciones correspondientes dentro de las cadenas de entrada donde los caracteres son diferentes |
levensheim |
Devuelve el número mínimo de ediciones de caracteres (inserciones, eliminaciones o sustituciones) necesarias para cambiar una cadena a otra. Mide la similitud entre dos cuerdas |
longest_common_substring |
Devuelve la subcadena común más larga entre dos cadenas |
soundex |
Devuelve la representación Soundex de una cadena |
14.2.2.11. Funciones Generales¶
Este grupo contiene un surtido de funciones generales.
Función |
Descripción |
---|---|
env |
Obtiene una variable de entorno y devuelve su contenido como una cadena. Si no se encuentra la variable, se devolverá |
eval |
Evalúa una expresión que es pasada como una cadena. Útil para expandir parámetros dinámicos pasados como variables de contexto o campos. |
is_layer_visible |
Devuelve verdader si una capa especificada está visible. |
layer_property |
Devuelve una propiedad de una capa o un valor de sus metadatos. Puede ser nombre de capa, crs, tipo de geometría, recuento de entidades… |
var |
Devuelve el valor almacenado dentro de una variable especificada. Ver Variables a continuación |
with_variable |
Crea y establece una variable para cualquier código de expresión que se proporcionará como un tercer argumento. Útil para evitar la repetición en expresiones donde el mismo valor debe usarse más de una vez. |
14.2.2.12. Funciones de Geometría¶
Este grupo contiene funciones que operan en objetos geométricos. (p.ej. buffer, transform, $area).
Función |
Descripción |
---|---|
$area |
Devuelve el tamaño del área de la entidad actual |
$geometry |
Devuelve la geometría de la entidad actual (se puede usar para procesar con otras funciones) |
$length |
Devuelve la longitud de la actual entidad de línea |
$perimeter |
Devuelve el perímetro de la actual entidad poligonal |
$x |
Devuelve la coordenada X del n-simo nodo de la entidad actual |
$x_at(n) |
Devuelve la coordenada X del n-simo nodo de la geometría de entidad actual |
$y |
Devuelve la coordenada Y de la entidad actual |
$y_at(n) |
Devuelve la coordenada Y del n-simo nodo de la geometría de entidad actual |
angle_at_vertex |
Devuelve el ángulo bisectriz(ángulo medio) a la geometría de un vértice especificado en una geometría de cadena lineal. Los ángulos están en grados en sentido horario desde el norte |
area |
Devuelve el perímetro de un objeto de geometría poligonal. Los cálculos están en el Sistema de Referencia Espacial de esta geometría |
azimut |
Devuelve el acimut con base en el norte como el ángulo en radianes medido en sentido horario desde la vertical en punto_a al punto_b |
boundary |
Devuelve el cierre del límite combinatorio de la geometría (es decir, el límite topológico de la geometría; consulte también Contorno). |
bounds |
Devuelve una geometría que representa el cuadro delimitador de una geometría de entrada. Los cálculos se encuentran en el Sistema de referencia espacial de esta geometría (ver también Recuadros delimitadores) |
bounds_height |
Devuelve la altura del cuadro delimitador de una geometría. Los cálculos están en el Sistema de referencia espacial de esta geometría |
bounds_width |
Devuelve la anchura del recuadro delimitador de una geometría. Los cálculos están en el Sistema de Referencia Espacial de esta geometría |
buffer |
Devuelve una geometría que representa todos los puntos cuya distancia desde esta geometría es menor o igual que la distancia. Los cálculos se encuentran en el Sistema de referencia espacial de esta geometría (ver también Buffer) |
buffer_by_m |
Crea un búfer a lo largo de una geometría de línea donde el diámetro del búfer varía según los valores de M en los vértices de la línea (ver also Ancura de buffer variable (por valor de M)) |
centroid |
Devuelve el centro geométrico de una geometría (ver también Centroides) |
closest_point |
Devuelve el punto en una geometría que está más cerca de una segunda geometría |
collect_geometries |
Recopila un conjunto de geometrías en un objeto de geometría de varias partes (ver también Coleccionar geometrías) |
combine |
Devuelve la combinación de dos geometrías |
contains(a,b) |
Devuelve 1 (verdadero) si y solo si no hay puntos de b en el exterior de a, y al menos un punto del interior de b se encuentra en el interior de a |
convex_hull |
Devuelve el casco convexo de una geometría (esto representa la geometría convexa mínima que encierra todas las geometrías dentro del conjunto) (ver también Casco convexo) |
crosses |
Devuelve 1 (verdadero) si las geometrías proporcionadas tienen algunos, pero no todos, puntos interiores en común |
difference(a,b) |
Devuelve una geometría que representa esa parte de la geometría a que no se cruza con la geometría b (ver también Diferencia) |
disjoint |
Devuelve 1 (verdadero) si las geometrías no comparten ningún espacio juntos |
distance |
Devuelve la distancia mínima (basada en el sistema de referencia espacial) entre dos geometrías en unidades proyectadas |
distance_to_vertex |
Devuelve la distancia a lo largo de la geometría a un vértice especificado |
end_point |
Devuelve el último nodo de una geometría (ver también Extráe vértices específicos) |
extend |
Extiende el inicio y el final de una geometría de cadena lineal en una cantidad específica (ver también Extender líneas) |
exterior_ring |
Devuelve una cadena de línea que representa el anillo exterior de una geometría de polígono, o nulo si la geometría no es un polígono |
extrude(geom,x,y) |
Devuelve una versión extruida de la geometría (Multi-) Curva o (Multi-) Líneas de entrada con una extensión especificada por X e Y |
flip_coordinates |
Devuelve una copia de la geometría con las coordenadas X e Y intercambiadas (ver también Intercmbiar coordenadas X e Y) |
force_rhr |
Obliga a una geometría a respetar la regla de la mano derecha (ver también Fuerza la regla de la mano derecha) |
geom_from_gml |
Devuelve una geometría creada a partir de una representación de geometría GML |
geom_from_wkt |
Devuelve una geometría creada a partir de una representación de texto conocido (WKT) |
geom_to_wkt |
Devuelve la representación de texto conocido (WKT) de la geometría sin metadatos SRID |
geometry |
Devuelve la geometría de un objeto |
geometry_n |
Devuelve la enésima geometría de una colección de geometría, o nula si la geometría de entrada no es una colección |
hausdorff_distance |
Devuelve básicamente una medida de cuán similares o diferentes son dos geometrías, con una distancia menor que indica geometrías más similares |
inclination |
Devuelve la inclinación medida desde el cenit (0) al nadir (180) del punto_a al punto_b |
interior_ring_n |
Devuelve la geometría del enésimo anillo interior de una geometría de polígono, o nulo si la geometría no es un polígono |
intersection |
Devuelve una geometría que representa la parte compartida de dos geometrías (ver también Intersección) |
intersects |
Comprueba si una geometría se cruza con otra. Devuelve 1 (verdadero) si las geometrías se intersecan espacialmente (comparten cualquier porción de espacio) y 0 si no |
intersects_bbox |
Comprueba si el cuadro delimitador de una geometría se superpone al cuadro delimitador de otra geometría. Devuelve 1 (verdadero) si las geometrías intersecan espacialmente (comparten cualquier parte del espacio) su cuadro delimitador, o 0 si no lo hacen |
is_closed |
Devuelve verdadero si una cadena de línea está cerrada (los puntos iniciales y finales son coincidentes), falso si una cadena de línea no está cerrada o nulo si la geometría no es una cadena de línea |
length |
Devuelve la longitud de una entidad de geometría lineal ( o longitud de una cadena) |
line_interpolate_angle |
Devuelve el ángulo paralelo a la geometría a una distancia especificada a lo largo de una geometría de cadena lineal. Los ángulos están en grados en sentido horario desde el norte. |
line_interpolate_point |
Devuelve el punto interpolado por una distancia especificada a lo largo de una geometría de cadena lineal. (ver también Interpolar puntos en línea) |
line_locate_point |
Devuelve la distancia a lo largo de una cadena lineal correspondiente a la posición más cercana a la que la cadena lineal llega a una geometría de punto especificada. |
line_merge |
Devuelve una geometría (Multi-) LineString, donde cualquier LineStrings conectada de la geometría de entrada se ha fusionado en una sola cadena lineal. |
line_substring |
Devuelve la parte de una geometría de línea o curva que cae entre las distancias de inicio y finalización especificadas (medidas desde el principio de la línea) (ver también Subcadena de línea) |
m |
Devuelve el valor M de una geometría puntual |
make_circle |
Crea una geometría circular basándose en un punto central y un radio |
make_ellipse |
Crea una geometría elíptica basada en un punto central, ejes y acimut |
make_line |
Crea una geometría lineal de una serie o un arreglo de geometrías puntuales |
make_point(x,y,z,m) |
Devuelve una geometría puntual a partir de los valores X e Y (y opcionálmente Z o M) |
make_point_m(x,y,m) |
Devuelve una geometría puntual a partir de las coordenadas X e Y y el valor M |
make_polygon |
Crea una geometría de polígono a partir de un anillo exterior y series opcionales de geometrías interiores de anillo |
make_rectangle_3points |
Crea un rectángulo a partir de 3 puntos |
make_regular_polygon |
Crea un polígono regular |
make_square |
Crea un cuadrado a partir de una diagonal |
make_triangle |
Crea un polígono triangular |
minimal_circle |
Devuelve el círculo de cerramiento mínimo de una geometría de entrada (ver también Cícrculos mínimos cercantes) |
nodes_to_points |
Devuelve una geometría multipunto que consta de cada nodo en la geometría de entrada (ver también Extraer vértices) |
num_geometries |
Devuelve el número de geometrías en una colección de geometrías o nulo si la geometría de entrada no es una colección |
num_interior_rings |
Devuelve el número de anillos interiores de un polígono o una colección de geometrías o nulo si la geometría de entrada no es un polígono o una colección |
num_points |
Devuelve el número de vértices de una geometría. |
num_rings |
Devuelve el número de anillos (incluidos los anillos exteriores) de un polígono o una colección de geometrías o nulo si la geometría de entrada no es un polígono o una colección |
offset_curve |
Devuelve una geometría formada al desplazar una geometría de cadena lineal a un lado. Las distancias están en el sistema de referencia espacial de esta geometría. (ver también Compensado de líneas) |
order_parts |
Ordena las partes de una MultiGeometría por los criterios dados |
oriented_bbox |
Devuelve una geometría que representa el cuadro delimitador orientado mínimo de una geometría de entrada (consulte también Cuador delimitador mínimo orientado) |
overlaps |
Comprueba si una geometría solapa con otra. Devuelve 1(verdadero) si las geometrías comparten espacio, son de la misma dimensión, pero no están contenidas en la otra. |
perimeter |
Devuelve el perímetro de un objeto de geometría poligonal. Los cálculos están en el Sistema de Referencia Espacial de esta geometría. |
point_n |
Devuelve un nodo específico de una geometría (ver también Extráe vértices específicos) |
point_on_surface |
Devuelve un punto garantizando que descansa en la superficie de una geometría (ver también Punto en la superficie) |
pole_of_inaccessibility |
Calcula el polo aproximado de inaccesibilidad para una superficie, que es el punto interno más distante del límite de la superficie (ver también Polo de inaccesibilidad) |
project |
Devuelve un punto proyectado desde un punto inicial usando una distancia, una demora (acimut) y una elevación en radianes (ver también Proyección de puntos (Cartesiano)) |
relate |
Prueba o devuelve la representación del Modelo de Intersección 9 Extendido Dimensional (DE-9IM) de la relación entre dos geometrías. |
reverse |
Invierte la dirección de una cadena lineal invirtiendo el orden de sus vértices (ver también Línea de dirección reversible) |
segments_to_lines |
Devuelve una geometría de varias líneas que consiste en una línea para cada segmento en la geometría de entrada (ver también Explotar lineas) |
shortest_line |
Devuelve la línea más corta que une dos geometrías. La línea resultante comenzará en la geometría 1 y finalizará en la geometría 2 |
simplify |
Simplifica una geometría eliminando nodos utilizando un umbral basado en la distancia (ver también Simplificar) |
simplify_vw |
Simplifica una geometría eliminando nodos utilizando un umbral basado en área (ver también Simplificar) |
single_sided_buffer |
Devuelve una geometría formada al amortiguar solo un lado de una geometría de cadena lineal. Las distancias están en el sistema de referencia espacial de esta geometría (ver también Buffer a un solo lado) |
smooth |
Suaviza una geometría añadiendo nodos extra que redondean las esquinas en la geometría (ver también Suavizar) |
start_point |
Devuelve el primer nodo de una geometría (ver también Extráe vértices específicos) |
sym_difference |
Devuelve una geometría que representa las porciones de dos geometrías que no se intersectan (ver también Diferencia simétrica) |
tapered_buffer |
Crea un búfer a lo largo de una geometría de línea donde el diámetro del búfer varía uniformemente a lo largo de la línea (ver también Zonas de influencia estrechas) |
touches |
Comprueba si una geometría toca a otra. Devuelve 1 (verdadero) si las geometrías tienen al menos un punto en común, pero sus interiores no se intersecan |
transform |
Devuelve la geometría transformada del CRS de origen al CRS de destino (consulte también Capa reproyectada) |
translate |
Devuelve una versión trasladada de una geometría. Los cálculos están en el Sistema de Referencia Espacial de la geometría (ver también Traslado) |
union |
Devuelve una geometría que representa el conjunto unión de los puntos de las geometrías. |
wedge_buffer |
Devuelve un búfer en forma de cuña que se origina a partir de una geometría de punto dado un ángulo y radios (ver también Crear buffer de cuñas) |
within (a,b) |
Comprueba si una geometría está dentro de otra. Devuelve 1 (verdadero) si la geometría a está completamente dentro de la geometría b |
x |
Devuelve la coordenada X de una geometría de punto, o la coordenada X del centroide para una geometría sin punto |
x_max |
Devuelve la coordenada X máxima de una geometría. Los cálculos están en el Sistema de referencia espacial de esta geometría |
x_min |
Devuelve la coordenada X mínima de una geometría. Los cálculos están en el Sistema de referencia espacial de esta geometría |
y |
Devuelve la coordenada Y de una geometría de punto, o la coordenada Y del centroide para una geometría sin punto |
y_max |
Devuelve la coordenada Y máxima de una geometría. Los cálculos están en el Sistema de referencia espacial de esta geometría |
y_min |
Devuelve la coordenada Y mínima de una geometría. Los cálculos están en el Sistema de referencia espacial de esta geometría |
z |
Devuelve la coordenada Z de una geometría puntual |
Algún ejemplo:
Devuelve la coordenada X del centroide de la entidad actual:
x( $geometry )
Devuelve un valor conforme al área de una entidad:
CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END
Puedes manipular la geometría actual usando la variable
$geometry
para crear un búfer u obtener un punto en la superficie de la geometría:buffer( $geometry, 10 ) point_on_surface( $geometry )
Dada una característica de punto, generar una línea cerrada (usando
make_line
) alrededor de la geometría del puntomake_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. Funciones de diseño¶
Este grupo contiene funciones para manipular las propiedades de elementos del diseño de impresión.
Función |
Descripción |
---|---|
item_variables |
Devuelve un mapa de variables de un elemento de diseño dentro de este diseño de impresión |
Un ejemplo:
Obtener la escala del “Map 0” en el diseño de impresión actual:
map_get( item_variables('Map 0'), 'map_scale')
14.2.2.14. Capas de mapa¶
Este grupo contiene una lista de las capas disponibles en el proyecto actual. Esto ofrece una manera conveniente de escribir expresiones que se refieren a múltiples capas, como cuando se realizan consultas aggregates, attribute o spatial.
También proporciona algunas funciones convenientes para manipular capas.
Función |
Descripción |
---|---|
decode_uri |
Toma una capa y decodifica la uri del proveedor de datos subyacente. La información disponible depende del tipo de proveedor de datos. |
14.2.2.15. Funciones de Mapas¶
Este grupo contiene funciones para crear o manipular claves y valores de estructuras de datos de mapas (también conocidos como objetos de diccionario, pares clave-valor o matrices asociativas). A diferencia del list data structure donde importa el orden de valores, el orden de los pares clave-valor en el objeto de mapa no es relevante y los valores se identifican por sus claves.
Función |
Descripción |
---|---|
from_json |
Carga una cadena en formato json |
hstore_to_map |
Crea un mapa a partir de una cadena en formato hstore |
json_to_map |
Crea un mapa a partir de una cadena en formato json |
map |
Devuelve un mapa conteniendo todas las claves y valores pasados como un par de parámetros |
map_akeys |
Devuelve todas las claves de un mapa como un arreglo |
map_avals |
Devuelve todos los valores de un mapa como un arreglo |
map_concat |
Devuelve un mapa que contiene todas las entradas de los mapas dados. Si dos mapas contienen la misma clave, se toma el valor del segundo mapa. |
map_delete |
Devuelve un mapa con la clave dada y el correspondiente valor borrado |
map_exist |
Devuelve verdadero si la clave dada existe en el mapa |
map_get |
Devuelve el valor de un mapa, dada su clave |
map_insert |
Devuelve un mapa con una clave/valor añadido |
map_to_hstore |
Combina elementos de mapa en una cadena en formato hstore |
map_to_json |
Combina elementos de mapa en una cadena en formato json |
to_json |
Crea una cadena en formato json a partir de un mapa, un arreglo u otro valor |
14.2.2.16. Funciones Matemáticas¶
Este grupo contiene funciones matemáticas (por ejemplo raíz cuadrada, seno y coseno).
Función |
Descripción |
---|---|
abs |
Devuelve el valor absoluto de un número |
arcos |
Devuelve la inversa del coseno de un valor en radianes |
arcsen |
Devuelve la inversa del seno de un valor en radianes |
atan |
Devuelve la tangente inversa de un valor en radianes |
atan2(y,x) |
Devuelve la tangente inversa de Y/X usando los signos de los dos argumentos para determinar el cuadrante del resultado |
azimuth(a,b) |
Devuelve el acimut basado en el norte como el ángulo en radianes medido en sentido horario desde la vertical en el punto a hasta el punto b |
ceil |
Redondea un número hacia arriba |
clamp |
Restringe un valor de entrada a un rango especificado |
cos |
Devuelve el coseno de un ángulo en radianes |
degrees |
Convierte de radianes a grados |
exp |
Devuelve la exponencial de un valor |
floor |
Redondea un valor hacia abajo |
inclination |
Devuelve la inclinación medida desde el cenit (0) al nadir (180) desde el punto_a al punto_b. |
ln |
Devuelve el logaritmo natural de una expresión pasada |
log |
Devuelve el valor del logaritmo del valor pasado y base |
log10 |
Devuelve el valor del logaritmo en base 10 de la expresión pasada |
max |
Devuelve el mayor valor no nulo en un conjunto de valores |
min |
Devuelve el menor valor no nulo en un conjunto de valores |
pi |
Devuelve el valor de pi para cálculos |
radians |
Convierte de grados a radianes |
rand |
Devuelve el entero aleatorio dentro del rango especificado por el argumento mínimo y máximo (inclusive) |
randf |
Devuelve el flotante aleatorio dentro del rango especificado por el argumento mínimo y máximo (inclusive) |
round |
Redondea a número de posiciones decimales |
scale_exp |
Transforma un valor dado de un dominio de entrada a un rango de salida usando una curva exponencial |
scale_linear |
Transforma un valor dado de un dominio de entrada a un rango de salida usando interpolación lineal |
sen |
Devuelve el seno de un ángulo en radianes |
sqrt |
Devuelve la raíz cuadrada de un valor |
tan |
Devuelve la tangente de un ángulo en radianes |
14.2.2.17. Operadores¶
Este grupo contiene operadores (por ejemplo, +, -, *). Tenga en cuenta que para la mayoría de las funciones matemáticas a continuación, si una de las entradas es NULL, el resultado es NULL.
Función |
Descripción |
---|---|
a + b |
Suma de dos valores (a + b) |
a - b |
Resta de dos valores (a - b) |
a * b |
Producto de dos valores (a * b) |
a / b |
División de dos valores (a dividido entre b) |
a % b |
Resto de la división de a entre b (p.ej. 7 % 2 = 1, o 2 encaja en 7 tres veces con el resto 1) |
a ^ b |
Potencia de dos valores (por ejemplo, 2^2=4 o 2^3=8) |
a < b |
Compara dos valores y evalúa a 1 si el valor izquierdo es menor que el valor derecho (a es menor que b) |
a <= b |
Compara dos valores y evalúa a 1 si el valor izquierdo es menor o igual que el valor derecho |
a <> b |
Compara dos valores y evalúa a 1 si no son iguales |
a = b |
Compara dos valores y evalúa a 1 si son iguales. |
a != b |
a y b no son iguales |
a > b |
Compara dos valores y evalúa como 1 si el valor izquierdo es mayor que el valor derecho (a es mayor que b) |
a >= b |
Compara dos valores y evalúa a 1 si el valor de la izquierda es mayor que o igual que el valor de la derecha |
a ~ b |
a coincide con la expresión regular b |
|| |
Une dos valores juntos en una cadena. Si uno de los valores en NULL el resultado será NULL |
“\n” |
Inserta una nueva línea en una cadena |
LIKE |
Devuelve 1 si el primer parámetro coincide con el patrón provisto |
ILIKE |
Devuelve 1 si el primer parámetro tiene una coincidencia insensible con el patrón proporcionado (ILIKE se puede usar en lugar de LIKE para que la coincidencia no distinga entre mayúsculas y minúsculas) |
a IS b |
Prueba si dos valores son idénticos. Devuelve 1 si a es el mismo que b |
a OR b |
Devuelve 1 cuando la condición a o la condición b es verdadera |
a AND b |
Devuelve 1 cuando las condiciones a y b son verdaderas |
NOT |
Niega una condición |
«Column_name» |
El valor del campo Column_name, tenga cuidado de no confundirse con una simple cita, vea a continuación |
“cadena” |
un valor de cadena, tenga cuidado no confundirse con dobles comillas, ver arriba |
NULL |
valor nulo |
a IS NULL |
a no tiene valor |
a IS NOT NULL |
a tiene valor |
a IN (value[,value]) |
a esta debajo de los valores listados |
a NOT IN (valor[,valor]) |
a no está debajo de los valores listados |
Algún ejemplo:
Une una cadena de texto y un valor de un nombre de columna:
'My feature''s id is: ' || "gid"
Prueba si el atributo de campo «description» empieza con la cadena “Hello” en el valor (note la posición del carácter
%
):"description" LIKE 'Hello%'
14.2.2.18. Funciones de Procesamiento¶
Este grupo contiene funciones que operan en algoritmos de procesamiento.
Función |
Descripción |
---|---|
parameter |
Devuelve el valor del parámetro de entrada de un algoritmo de procesamiento |
14.2.2.19. Funciones Ráster¶
Este grupo contiene funciones a operar en una capa ráster.
Función |
Descripción |
---|---|
raster_statistic |
Devuelve estadísticas de una capa ráster |
raster_value |
Devuelve el valor de la banda ráster en el punto proporcionado |
14.2.2.20. Funciones de Registro y Atributos¶
Este grupo contiene funciones que operan sobre identificadores de registros.
Función |
Descripción |
---|---|
$currentfeature |
Devuelve el objeto espacial que está siendo evaluado. Se puede usar con la función “attribute” para evaluar los valores de atributo del objeto actual. |
$id |
Devuelve el ID del objeto de la fila actual |
attribute |
Devuelve el valor del atributo especificado de un objeto |
attributes |
Devuelve a map de todos los atributos de uan entidad, con nombres de campo como claves de mapa |
get_feature |
Devuelve el primer objeto de una capa que coincide con un valor de atributo dado |
get_feature_by_id |
Devuelve la entidad de una capa coincidente con la ID de la entidad dada |
is_selected |
Devuelve si una entidad está seleccionada |
num_selected |
Devuelve el número de entidades seleccionadas en una capa dada |
represent_value |
Devuelve el valor de representación configurado para un valor de campo (conveniente con algunos widget types) |
sql_fetch_and_increment |
Gestionar valores de autoincremento en bases de datos SQLite |
uuid |
Genera un Identificador Único Universal (UUID) para cada fila. Cada UUID tiene una longitud de 38 caracteres. |
Algún ejemplo:
Devuelve la primera entidad en la capa «LayerA» cuyo campo «id» tiene el mismo valor que el campo «nombre» de la entidad actual (una especie de unión)
get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') )
Calcula el área de las entidades unidas del ejemplo anterior:
area( geometry( get_feature( 'layerA', 'id', attribute( $currentfeature, 'name') ) ) )
14.2.2.21. Funciones de cadena¶
Este grupo contiene funciones que operan sobre cadenas (por ejemplo that replace, convert to upper case).
Función |
Descripción |
---|---|
char |
Devuelve el carácter asociado con un código unicode |
concat |
Concatena varias cadenas en una |
format |
Da formato a una cadena usando los argumentos proporcionados. |
format_date |
Formmatea un tipo o cadena de fecha en un formato cadena personalizado |
format_number |
Devuelve un número formateado con el separador local de miles (también trunca el número al número de decimales indicado) |
left(string, n) |
Devuelve una subcadena que contiene los n caracteres mas a la izquierda de una cadena |
length |
devuelve la longitud de una cadena (o longitud de una entidad geométrica lineal) |
lower |
Convierte una cadena a letras minúsculas. |
lpad |
Devuelve una cadena rellenada a la izquierda al ancho especificado, utilizando el carácter de relleno |
regexp_match |
Devuelve la primera posición coincidente con una expresión regular dentro de una cadena, o 0 si no se encuentra la subcadena |
regexp_replace |
Devuelve una cadena en la que se ha remplazado la expresión regular proporcionada |
regexp_substr |
Devuelve la parte de una cadena que coincide con una expresión regular proporcionada |
replace |
Devuelve una cadena con la cadena, arreglo o mapa de cadenas suministrados reemplazados por una cadena, un arreglo de cadenas o valores emparejados |
right(cadena, n) |
Devuelve una subcadena que contiene los n caracteres más a la derecha de la cadena. |
rpad |
Devuelve una cadena rellenada a la derecha del ancho especificado, utilizando el carácter de relleno |
strpos |
Devuelve la primera posición coincidente de una subcadena dentro de otra cadena, o 0 si no se encuentra la subcadena |
substr |
Devuelve una parte de una cadena. |
title |
Convierte todas las palabras de una cadena a formato de título (todas las palabras en minúscula con la primera letra en mayúscula) |
trim |
Elimina todos los espacios en blanco (espacios, tabuladores, etc.) de comienzo y final de una cadena. |
upper |
Convierte una cadena a letras mayúsculas. |
wordwrap |
Devuelve una cadena ajustada a un número máximo/mínimo de caracteres |
Sobre concatenación de campos
Ahora puede concatenar cadenas o valores de campos usando ya sea con el operador ||
o +
o la función concat
, con algunas características especiales:
El operador
+
también significa expresión resumida, por lo que si tiene un operando entero (campo o valor numérico), puede ser propenso a errores y es mejor usar los otros:'My feature''s id is: ' + "gid" => triggers an error as gid is an integer
Cuando cualquiera de los argumentos sea un valor NULL,
||
o+
devolverán un valor NULL. Para devolver los otros argumentos independientemente del valor NULL, es posible que desee utilizar la funciónconcat
"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 otros casos, hazlo a tu conveniencia:
'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. Variables¶
Este grupo contiene variables dinámicas relacionadas con la aplicación, el archivo del proyecto y otras configuraciones. La disponibilidad de variables depende del contexto:
desde el diálogo de propiedades de la capa
desde el diseñador de impresión
Para usar estas variables en una expresión, deben estar precedidas por el carácter @``(p.ej, ``@row_number
).
Función |
Descripción |
---|---|
algorithm_id |
El ID único de un algoritmo |
atlas_feature |
La entidad actual del atlas (como objeto de entidad) |
atlas_featureid |
La ID de la entidad actual del atlas |
atlas_featurenumber |
El número de entidades actuales del atlas en el diseño |
atlas_filename |
El nombre de archivo del atlas actual |
atlas_geometry |
La geometría de la entidad actual del atlas |
atlas_layerid |
La ID de la capa de cobertura del atlas actual |
atlas_layername |
El nombre de la capa de cobertura del atlas actual |
atlas_pagename |
El nombre de la página del atlas actual |
atlas_totalfeatures |
El número total de entidades en el atlas |
canvas_cursor_point |
La última posición del cursos en el lienzo en coordenadas geográficas del proyecto |
cluster_color |
El color de los símbolos dentro de un grupo, o NULL si los símbolos tienen colores mezclados |
cluster_size |
La cantidad de símbolos contenidos en un grupo |
current_feature |
La entidad que se está editando actualmente en el formulario de atributo o la fila de la tabla |
current_geometry |
La geometría de la entidad que se está editando actualmente en el formulario o la fila de la tabla |
fullextent_maxx |
Valor x máximo de la extensión del lienzo completo (incluidas todas las capas) |
fullextent_maxy |
Valor y máximo de la extensión del lienzo completo (incluidas todas las capas) |
fullextent_minx |
Valor x mínimo de la extensión del lienzo completo (incluidas todas las capas) |
fullextent_miny |
Valor y mínimo de la extensión del lienzo completo (incluidas todas las capas) |
geometry_part_count |
El número de piezas en la geometría de la entidad renderizada. |
geometry_part_num |
El número de partes de la geometría actual para la entidad que se está renderizando |
geometry_point_count |
El número de puntos en la parte de la geometría renderizada. |
geometry_point_num |
El número de puntos actual en la parte de la geometría renderizada |
grid_axis |
El eje de anotación de la cuadrícula actual (p. Ej., “X” para la longitud, “y” para la latitud) |
grid_number |
El valor de anotación de cuadrícula actual |
item_id |
El ID de usuario del elemento del diseño (no necesariamente único) |
item_uuid |
El ID único del elemento de diseño |
layer |
La capa actual |
layer_id |
La ID de la capa actual |
layer_name |
El nombre de la capa actual |
layout_dpi |
La resolución de la composición (DPI) |
layout_name |
El nombre del diseño |
layout_numpages |
El número de páginas en el diseño |
layout_page |
El número de página del elemento actual en el diseño |
layout_pageheight |
La altura de la página activa en el diseño (en mm) |
layout_pagewidth |
La anchura de la página activa en el diseño (en mm) |
legend_column_count |
El número de columnas en la leyenda |
legend_filter_by_map |
Indica si el contenido de la leyenda es filtrada por el mapa |
legend_filter_out_atlas |
indica si el atlas es filtrado fuera de la leyenda |
legend_split_layers |
Indica si las capas pueden ser cortadas en la leyenda |
legend_title |
El título de la leyenda |
legend_wrap_string |
El carácter(es) usado(s) para el texto de la leyenda |
map_crs |
El sistema de coordenadas de Referencia del mapa actual |
map_crs_acronym |
El acrónimo del sistema de referencia de coordenadas del mapa actual |
map_crs_definition |
La definición completa del sistema de referencia de coordenadas del mapa actual |
map_crs_description |
El nombre del sistema de referencia de coordenadas del mapa actual |
map_crs_ellipsoid |
El acrónimo del elipsoide del sistema de referencia de coordenadas del mapa actual |
map_crs_proj4 |
La definición de Proj4 del sistema de referencia de coordenadas del mapa actual |
map_crs_wkt |
La definición WKT del sistema de referencia de coordenadas del mapa actual |
map_extent |
La geometría que representa la extensión actual del mapa. |
map_extent_center |
La entidad de puntos en el centro del mapa |
map_extent_height |
La altura actual del mapa |
map_extent_width |
El ancho actual del mapa |
map_id |
El ID del destino actual del mapa. Este será “lienzo” para las representaciones de lienzo y el ID del elemento para las representaciones del mapa de diseño |
map_layer_ids |
La lista de IDs de capas de mapa visibles en el mapa |
map_layers |
La lista de capas de mapa visibles en el mapa. |
map_rotation |
La rotación actual del mapa |
map_scale |
La escala actual del mapa |
map_units |
Las unidades de medida del mapa |
notification_message |
Contenido del mensaje de notificación enviado por el proveedor (disponible solo para acciones activadas por notificaciones del proveedor). |
parent |
Se refiere a la entidad actual en la capa principal, que proporciona acceso a sus atributos y geometría al filtrar una función aggregate |
project_abstract |
El resumen del proyecto, tomado de los metadatos del proyecto. |
project_area_units |
La unidad de área del proyecto actual, que se utiliza al calcular áreas de geometrías. |
project_author |
El autor del proyecto, tomado de los metadatos del proyecto. |
project_basename |
El nombre base del nombre de archivo del proyecto actual (sin ruta ni extensión) |
project_creation_date |
La fecha de creación del proyecto, tomada de los metadatos del proyecto. |
project_crs |
El sistema de referencia de coordenadas del proyecto |
project_crs_arconym |
El acrónimo del sistema de referencia de coordenadas del proyecto. |
project_crs_definition |
La definición completa del sistema de referencia de coordenadas del proyecto. |
project_crs_description |
La descripción del sistema de referencia de coordenadas del proyecto. |
project_crs_ellipsoid |
El elipsoide del sistema de referencia de coordenadas del proyecto |
project_crs_proj4 |
La representación Proj4 del sistema de referencia de coordenadas del proyecto |
project_crs_wkt |
La representación WKT (texto bien conocido) del sistema de referencia de coordenadas del proyecto |
project_distance_units |
La unidad de distancia para el proyecto actual, utilizada al calcular longitudes de geometrías y distancias. |
project_ellipsoid |
El nombre del elipsoide del proyecto actual, utilizado al calcular áreas geodésicas o longitudes de geometrías. |
project_filename |
El nombre de archivo del proyecto actual |
project_folder |
La carpeta del proyecto actual |
project_home |
La ruta a casa del proyecto actual |
project_identifier |
El identificador del proyecto, tomado de los metadatos del proyecto. |
project_keywords |
Las palabras clave del proyecto, tomadas de los metadatos del proyecto. |
project_last_saved |
Fecha / hora de la última vez que se guardó el proyecto. |
project_path |
La ruta completa (incluido el nombre del archivo) del proyecto actual |
project_title |
El título del proyecto actual |
project_units |
Las unidades del CRS del proyecto |
qgis_locale |
El idioma actual de QGIS |
qgis_os_name |
El nombre del sistema operativo actual, por ejemplo, “windows”, “linux” u “osx” |
qgis_platform |
La plataforma QGIS, por ejemplo, “escritorio” o “servidor” |
qgis_release_name |
El nombre de la versión actual de QGIS |
qgis_short_version |
La cadena corta de la versión actual de QGIS |
qgis_version |
La cadena de versión actual de QGIS |
qgis_version_no |
El número de versión actual de QGIS |
row_number |
Guarda el número de la fila actual. |
snapping_results |
Da acceso a los resultados de ajuste mientras se digitaliza una función (solo disponible en agregar función) |
scale_value |
El valor de distancia de la barra de escala actual |
symbol_angle |
El ángulo del símbolo utilizado para representar la entidad (válido solo para símbolos de marcador) |
symbol_color |
El color del símbolo utilizado para representar la entidad. |
symbol_count |
El número de entidades representadas por el símbolo (en la leyenda del diseño) |
symbol_id |
El ID interno del símbolo (en la leyenda del diseño) |
symbol_label |
La etiqueta del símbolo (ya sea una etiqueta definida por el usuario o la etiqueta predeterminada generada automáticamente, en la leyenda del diseño) |
user_account_name |
El nombre de la cuenta del sistema operativo del usuario actual |
user_full_name |
El nombre de usuario del sistema operativo del usuario actual |
Valor |
El valor actual |
with_variable |
Permite configurar una variable para usar dentro de una expresión y evitar recalcular el mismo valor repetidamente |
Algún ejemplo:
Devuelve la coordenada X del centro de un elemento de mapa en el diseño:
x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
Devuelve, para cada entidad de la capa actual, el número de entidades aeroportuarias superpuestas:
aggregate( layer:='airport', aggregate:='count', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) )
Obtener la object_id del primer punto ajustado de una línea:
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. Funciones recientes¶
Este grupo contiene funciones utilizadas recientemente. Dependiendo del contexto de su uso (selección de características, calculadora de campo, genérico), las expresiones aplicadas recientemente se agregan a la lista correspondiente (hasta diez expresiones), ordenadas de más a menos recientes. Esto facilita recuperar y volver a aplicar rápidamente expresiones utilizadas anteriormente.
14.2.3. Editor de Funciones¶
Con la pestaña Function Editor, puedes escribir tus propias funciones en lenguaje Python. Esto proporciona una forma práctica y cómoda de abordar necesidades particulares que no estarían cubiertas por las funciones predefinidas.

Figura 14.66 La pestaña Editor de funciones¶
Para crear una nueva función:
Ingrese un nombre para usar en el formulario que aparece y presione OK.
Se agrega un nuevo elemento del nombre que proporcione en el panel izquierdo de la pestaña Function Editor; este es un archivo Python
.py
basado en el archivo de plantilla QGIS y almacenado en la carpeta/python/expressions
en el directorio activo user profile.El panel derecho muestra el contenido del archivo: una plantilla de script de Python. Actualice el código y su ayuda según sus necesidades.
Presione el botón
Save and Load Functions. La función que escribió se agrega al árbol de funciones en la pestaña Expression, por defecto bajo el grupo``Custom``.
Disfruta tu nueva función.
Si la función requiere mejoras, habilite la pestaña Function Editor, haga los cambios y presione de nuevo el botón
Save and Load Functions para hacerlos accesibles en el archivo, por lo tanto en cualquier pestaña de expresión.
Las funciones personalizadas de Python se almacenan en el directorio de perfil de usuario, lo que significa que en cada inicio de QGIS, cargará automáticamente todas las funciones definidas con el perfil de usuario actual. Tenga en cuenta que las nuevas funciones solo se guardan en la carpeta /python/expressions
y no en el archivo del proyecto. Si comparte un proyecto que utiliza una de sus funciones personalizadas, también deberá compartir la carpeta:file:.py file in the /python/expressions
.
Aquí hay un pequeño ejemplo de como crear sus propias funciones:
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
El breve ejemplo crea una función my_sum
que le dará una función con dos valores. Cuando se usa el argumento de función args='auto''', el número de argumentos de función requeridos se calculará por el número de argumentos con los que se ha definido la función en Python (menos 2 - ``feature
y parent
).
Esta función puede ser usada en expresiones:

Figura 14.67 Función personalizada agregada a la pestaña Expresión¶
Se puede encontrar más información sobre cómo crear código Python en Libro de Recetas para Desarrollador PyQGIS.