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:

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
    
  • Update a region layer field with the names (comma separated) of contained airports:

    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.

../../../_images/function_list.png

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á NULL.

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 Variable ancho del buffer (por valor M)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 Difference)

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

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 Symmetrical difference)

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 Reproject layer)

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 punto

    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. 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ón concat

    "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 expressionSelect Select by expression

  • desde el diálogo calculateField Field calculator

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

../../../_images/function_editor.png

Figura 14.66 La pestaña Editor de funciones

Para crear una nueva función:

  1. Presiona el botón signPlus New File.

  2. 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.

  3. 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.

  4. Presione el botón start 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``.

  5. Disfruta tu nueva función.

  6. Si la función requiere mejoras, habilite la pestaña Function Editor, haga los cambios y presione de nuevo el botón start 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:

../../../_images/customFunction.png

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.