12.2. Lista de funciones

Las funciones, operadores y variables disponibles en QGIS están listadas abajo, agrupadas por categorías.

12.2.1. Agregar Funciones

Este grupo contiene funciones que agregan valores sobre campos y capas.

12.2.1.1. Agregar

Devuelve un valor agregado calculado usando objetos espaciales de otra capa.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • layer - una cadena, que representa un nombre capa o ID de capa

  • aggregate - una cadena que corresponde al agregado a calcular. Las opciones válida son:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • intervalo

    • minority

    • majority

    • q1: primer cuartil

    • q3: tercer cuartil

    • iqr: rango intercuartil

    • min_length: longitud mínima de cadena

    • max_length: longitud máxima de cadena

    • concatenate: unir cadenas con un concatenador

    • concatenate_unique: unir cadenas únicas con un concatenador

    • collect: crear una geometría multiparte agregada

    • array_agg: crear una colección de valores agregados

  • expresión - sub expresión o nombre de campo a agregar

  • filter - expresión de filtro opcional para limitar los objetos espaciales usados para calcular el agregado. Los campos y la geometría son de los objetos espaciales en la capa unida. Los objetos fuente pueden ser accedidos con la variable @parent.

  • concatenator - cadena opcional a usar para unir valores para el agregado “concatenate”

  • order_by - expresión de filtro opcional para ordenar los objetos espaciales usados para calcular el agregado. Los campos y la geometría son de los objetos en la capa unida. De forma predeterminada, los objetos espaciales serán regresados en un orden no especificado.

Ejemplos

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → suma de todos los valores en el campo pasajeros en la capa rail_stations

  • aggregate('rail_stations','sum', "passengers"/7) → calcula un promedio diario de «passengers» dividiendo el campo «passengers» por 7 antes de sumar agregadamente los valores

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → suma agregadamente todos los valores del campo «passengers» de objetos donde el atributo «class» son mayores que 3 solamente

  • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → lista separada por coma del campo nombre para todos los objetos espaciales en la capa rail_stations

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry(@parent) ) ) → El código de país de un país que intersecta en la capa “countries”

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, $geometry ) ) → suma de todos los valores del campo passengers en rail_stations dentro del objeto atlas actual

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid($geometry), filter:="region_name" = attribute(@parent,'name') ) → agrega las geometrías centroides de las rail_stations de la misma región como objeto actual

12.2.1.2. array_agg

Devuelve una matriz de valores agregados de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

  • order_by - expresión opcional que se usa para ordenar las características que se usan para calcular el agregado. De forma predeterminada, las funciones se devolverán en un orden no especificado.

Ejemplos

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

12.2.1.3. recolectar

Devuelve la geometría multiparte de geometrías agregadas desde una expresión

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - expresión de geometría para agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • collect( $geometry ) → geometría multiparte de geometrías agregadas

  • collect( centroid($geometry), group_by:="region", filter:= "use" = 'civilian' ) → centroides agregados de las entidades civiles en función de su valor de región

12.2.1.4. concatenar

Devuelve todas las cadenas agregadas de un campo o expresión unidos por un delimitador.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

  • concatenator - cadena opcional para usar para unir valores. Vacío por defecto.

  • order_by - expresión opcional que se usa para ordenar las características que se usan para calcular el agregado. De forma predeterminada, las funciones se devolverán en un orden no especificado.

Ejemplos

  • concatenate("town_name",group_by:="state",concatenator:=',') → lista separada por coma de town_names, agrupado por state field

12.2.1.5. concatenar_único

cadena opcional para usar para unir valores. Vacío por defecto.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

  • concatenator - cadena opcional para usar para unir valores. Vacío por defecto.

  • order_by - expresión opcional que se usa para ordenar las características que se usan para calcular el agregado. De forma predeterminada, las funciones se devolverán en un orden no especificado.

Ejemplos

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → lista separada por coma de town_names único, agrupado por state field

12.2.1.6. count

Devuelve el recuento de objetos coincidentes.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • count("stations",group_by:="state") → recuento de estaciones, agrupadas por campo estatal

12.2.1.7. count_distinct

Devuelve el recuento de valores distintos.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • count_distinct("stations",group_by:="state") → recuento de valores de estaciones distintas, agrupados por campo de estado

12.2.1.8. count_missing

Devuelve el recuento de valores perdidos (NULL).

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • count_missing("stations",group_by:="state") → recuento de valores de estación perdidos (NULL), agrupados por campo de estado

12.2.1.9. iqr

Devuelve el rango intercuartil calculado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • iqr("population",group_by:="state") → rango intercuartil del valor de la población, agrupado por campo de estado

12.2.1.10. majority

Devuelve la mayoría agregada de valores (valor que ocurre con más frecuencia) de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • majority("class",group_by:="state") → valor de clase más común, agrupado por campo de estado

12.2.1.11. max_length

Devuelve la longitud máxima de cadenas de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • max_length("town_name",group_by:="state") → longitud máxima de town_name, agrupada por campo de estado

12.2.1.12. maximum

Devuelve el valor máximo agregado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • maximum("population",group_by:="state") → valor máximo de población, agrupado por campo de estado

12.2.1.13. mean

Devuelve el valor medio agregado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • mean("population",group_by:="state") → valor medio de la población, agrupado por campo estatal

12.2.1.14. median

Devuelve el valor medio agregado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • median("population",group_by:="state") → valor medio de la población, agrupado por campo de estado

12.2.1.15. min_length

Devuelve la longitud mínima de cadenas de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • min_length("town_name",group_by:="state") → longitud mínima de town_name, agrupada por campo de estado

12.2.1.16. minimum

Devuelve el valor mínimo agregado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • minimum("population",group_by:="state") → valor mínimo de población, agrupado por campo estatal

12.2.1.17. minority

Devuelve la minoría agregada de valores (valor que ocurre menos) de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • minority("class",group_by:="state") → valor de clase menos frecuente, agrupado por campo de estado

12.2.1.18. q1

Devuelve el primer cuartil calculado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • q1("population",group_by:="state") → primer cuartil del valor de la población, agrupado por campo de estado

12.2.1.19. q3

Devuelve el tercer cuartil calculado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • q3("population",group_by:="state") → tercer cuartil del valor de la población, agrupado por campo de estado

12.2.1.20. intervalo

Devuelve el rango agregado de valores (máximo - mínimo) de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • range("population",group_by:="state") → rango de valores de población, agrupados por campo de estado

12.2.1.21. relation_aggregate

Devuelve un valor agregado calculado utilizando todas las entidades secundarias coincidentes de una relación de capa.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • relación: una cadena que representa un ID de relación

  • aggregate - una cadena que corresponde al agregado a calcular. Las opciones válida son:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • intervalo

    • minority

    • majority

    • q1: primer cuartil

    • q3: tercer cuartil

    • iqr: rango intercuartil

    • min_length: longitud mínima de cadena

    • max_length: longitud máxima de cadena

    • concatenate: unir cadenas con un concatenador

    • concatenate_unique: unir cadenas únicas con un concatenador

    • collect: crear una geometría multiparte agregada

    • array_agg: crear una colección de valores agregados

  • expresión - sub expresión o nombre de campo a agregar

  • concatenator - cadena opcional a usar para unir valores para el agregado “concatenate”

  • ** order_by **: expresión opcional para ordenar las entidades utilizadas para calcular el agregado. Los campos y la geometría son de las entidades de la capa unida. De forma predeterminada, las funciones se devolverán en un orden no especificado.

Ejemplos

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → valor medio de todas las entidades secundarias coincidentes utilizando la relación “my_relation”

  • relation_aggregate('my_relation','sum', "passengers"/7) → suma del campo de pasajeros dividido por 7 para todas las entidades secundarias coincidentes que utilizan la relación “my_relation”

  • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → lista separada por comas del campo de las ciudades para todas las entidades secundarias coincidentes utilizando la relación “my_relation”

  • relation_aggregate('my_relation','array_agg', "id") → matriz del campo de identificación de todas las entidades secundarias coincidentes utilizando la relación “my_relation”

Otras lecturas: Creando una o muchas de muchas relaciones

12.2.1.22. stdev

Devuelve el valor de desviación estándar agregado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • stdev("population",group_by:="state") → desviación estándar del valor de la población, agrupada por campo de estado

12.2.1.23. sum

Devuelve el valor sumado agregado de un campo o expresión.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • expression - sub expresión de campo a agregar

  • group_by - expresión opcional para usar para agrupar cálculos agregados

  • filter - expresión opcional para usar para filtrar las entidades que se usan para calcular el agregado

Ejemplos

  • sum("population",group_by:="state") → Valor de la población sumada, agrupada por campo de estado

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

12.2.2.1. array

Devuelve una matriz que contiene todos los valores pasados como parámetro.

Sintaxis

array(value1, value2, …)

Argumentos

  • value - un valor

Ejemplos

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

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

12.2.2.2. array_all

Devuelve verdadero si una matriz contiene todos los valores de una matriz determinada.

Sintaxis

array_all(array_a, array_b)

Argumentos

  • array_a - una colección

  • array_b - la colección de valores a buscar

Ejemplos

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

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

12.2.2.3. array_append

Devuelve una matriz con el valor dado agregado al final.

Sintaxis

array_append(array, value)

Argumentos

  • array - un arreglo

  • value - el valor a agregar

Ejemplos

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

12.2.2.4. array_cat

Devuelve una matriz que contiene todas las matrices dadas concatenadas.

Sintaxis

array_cat(array1, array2, …)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.5. array_contains

Devuelve verdadero si una matriz contiene el valor dado.

Sintaxis

array_contains(array, value)

Argumentos

  • array - un arreglo

  • value - el valor a buscar

Ejemplos

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

12.2.2.6. array_count

Cuenta el número de ocurrencias de un valor dado en una matriz.

Sintaxis

array_count(array, value)

Argumentos

  • array - un arreglo

  • valor - el valor a contar

Ejemplos

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

12.2.2.7. array_distinct

Devuelve una matriz que contiene valores distintos de la matriz dada.

Sintaxis

array_distinct(array)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.8. array_filter

Devuelve una matriz con solo los elementos para los que la expresión se evalúa como verdadera.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • array - un arreglo

  • expression: una expresión para evaluar en cada elemento. La variable @ elemento será reemplazada por el valor actual.

  • limit - número máximo de elementos a devolver. Utilice 0 para devolver todos los valores.

Ejemplos

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

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

12.2.2.9. array_find

Devuelve el índice más bajo (0 para el primero) de un valor dentro de una matriz. Devuelve -1 si no se encuentra el valor.

Sintaxis

array_find(array, value)

Argumentos

  • array - un arreglo

  • value - el valor a buscar

Ejemplos

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

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

12.2.2.10. array_first

Devuelve el primer valor de una matriz.

Sintaxis

array_first(array)

Argumentos

  • array - un arreglo

Ejemplos

  • array_first(array('a','b','c')) → “a”

12.2.2.11. array_foreach

Devuelve una matriz con la expresión dada evaluada en cada elemento.

Sintaxis

array_foreach(array, expression)

Argumentos

  • array - un arreglo

  • expression: una expresión para evaluar en cada elemento. La variable @ elemento será reemplazada por el valor actual.

Ejemplos

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

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

12.2.2.12. array_get

Devuelve el valor N (0 para el primero) o el último valor -N (-1 para el último) de una matriz.

Sintaxis

array_get(array, pos)

Argumentos

  • array - un arreglo

  • pos - el índice para obtener (basado en 0)

Ejemplos

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

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

Consejo

También puede utilizar el index operator ([]) para obtener un valor de una matriz.

12.2.2.13. array_insert

Devuelve una matriz con el valor dado agregado en la posición dada.

Sintaxis

array_insert(array, pos, value)

Argumentos

  • array - un arreglo

  • pos - la posición donde agregar (basada en 0)

  • value - el valor a agregar

Ejemplos

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

12.2.2.14. array_intersect

Devuelve verdadero si existe al menos un elemento de matriz1 en matriz2.

Sintaxis

array_intersect(array1, array2)

Argumentos

  • array1 - un arreglo

  • array2 - otro arreglo

Ejemplos

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

12.2.2.15. array_last

Devuelve el último valor de una matriz.

Sintaxis

array_last(array)

Argumentos

  • array - un arreglo

Ejemplos

  • array_last(array('a','b','c')) → “c”

12.2.2.16. array_length

Devuelve el número de elementos de una matriz.

Sintaxis

array_length(array)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.17. array_majority

Devuelve los valores más comunes en una matriz.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • array - un arreglo

  • option=”all” - una cadena que especifica el manejo de los valores devueltos. Las opciones válidas son:

    • all: Por defecto, todos los valores más comunes se devuelven en una matriz.

    • any: Devuelve uno de los valores más comunes.

    • median: Devuelve la mediana de los valores más comunes. Los valores no aritméticos se ignoran.

    • real_majority: Devuelve el valor que ocurre más de la mitad del tamaño de la matriz.

Ejemplos

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

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

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

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

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

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

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

12.2.2.18. array_max

Devuelve el valor máximo de una matriz.

Sintaxis

array_max(array)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.19. array_mean

Devuelve la media de los valores aritméticos de una matriz. Los valores no numéricos de la matriz se ignoran.

Sintaxis

array_mean(array)

Argumentos

  • array - un arreglo

Ejemplos

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

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

12.2.2.20. array_median

Devuelve la mediana de los valores aritméticos de una matriz. Los valores no aritméticos de la matriz se ignoran.

Sintaxis

array_median(array)

Argumentos

  • array - un arreglo

Ejemplos

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

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

12.2.2.21. array_min

Devuelve el valor mínimo de una matriz.

Sintaxis

array_min(array)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.22. array_minority

Devuelve los valores menos comunes en una matriz.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • array - un arreglo

  • option=”all” - una cadena que especifica el manejo de los valores devueltos. Las opciones válidas son:

    • all: Por defecto, todos los valores menos comunes se devuelven en una matriz.

    • any: Devuelve uno de los valores menos comunes.

    • median: Devuelve la mediana de los valores menos comunes. Los valores no aritméticos se ignoran.

    • real_minority: Devuelve valores que ocurren en menos de la mitad del tamaño de la matriz.

Ejemplos

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

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

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

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

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

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

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

12.2.2.23. array_prepend

Devuelve una matriz con el valor dado añadido al principio.

Sintaxis

array_prepend(array, value)

Argumentos

  • array - un arreglo

  • value - el valor a agregar

Ejemplos

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

12.2.2.24. array_prioritize

Devuelve una matriz ordenada según el orden especificado en otra matriz. Los valores que están presentes en la primera matriz pero que faltan en la segunda matriz se agregarán al final del resultado.

Sintaxis

array_prioritize(array, array_prioritize)

Argumentos

  • array - un arreglo

  • array_prioritize - una matriz con valores ordenados por prioridad

Ejemplos

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

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

12.2.2.25. array_remove_all

Devuelve una matriz con todas las entradas del valor dado borradas.

Sintaxis

array_remove_all(array, value)

Argumentos

  • array - un arreglo

  • value - los valores a quitar

Ejemplos

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

12.2.2.26. array_remove_at

Devuelve una matriz con el índice dado borrado.

Sintaxis

array_remove_at(array, pos)

Argumentos

  • array - un arreglo

  • pos - a posición para quitar (basada en 0)

Ejemplos

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

12.2.2.27. array_replace

Devuelve una matriz con el valor proporcionado, la matriz o el mapa de valores reemplazado.

Valor & variante de matriz

Devuelve una matriz con el valor proporcionado o la matriz de valores reemplazada por otro valor o una matriz de valores.

Sintaxis

array_replace(array, before, after)

Argumentos

  • array - la colección de entrada

  • before - el valor o matriz de valores a reemplazar

  • after - el valor o matriz de valores para usar como reemplazo

Ejemplos

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

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

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

Map variant

Devuelve una matriz con las claves de mapa proporcionadas reemplazadas por sus valores emparejados.

Sintaxis

array_replace(array, map)

Argumentos

  • array - la colección de entrada

  • map - el mapa que contiene claves y valores

Ejemplos

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

12.2.2.28. array_reverse

Devuelve la matriz dada con los valores de la matriz en orden inverso.

Sintaxis

array_reverse(array)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.29. array_slice

Devuelve una parte de la matriz. El segmento está definido por los argumentos start_pos y end_pos.

Sintaxis

array_slice(array, start_pos, end_pos)

Argumentos

  • array - un arreglo

  • start_pos - el índice de la posición inicial del segmento (basado en 0). El índice start_pos se incluye en el segmento. Si usa un start_pos negativo, el índice se cuenta desde el final de la lista (basado en -1).

  • end_pos - el índice de la posición final del segmento (basado en 0). El índice end_pos se incluye en el segmento. Si usa un end_pos negativo, el índice se cuenta desde el final de la lista (basado en -1).

Ejemplos

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

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

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

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

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

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

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

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

12.2.2.30. array_sort

Devuelve la matriz proporcionada con sus elementos ordenados.

Sintaxis

array_sort(array, [ascending=true])

[] marca argumentos opcionales

Argumentos

  • array - un arreglo

  • ascending - establezca este parámetro en falso para ordenar la matriz en orden descendente

Ejemplos

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

12.2.2.31. array_sum

Devuelve la suma de los valores aritméticos de una matriz. Los valores no numéricos de la matriz se ignoran.

Sintaxis

array_sum(array)

Argumentos

  • array - un arreglo

Ejemplos

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

12.2.2.32. array_to_string

Concatena los elementos de la matriz en una cadena separada por un delimitador y utiliza una cadena opcional para valores vacíos.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • array - la colección de entrada

  • delimiter - el delimitador de cadena utilizado para separar elementos de matriz concatenados

  • empty_value - la cadena opcional para usar como reemplazo de coincidencias vacías (longitud cero)

Ejemplos

  • array_to_string(array('1','2','3')) → “1,2,3”

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

  • array_to_string(array('1','','3'),',','0') → “1,0,3”

12.2.2.33. generate_series

Crea una matriz que contiene una secuencia de números.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • start - primer valor de la secuencia

  • stop - valor que finaliza la secuencia una vez alcanzada

  • step - valor utilizado como incremento entre valores

Ejemplos

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

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

12.2.2.34. regexp_matches

Devuelve una matriz de todas las cadenas capturadas mediante la captura de grupos, en el orden en que los propios grupos aparecen en la expresión regular proporcionada contra una cadena.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - la cadena para capturar grupos contra la expresión regular

  • regex - la expresión regular utilizada para capturar grupos

  • empty_value - la cadena opcional para usar como reemplazo de coincidencias vacías (longitud cero)

Ejemplos

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

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

12.2.2.35. string_to_array

Divide la cadena en una matriz utilizando el delimitador proporcionado y la cadena opcional para valores vacíos.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - la cadena entrante

  • delimiter - el delimitador de cadena utilizado para dividir la cadena de entrada

  • empty_value - la cadena opcional para usar como reemplazo de coincidencias vacías (longitud cero)

Ejemplos

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

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

12.2.3. Funciones de Color

Este grupo contiene funciones para manipular colores.

12.2.3.1. color_cmyk

Devuelve una representación en forma de cadena de un color en base a sus componentes cian, magenta, amarillo y negro

Sintaxis

color_cmyk(cyan, magenta, yellow, black)

Argumentos

  • cyan - componente cian del color, como porcentaje de valor entero de 0 a 100

  • magenta - componente magenta del color, como un valor entero porcentual de 0 a 100

  • yellow - componente amarillo del color, como un valor entero porcentual de 0 a 100

  • black - componente negro del color, como un valor entero porcentual de 0 a 100

Ejemplos

  • color_cmyk(100,50,0,10) → “0,115,230”

12.2.3.2. color_cmyka

Devuelve una representación de cadena de un color basada en sus componentes cian, magenta, amarillo, negro y alfa (transparencia)

Sintaxis

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

Argumentos

  • cyan - componente cian del color, como porcentaje de valor entero de 0 a 100

  • magenta - componente magenta del color, como un valor entero porcentual de 0 a 100

  • yellow - componente amarillo del color, como un valor entero porcentual de 0 a 100

  • black - componente negro del color, como un valor entero porcentual de 0 a 100

  • alpha - componente alfa como un valor entero de 0 (completamente transparente) a 255 (opaco).

Ejemplos

  • color_cmyka(100,50,0,10,200) → “0,115,230,200”

12.2.3.3. color_grayscale_average

Aplica un filtro de escala de grises y devuelve una representación de cadena de un color proporcionado.

Sintaxis

color_grayscale_average(color)

Argumentos

  • color - una cadena color

Ejemplos

  • color_grayscale_average('255,100,50') → “135,135,135,255”

12.2.3.4. color_hsl

Devuelve una representación de cadena de un color en función de sus atributos de tono, saturación y luminosidad.

Sintaxis

color_hsl(hue, saturation, lightness)

Argumentos

  • hue - matiz del color, como un valor entero de 0 a 360

  • saturation - porcentaje de saturación del color como un valor entero de 0 a 100

  • lightness - porcentaje de luminosidad del color como un valor entero de 0 a 100

Ejemplos

  • color_hsl(100,50,70) → “166,217,140”

12.2.3.5. 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).

Sintaxis

color_hsla(hue, saturation, lightness, alpha)

Argumentos

  • hue - matiz del color, como un valor entero de 0 a 360

  • saturation - porcentaje de saturación del color como un valor entero de 0 a 100

  • lightness - porcentaje de luminosidad del color como un valor entero de 0 a 100

  • alpha - componente alfa como un valor entero de 0 (completamente transparente) a 255 (opaco).

Ejemplos

  • color_hsla(100,50,70,200) → “166,217,140,200”

12.2.3.6. color_hsv

Devuelve una representación de cadena de un color en función de sus atributos de matiz, saturación y valor.

Sintaxis

color_hsv(hue, saturation, value)

Argumentos

  • hue - matiz del color, como un valor entero de 0 a 360

  • saturation - porcentaje de saturación del color como un valor entero de 0 a 100

  • value - porcentaje de valor del color como un número entero de 0 a 100

Ejemplos

  • color_hsv(40,100,100) → “255,170,0”

12.2.3.7. color_hsva

Devuelve una representación de cadena de un color en función de sus atributos de tono, saturación, valor y alfa (transparencia).

Sintaxis

color_hsva(hue, saturation, value, alpha)

Argumentos

  • hue - matiz del color, como un valor entero de 0 a 360

  • saturation - porcentaje de saturación del color como un valor entero de 0 a 100

  • value - porcentaje de valor del color como un número entero de 0 a 100

  • alpha - componente alfa como un valor entero de 0 (completamente transparente) a 255 (opaco)

Ejemplos

  • color_hsva(40,100,100,200) → “255,170,0,200”

12.2.3.8. color_mix_rgb

Devuelve una cadena que representa un color que mezcla los valores rojo, verde, azul y alfa de dos colores proporcionados según una proporción determinada.

Sintaxis

color_mix_rgb(color1, color2, ratio)

Argumentos

  • color1 - una cadena color

  • color2 - una cadena color

  • ratio - una proporción

Ejemplos

  • color_mix_rgb('0,0,0','255,255,255',0.5) → “127,127,127,255”

12.2.3.9. color_part

Devuelve un componente específico de una cadena de colores, por ejemplo, el componente rojo o el componente alfa.

Sintaxis

color_part(color, component)

Argumentos

  • color - una cadena color

  • component - una cadena correspondiente al componente de color a devolver. Las opciones válidas son:

    • red: Componente rojo RGB (0-255)

    • green: Componente verde RGB (0-255)

    • blue: Componente azul RGB (0-255)

    • alpha: valor alfa (transparencia) (0-255)

    • hue: Tono HSV (0-360)

    • saturation: Saturación de HSV (0-100)

    • value: Valor HSV (0-100)

    • hsl_hue: Tono HSL (0-360)

    • hsl_saturation: saturación HSL (0-100)

    • lightness: luminosidad HSL (0-100)

    • cyan: CMYK componente cyan (0-100)

    • magenta: CMYK componente magenta (0-100)

    • yellow: CMYK componente amarillo (0-100)

    • black: CMYK componente negro (0-100)

Ejemplos

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

12.2.3.10. color_rgb

Devuelve una representación de cadena de un color según sus componentes rojo, verde y azul.

Sintaxis

color_rgb(red, green, blue)

Argumentos

  • red - componente rojo como un valor entero de 0 a 255

  • green - componente verde como un valor entero de 0 a 255

  • blue - componente azul como un valor entero de 0 a 255

Ejemplos

  • color_rgb(255,127,0) → “255,127,0”

12.2.3.11. color_rgba

Devuelve una representación de cadena de un color basada en sus componentes rojo, verde, azul y alfa (transparencia).

Sintaxis

color_rgba(red, green, blue, alpha)

Argumentos

  • red - componente rojo como un valor entero de 0 a 255

  • green - componente verde como un valor entero de 0 a 255

  • blue - componente azul como un valor entero de 0 a 255

  • alpha - componente alfa como un valor entero de 0 (completamente transparente) a 255 (opaco).

Ejemplos

  • color_rgba(255,127,0,200) → “255,127,0,200”

12.2.3.12. create_ramp

Devuelve una rampa de degradado de un mapa de cadenas de colores y pasos.

Sintaxis

create_ramp(map, [discrete=false])

[] marca argumentos opcionales

Argumentos

  • map - un mapa de cadenas de colores y pasos

  • discrete - establece este parámetro en verdadero para crear una rampa de color discreta

Ejemplos

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

12.2.3.13. darker

Devuelve una cadena de color más oscura (o más clara)

Sintaxis

darker(color, factor)

Argumentos

  • color - una cadena color

  • factor - un número entero correspondiente al factor de oscurecimiento:

    • si el factor es mayor que 100, esta función devuelve un color más oscuro (p. ej., establecer el factor en 200 devuelve un color que es la mitad del brillo);

    • si el factor es menor que 100, el color de retorno es más claro, pero se recomienda usar la función más claro () para este propósito;

    • si el factor es 0 o negativo, el valor de retorno no se especifica.

Ejemplos

  • darker('200,10,30', 200) → “100,5,15,255”

Otras lecturas: lighter

12.2.3.14. lighter

Devuelve una cadena de color más clara (o más oscura)

Sintaxis

lighter(color, factor)

Argumentos

  • color - una cadena color

  • factor - un número entero correspondiente al factor de iluminación:

    • si el factor es mayor que 100, esta función devuelve un color más claro (p. ej., establecer el factor en 150 devuelve un color que es 50% más brillante);

    • si el factor es menor que 100, el color de retorno es más oscuro, pero se recomienda usar la función darker() para este propósito;

    • si el factor es 0 o negativo, el valor de retorno no se especifica.

Ejemplos

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

Otras lecturas: darker

12.2.3.15. project_color

Devuelve un color del esquema de colores del proyecto.

Sintaxis

project_color(name)

Argumentos

  • name - un nombre de color

Ejemplos

  • project_color('Logo color') → “20,140,50”

Otras lecturas: setting project colors

12.2.3.16. ramp_color

Devuelve una cadena que representa un color de una rampa de color.

Variante de rampa guardada

Devuelve una cadena que representa un color de una rampa guardada

Sintaxis

ramp_color(ramp_name, value)

Argumentos

  • ramp_name - el nombre de la rampa de color como una cadena, por ejemplo, “Spectral”

  • value - la posición en la rampa para seleccionar el color como un número real entre 0 y 1

Ejemplos

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

Nota

Las rampas de colores disponibles varían entre las instalaciones de QGIS. Es posible que esta función no dé los resultados esperados si mueve su proyecto QGIS entre instalaciones.

Expression-created ramp variant

Devuelve una cadena que representa un color de una rampa creada por expresión

Sintaxis

ramp_color(ramp, value)

Argumentos

  • ramp - the color ramp

  • value - la posición en la rampa para seleccionar el color como un número real entre 0 y 1

Ejemplos

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

Otras lecturas: Estableciendo una Rampa de Color, El atajo de la rampa de color desplegable

12.2.3.17. set_color_part

Establece un componente de color específico para una cadena de colores, por ejemplo, el componente rojo o el componente alfa.

Sintaxis

set_color_part(color, componente, valor)

Argumentos

  • color - una cadena color

  • component - una cadena correspondiente al componente de color a establecer. Las opciones válidas son:

    • red: Componente rojo RGB (0-255)

    • green: Componente verde RGB (0-255)

    • blue: Componente azul RGB (0-255)

    • alpha: valor alfa (transparencia) (0-255)

    • hue: Tono HSV (0-360)

    • saturation: Saturación de HSV (0-100)

    • value: Valor HSV (0-100)

    • hsl_hue: Tono HSL (0-360)

    • hsl_saturation: saturación HSL (0-100)

    • lightness: luminosidad HSL (0-100)

    • cyan: CMYK componente cyan (0-100)

    • magenta: CMYK componente magenta (0-100)

    • yellow: CMYK componente amarillo (0-100)

    • black: CMYK componente negro (0-100)

  • value - nuevo valor para el componente de color, respetando los rangos enumerados anteriormente

Ejemplos

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

12.2.4. Funciones Condicionales

Este grupo contiene funciones para manejar comprobaciones condicionales en expresiones.

12.2.4.1. CASE

CASE se utiliza para evaluar una serie de condiciones y devolver un resultado para la primera condición cumplida. Las condiciones se evalúan secuencialmente y, si una condición es verdadera, la evaluación se detiene y se devuelve el resultado correspondiente. Si ninguna de las condiciones es verdadera, se devuelve el valor de la cláusula ELSE. Además, si no se establece ninguna cláusula ELSE y no se cumple ninguna de las condiciones, se devuelve NULL.

CASE

WHEN condición THEN resultado

[ …n ]

[ ELSE resultado ]

END

[ ] marca componentes opcionales

Argumentos

  • WHEN condición - Una expresión de condición a evaluar

  • THEN resultado - Si condición se evalúa como Verdadera entonces resultado es evaluado y regresado.

  • ELSE resultado - Si ninguna de la condiciones evaluadas es Verdadera entonces resultado es evaluado y regresado.

Ejemplos

  • CASE WHEN "name" IS NULL THEN 'None' END → Devuelve la cadena “Ninguno” si el campo «nombre» es NULL

  • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → Devuelve la cadena “Propiedad grande” si el área es mayor que 10000, “Propiedad mediana” si el área está entre 5000 y 10000 y “Propiedad pequeña” para otras

12.2.4.2. coalesce

Devuelve el primer valor no NULO de la lista de expresiones.

Esta función puede aceptar cualquier número de argumentos.

Sintaxis

coalesce(expression1, expression2, …)

Argumentos

  • expression - cualquier expresión o valor válido, independientemente del tipo.

Ejemplos

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

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

  • coalesce("fieldA", "fallbackField", 'ERROR') → valor de fieldA si no es NULL; de lo contrario, el valor de «fallbackField» o la cadena “ERROR” si ambos son NULL

12.2.4.3. if

Prueba una condición y devuelve un resultado diferente según la verificación condicional.

Sintaxis

if(condition, result_when_true, result_when_false)

Argumentos

  • condition - la condición que debe verificarse

  • result_when_true - el resultado que se devolverá cuando la condición sea verdadera u otro valor que no se convierta en falso.

  • result_when_false - el resultado que se devolverá cuando la condición sea falsa u otro valor que se convierta en falso como 0 o “”. NULL también se convertirá en falso.

Ejemplos

  • if( 1+1=2, 'Yes', 'No' ) → “Yes”

  • if( 1+1=3, 'Yes', 'No' ) → “No”

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

  • if( '', 'It is true (not empty)', 'It is false (empty)' ) → “Es falso (vacio)”

  • if( ' ', 'It is true (not empty)', 'It is false (empty)' ) → “Si no es verdadero (no vacío)”

  • if( 0, 'One', 'Zero' ) → “Zero”

  • if( 10, 'One', 'Zero' ) → “One”

12.2.4.4. nullif

Devuelve un valor NULO si valor1 es igual a valor2; de lo contrario, devuelve value1. Esto se puede usar para sustituir valores condicionalmente por NULL.

Sintaxis

nullif(value1, value2)

Argumentos

  • value1 - El valor que debe usarse o sustituirse por NULL.

  • value2 - El valor de control que activará la sustitución de NULL.

Ejemplos

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

  • nullif('text', '(none)') → “text”

  • nullif("name", '') → NULL, si el nombre es una cadena vacía (o ya es NULL), el nombre en cualquier otro caso.

12.2.4.5. regexp_match

Devuelve la primera posición coincidente que coincide con una expresión regular dentro de una cadena Unicode, o 0 si no se encuentra la subcadena.

Sintaxis

regexp_match(input_string, regex)

Argumentos

  • input_string - la cadena para probar con la expresión regular

  • regex - La expresión regular con la que realizar la prueba. Los caracteres de barra invertida deben tener doble escape (e.g., «\\s» para que coincida con un carácter de espacio en blanco o «\\b» para que coincida con el límite de una palabra).

Ejemplos

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

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

12.2.4.6. try

Prueba una expresión y devuelve su valor si no tiene errores. Si la expresión devuelve un error, se devolverá un valor alternativo cuando se proporcione; de lo contrario, la función devolverá NULL.

Sintaxis

try(expression, [alternative])

[] marca argumentos opcionales

Argumentos

  • expression - la expresión que debería ejecutarse

  • alternative - el resultado que se devolverá si la expresión devuelve un error.

Ejemplos

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

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

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

12.2.5. Funciones de conversión

Este grupo contiene funciones para convertir un tipo de datos a otro (por ejemplo, cadena de/a entero, binario de/a cadena, cadena a fecha, …).

12.2.5.1. from_base64

Decodifica una cadena en la codificación Base64 en un valor binario.

Sintaxis

from_base64(string)

Argumentos

  • string - una cadena a decodificar

Ejemplos

  • from_base64('UUdJUw==') → “QGIS”

12.2.5.2. hash

Crea un hash a partir de una cadena con un método determinado. Un byte (8 bits) se representa con dos “”dígitos”” hexadecimales, por lo que “md4” (16 bytes) produce una cadena hexadecimal de 16*2 = 32 caracteres y “keccak_512” (64 bytes) produce un 64 * 2 = Cadena hexadecimal de 128 caracteres.

Sintaxis

hash(string, method)

Argumentos

  • string - la cadena para hacer hash

  • method - El método hash entre “md4”, “md5”, “sha1”, “sha224”, “sha384”, “sha512”, “sha3_224”, “sha3_256”, “sha3_384”, “sha3_512”, “keccak_224”, “keccak_256”, “keccak_384”, “keccak_512”

Ejemplos

  • hash('QGIS', 'md4') → “c0fc71c241cdebb6e888cbac0e2b68eb”

  • hash('QGIS', 'md5') → “57470aaa9e22adaefac7f5f342f1c6da”

  • hash('QGIS', 'sha1') → “f87cfb2b74cdd5867db913237024e7001e62b114”

  • hash('QGIS', 'sha224') → “4093a619ada631c770f44bc643ead18fb393b93d6a6af1861fcfece0”

  • hash('QGIS', 'sha256') → “eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309”

  • hash('QGIS', 'sha384') → “91c1de038cc3d09fdd512e99f9dd9922efadc39ed21d3922e69a4305cc25506033aee388e554b78714c8734f9cd7e610”

  • hash('QGIS', 'sha512') → “c2c092f2ab743bf8edbeb6d028a745f30fc720408465ed369421f0a4e20fa5e27f0c90ad72d3f1d836eaa5d25cd39897d4cf77e19984668ef58da6e3159f18ac”

  • hash('QGIS', 'sha3_224') → “467f49a5039e7280d5d42fd433e80d203439e338eaabd701f0d6c17d”

  • hash('QGIS', 'sha3_256') → “540f7354b6b8a6e735f2845250f15f4f3ba4f666c55574d9e9354575de0e980f”

  • hash('QGIS', 'sha3_384') → “96052da1e77679e9a65f60d7ead961b287977823144786386eb43647b0901fd8516fa6f1b9d243fb3f28775e6dde6107”

  • hash('QGIS', 'sha3_512') → “900d079dc69761da113980253aa8ac0414a8bd6d09879a916228f8743707c4758051c98445d6b8945ec854ff90655005e02aceb0a2ffc6a0ebf818745d665349”

  • hash('QGIS', 'keccak_224') → “5b0ce6acef8b0a121d4ac4f3eaa8503c799ad4e26a3392d1fb201478”

  • hash('QGIS', 'keccak_256') → “991c520aa6815392de24087f61b2ae0fd56abbfeee4a8ca019c1011d327c577e”

  • hash('QGIS', 'keccak_384') → “c57a3aed9d856fa04e5eeee9b62b6e027cca81ba574116d3cc1f0d48a1ef9e5886ff463ea8d0fac772ee473bf92f810d”

12.2.5.3. md5

Crea un hash md5 a partir de una cadena.

Sintaxis

md5(string)

Argumentos

  • string - la cadena para hacer hash

Ejemplos

  • md5('QGIS') → “57470aaa9e22adaefac7f5f342f1c6da”

12.2.5.4. sha256

Crea un hash sha256 a partir de una cadena.

Sintaxis

sha256(string)

Argumentos

  • string - la cadena para hacer hash

Ejemplos

  • sha256('QGIS') → “eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309”

12.2.5.5. to_base64

Codifica un valor binario en una cadena, utilizando la codificación Base64.

Sintaxis

to_base64(value)

Argumentos

  • value - el valor binario a codificar

Ejemplos

  • to_base64('QGIS') → “UUdJUw==”

12.2.5.6. to_date

Convierte una cadena en un objeto de fecha. Se puede proporcionar una cadena de formato opcional para analizar la cadena; ver QDate::fromString o la documentación de la función format_date para obtener documentación adicional sobre el formato. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - cadena representante de un valor de dato

  • format - formato usado para convertir la cadena a fecha

  • language - language (lowercase, two- or three-letter, ISO 639 language code) utilizado para convertir la cadena en una fecha. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, si la configuración regional actual usa el nombre “junio” para el sexto mes; de lo contrario, se produce un error

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

12.2.5.7. to_datetime

Convierte una cadena en un objeto de fecha y hora. Se puede proporcionar una cadena de formato opcional para analizar la cadena; ver QDate::fromString, QTime::fromString o la documentación de la función format_date para obtener documentación adicional sobre el formato. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - cadena que representa un valor de fecha y hora

  • format - formato utilizado para convertir la cadena en una fecha y hora

  • language - language (lowercase, two- or three-letter, ISO 639 language code) utilizado para convertir la cadena en una fecha y hora. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

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

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, si la configuración regional actual usa el nombre “junio” para el sexto mes; de lo contrario, se produce un error

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

12.2.5.8. to_decimal

Convierte una coordenada en grados, minutos, segundos a su equivalente decimal.

Sintaxis

to_decimal(value)

Argumentos

  • value - Una cadena de grados, minutos y segundos.

Ejemplos

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

12.2.5.9. to_dm

Convierte una coordenada a grados, minutos.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • coordinate - Un valor de latitud o longitud.

  • axis - El eje de la coordenada. Ya sea “x” o “y”.

  • precision - Número de decimales.

  • formatting - Designa el tipo de formato. Los valores aceptables son NULL (predeterminado), “alineado” o “sufijo”.

Ejemplos

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

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

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

12.2.5.10. to_dms

Convierte una coordenada a grados, minutos, segundos.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • coordinate - Un valor de latitud o longitud.

  • axis - El eje de la coordenada. Ya sea “x” o “y”.

  • precision - Número de decimales.

  • formatting - Designa el tipo de formato. Los valores aceptables son NULL (predeterminado), “alineado” o “sufijo”.

Ejemplos

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

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

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

12.2.5.11. to_int

Convierte una cadena en un número entero. No se devuelve nada si un valor no se puede convertir a entero (p.ej. “123asd” es inválido).

Sintaxis

to_int(string)

Argumentos

  • string - cadena a convertir a número entero

Ejemplos

  • to_int('123') → 123

12.2.5.12. to_interval

Convierte una cadena en un tipo de intervalo. Puede usarse para tomar días, horas, meses, etc. de una fecha.

Sintaxis

to_interval(string)

Argumentos

  • string - una cadena que representa un intervalo. Los formatos permitidos incluyen {n} días {n} horas {n} meses.

Ejemplos

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

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

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

12.2.5.13. to_real

Convierte una cadena en un número real. No se devuelve nada si un valor no se puede convertir a real (por ejemplo, “123.56asd” no es válido). Los números se redondean después de guardar los cambios si la precisión es menor que el resultado de la conversión.

Sintaxis

to_real(string)

Argumentos

  • string - cadena para convertir a número real

Ejemplos

  • to_real('123.45') → 123.45

12.2.5.14. to_string

Convierte un número en cadena.

Sintaxis

to_string(number)

Argumentos

  • number - Entero o valor real. El número a convertir a cadena.

Ejemplos

  • to_string(123) → “123”

12.2.5.15. to_time

Convierte una cadena en un objeto de tiempo. Se puede proporcionar una cadena de formato opcional para analizar la cadena; ver QTime::fromString para obtener documentación adicional sobre el formato.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - cadena representando un valor temporal

  • format - formato utilizado para convertir la cadena en una hora

  • language - idioma (minúsculas, dos o tres letras, código de idioma ISO 639) utilizado para convertir la cadena en una hora

Ejemplos

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

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

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

12.2.6. Funciones personalizadas

Este grupo contiene funciones creadas por el usuario. Ver Editor de Funciones para mas detalles.

12.2.7. Funciones de Fecha y Hora

Este grupo contiene funciones para manejar datos de fecha y hora. Este grupo comparte varias funciones con las Funciones de conversión (to_date, to_time, to_datetime, to_interval) y grupos Funciones de cadena (format_date).

Nota

Almacenamiento de fecha, fecha y hora e intervalos en campos

La capacidad de almacenar valores de fecha, hora y fecha y hora directamente en los campos depende del proveedor de la fuente de datos (por ejemplo, Shapefile acepta el formato fecha, pero no el formato fecha y hora o hora). Las siguientes son algunas sugerencias para superar esta limitación:

  • fecha, fecha y hora hora pueden ser convertidos y alamcenados en campos de tipo texto usando la función format_date().

  • Intervalos pueden ser almacenados en tipo entero o decimaldespues de usar una de las funciones de extracción (p.ej., day() para obtener el intervalo expresado en días)

12.2.7.1. age

Devuelve la diferencia entre dos fechas o fecha-hora.

La diferencia se devuelve como un Intervalo y debe usarse con una de las siguientes funciones para extraer información útil:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Sintaxis

age(datetime1, datetime2)

Argumentos

  • datetime1 - una cadena, fecha o fecha y hora que representa la fecha posterior

  • datetime2 - una cadena, fecha o fecha y hora que representa la fecha anterior

Ejemplos

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

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

12.2.7.2. datetime_from_epoch

Devuelve una fecha y hora cuya fecha y hora son el número de milisegundos, ms, que han pasado desde 1970-01-01T00:00:00.000, Hora universal coordinada (Qt.UTC) y convertida a Qt.LocalTime.

Sintaxis

datetime_from_epoch(int)

Argumentos

  • int - número (milisegundos)

Ejemplos

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

12.2.7.3. day

Extrae el día de una fecha o el número de días de un intervalo.

Variante fecha

Extrae el día de una fecha o fecha-hora.

Sintaxis

day(date)

Argumentos

  • date - un valor de fecha o fecha-hora

Ejemplos

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

Variante intervalo

Calcula la longitud en días de un intervalo.

Sintaxis

day(interval)

Argumentos

  • interval - valor del intervalo a devolver con el número de días

Ejemplos

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

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

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

12.2.7.4. day_of_week

Devuelve el día de la semana para una fecha o fecha y hora especificadas. El valor devuelto va de 0 a 6, donde 0 corresponde a un domingo y 6 a un sábado.

Sintaxis

day_of_week(date)

Argumentos

  • date - valor de fecha o fecha-hora

Ejemplos

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

12.2.7.5. epoch

Devuelve el intervalo en milisegundos entre la época de Unix y un valor de fecha dado.

Sintaxis

epoch(date)

Argumentos

  • date - un valor de fecha o fecha-hora

Ejemplos

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

12.2.7.6. format_date

Formatea un tipo de fecha o una cadena en un formato de cadena personalizado. Utiliza cadenas de formato de fecha/hora Qt. Ver QDateTime::toString.

Sintaxis

format_date(datetime, format, [language])

[] marca argumentos opcionales

Argumentos

  • datetime - valor de fecha, hora o fecha y hora

  • format - Plantilla de cadena utilizada para formatear la cadena.

    Expresión

    Salida

    d

    el día como número sin un cero inicial (1 a 31)

    dd

    el día como número con un cero inicial (01 a 31)

    ddd

    el nombre abreviado del día localizado (p. ej., de “Mon” a “Sun”)

    dddd

    el nombre largo del día localizado (por ejemplo, “Moday” a “Sunday”)

    M

    El mes como número sin cero inicial (1-12)

    MM

    el mes como número con un cero por delante (01-12)

    MMM

    el nombre de mes abreviado localizado (e.g. “Jan” a “Dec”)

    MMMM

    el nombre de mes largo localizado (e.g. “January” a “December”)

    yy

    el año como número de dos dígitos (00-99)

    yyyy

    el año como número de cuatro dígitos

    Estas expresiones pueden ser usadas para la parte temporal del formato cadena:

    Expresión

    Salida

    h

    la hora sin un cero a la izquierda (0 a 23 o 1 a 12 si se muestra AM / PM)

    hh

    la hora con un cero a la izquierda (00 a 23 o 01 a 12 si se muestra AM / PM)

    H

    la hora sin un cero a la izquierda (0 a 23, incluso con pantalla AM / PM)

    HH

    la hora con un cero a la izquierda (00 a 23, incluso con pantalla AM / PM)

    m

    el minuto sin un cero a la izquierda (0 a 59)

    mm

    el minuto con un cero a la izquierda (00 a 59)

    s

    el segundo sin un cero a la izquierda (0 a 59)

    ss

    el segundo con un cero a la izquierda (00 a 59)

    z

    los milisegundos sin ceros finales (0 a 999)

    zzz

    los milisegundos con ceros finales (000 a 999)

    AP o A

    interpreta como una hora AM/PM. AP deber ser “AM” o “PM”.

    ap o a

    Interprete como hora AM / PM. ap debe ser “am” o “pm”.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) se utiliza para dar formato a la fecha en una cadena personalizada. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

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

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

  • format_date('2012-05-15','dddd') → “Tuesday”, si la configuración regional actual es una variante en inglés

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

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

12.2.7.7. hour

Extrae la parte de la hora de una fecha y hora u hora, o el número de horas de un intervalo.

Time variant

Extrae la parte de la hora de una hora o una fecha y hora.

Sintaxis

hour(datetime)

Argumentos

  • datetime: un valor de hora o fecha y hora

Ejemplos

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

Variante intervalo

Calcula la duración en horas de un intervalo.

Sintaxis

hour(interval)

Argumentos

  • interval - valor de intervalor para retornar número de horas desde

Ejemplos

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

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

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

12.2.7.8. make_date

Crea un valor fecha a partir de números año, mes y día.

Sintaxis

make_date(year, month, day)

Argumentos

  • year - Número de año. Los años 1 a 99 se interpretan como están. El año 0 no es válido.

  • month - Número de mes, donde 1 = enero

  • day - Número de día, comenzando con 1 para el primer día del mes

Ejemplos

  • make_date(2020,5,4) → valor fecha 2020-05-04

12.2.7.9. make_datetime

Crea un valor de fecha y hora a partir de números de año, mes, día, hora, minuto y segundo.

Sintaxis

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

Argumentos

  • year - Número de año. Los años 1 a 99 se interpretan como están. El año 0 no es válido.

  • month - Número de mes, donde 1 = enero

  • day - Número de día, comenzando con 1 para el primer día del mes

  • hour - número horario

  • minute - Minutos

  • second - Segundos (los valores fraccionarios incluyen milisegundos)

Ejemplos

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

12.2.7.10. make_interval

Crea un valor de intervalo a partir de valores de año, mes, semanas, días, horas, minutos y segundos.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • years - Número de años (supone una duración anual de 365,25 días).

  • months - Número de meses (supone una duración de mes de 30 días)

  • weeks - Número de semanas

  • days - Número de días

  • hours - Número de horas

  • minutes - Número de minutos

  • seconds - Número de segundos

Ejemplos

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

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

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

12.2.7.11. make_time

Crea un valore temporal a partir de cifras de hora, minuto y segundo.

Sintaxis

make_time(hour, minute, second)

Argumentos

  • hour - número horario

  • minute - Minutos

  • second - Segundos (los valores fraccionarios incluyen milisegundos)

Ejemplos

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

12.2.7.12. minute

Extrae la parte de minutos de una fecha y hora u hora, o el número de minutos de un intervalo.

Time variant

Extrae la parte de los minutos de una hora o una fecha y hora.

Sintaxis

minute(datetime)

Argumentos

  • datetime: un valor de hora o fecha y hora

Ejemplos

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

Variante intervalo

Calcula la duración en minutos de un intervalo.

Sintaxis

minute(interval)

Argumentos

  • interval - valor de intervalo para devolver el número de minutos de

Ejemplos

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

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

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

12.2.7.13. month

Extrae la parte del mes de una fecha o el número de meses de un intervalo.

Variante fecha

Extrae la parte del mes de una fecha o una fecha y hora.

Sintaxis

month(date)

Argumentos

  • date - un valor de fecha o fecha-hora

Ejemplos

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

Variante intervalo

Calcula la duración en meses de un intervalo.

Sintaxis

month(interval)

Argumentos

  • interval - valor de intervalo del cual devolver su número de meses

Ejemplos

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

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

12.2.7.14. now

Devuelve la fecha y hora actuales. La función es estática y devolverá resultados consistentes durante la evaluación. La hora devuelta es la hora en que se prepara la expresión.

Sintaxis

now()

Ejemplos

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

12.2.7.15. second

Extrae la parte de segundos de una fecha y hora u hora, o el número de segundos de un intervalo.

Time variant

Extrae la parte de los segundos de una hora o una fecha y hora.

Sintaxis

second(datetime)

Argumentos

  • datetime: un valor de hora o fecha y hora

Ejemplos

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

Variante intervalo

Calcula la longitud en segundos de un intervalo.

Sintaxis

second(interval)

Argumentos

  • interval - valor de intervalo del cual devolver el número de segundos

Ejemplos

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

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

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

12.2.7.16. to_date

Convierte una cadena en un objeto de fecha. Se puede proporcionar una cadena de formato opcional para analizar la cadena; ver QDate::fromString o la documentación de la función format_date para obtener documentación adicional sobre el formato. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - cadena representante de un valor de dato

  • format - formato usado para convertir la cadena a fecha

  • language - language (lowercase, two- or three-letter, ISO 639 language code) utilizado para convertir la cadena en una fecha. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, si la configuración regional actual usa el nombre “junio” para el sexto mes; de lo contrario, se produce un error

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

12.2.7.17. to_datetime

Convierte una cadena en un objeto de fecha y hora. Se puede proporcionar una cadena de formato opcional para analizar la cadena; ver QDate::fromString, QTime::fromString o la documentación de la función format_date para obtener documentación adicional sobre el formato. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - cadena que representa un valor de fecha y hora

  • format - formato utilizado para convertir la cadena en una fecha y hora

  • language - language (lowercase, two- or three-letter, ISO 639 language code) utilizado para convertir la cadena en una fecha y hora. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

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

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, si la configuración regional actual usa el nombre “junio” para el sexto mes; de lo contrario, se produce un error

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

12.2.7.18. to_interval

Convierte una cadena en un tipo de intervalo. Puede usarse para tomar días, horas, meses, etc. de una fecha.

Sintaxis

to_interval(string)

Argumentos

  • string - una cadena que representa un intervalo. Los formatos permitidos incluyen {n} días {n} horas {n} meses.

Ejemplos

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

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

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

12.2.7.19. to_time

Convierte una cadena en un objeto de tiempo. Se puede proporcionar una cadena de formato opcional para analizar la cadena; ver QTime::fromString para obtener documentación adicional sobre el formato.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • string - cadena representando un valor temporal

  • format - formato utilizado para convertir la cadena en una hora

  • language - idioma (minúsculas, dos o tres letras, código de idioma ISO 639) utilizado para convertir la cadena en una hora

Ejemplos

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

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

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

12.2.7.20. week

Extrae el número de semana de una fecha o el número de semanas de un intervalo.

Variante fecha

Extrae el número de semana de una fecha o fecha y hora..

Sintaxis

week(date)

Argumentos

  • date - un valor de fecha o fecha-hora

Ejemplos

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

Variante intervalo

Calcula la longitud en semanas de un inervalo.

Sintaxis

week(interval)

Argumentos

  • interval - valor de intervalo del cual devolver su número de meses

Ejemplos

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

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

12.2.7.21. year

Extrae la parte del año de una fecha o el número de años de un intervalo.

Variante fecha

Extrae la parte del año de una fecha o una fecha y hora.

Sintaxis

year(date)

Argumentos

  • date - un valor de fecha o fecha-hora

Ejemplos

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

Variante intervalo

Calcula la duración en años de un intervalo.

Sintaxis

year(interval)

Argumentos

  • interval - valor de intervalo del cual devolver el número de años

Ejemplos

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

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

Algún ejemplo:

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

12.2.8. Campos y Valores

Contiene una lista de campos de la capa y valores especiales.

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.

12.2.8.1. NULL

Equivale a un valor NULL.

Sintaxis

NULL

Ejemplos

  • NULL → un valor NULO

Nota

Para probar NULL use una expresión IS NULL o IS NOT NULL.

12.2.9. Funciones de Archivos y Rutas

Este grupo contiene funciones que manipulan nombres de archivos y rutas.

12.2.9.1. base_file_name

Devuelve el nombre base de un archivo sin el directorio o el sufijo del archivo.

Sintaxis

base_file_name(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

12.2.9.2. exif

Recupera valores de etiquetas exif de un archivo de imagen.

Sintaxis

exif(path, [tag])

[] marca argumentos opcionales

Argumentos

  • path - Una ruta de archivo de imagen.

  • tag - La etiqueta a devolver. Si está vacío, se devolverá un mapa con todos los valores de etiquetas exif.

Ejemplos

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

12.2.9.3. file_exists

Devuelve verdadero si una ruta de archivo existe.

Sintaxis

file_exists(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

12.2.9.4. file_name

Devuelve el nombre de un archivo (incluyendo la extensión del archivo), excluyendo el directorio.

Sintaxis

file_name(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

12.2.9.5. file_path

Devuelve el componente de directorio de una ruta de archivo. Esto no incluye el nombre del archivo.

Sintaxis

file_path(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

12.2.9.6. file_size

Devuelve el tamaño (en bytes) de un archivo.

Sintaxis

file_size(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

12.2.9.7. file_suffix

Devuelve el sufijo (extensión) del archivo de una ruta de archivo.

Sintaxis

file_suffix(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

12.2.9.8. is_directory

Devuelve verdadero si una ruta corresponde a un directorio.

Sintaxis

is_directory(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

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

12.2.9.9. is_file

Devuelve verdadero si una ruta corresponde a un archivo.

Sintaxis

is_file(path)

Argumentos

  • path - una ruta de archivo

Ejemplos

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

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

12.2.10. Funciones de formulario

Este grupo contiene funciones que operan exclusivamente en el contexto de formulario de atributos. Por ejemplo, en la configuración de controles de campo.

12.2.10.1. current_parent_value

Solo se puede usar en un contexto de formulario incrustado, esta función devuelve el valor actual no guardado de un campo en el formulario principal que se está editando actualmente. Esto diferirá de los valores de atributo reales de la entidad principal para las entidades que se están editando actualmente o que aún no se han agregado a una capa principal. Cuando se usa en una expresión de filtro de widget de relación de valor, esta función debe estar envuelta en un “coalesce()” que puede recuperar la característica principal real de la capa cuando el formulario no se usa en un contexto incrustado.

Sintaxis

current_parent_value(field_name)

Argumentos

  • field_name - un nombre de campo en el formulario principal actual

Ejemplos

  • current_parent_value( 'FIELD_NAME' ) → El valor actual de un campo “FIELD_NAME” en el formulario principal.

12.2.10.2. current_value

Devuelve el valor actual, no guardado, de un campo en el formulario o fila de la tabla que se está editando actualmente. Esto diferirá de los valores de atributo reales de la entidad para las entidades que se están editando actualmente o que aún no se han agregado a una capa.

Sintaxis

current_value(field_name)

Argumentos

  • field_name - un nombre de campo en el formulario actual o fila de la tabla

Ejemplos

  • current_value( 'FIELD_NAME' ) → El valor actual del campo “FIELD_NAME”.

12.2.11. Funciones Concordancia aproximada

Este grupo contiene funciones para comparaciones difusas entre valores.

12.2.11.1. hamming_distance

Devuelve la distancia Hamming entre dos cadenas. Esto equivale al número de caracteres en las posiciones correspondientes dentro de las cadenas de entrada donde los caracteres son diferentes. Las cadenas de entrada deben tener la misma longitud y la comparación distingue entre mayúsculas y minúsculas.

Sintaxis

hamming_distance(string1, string2)

Argumentos

  • string1 - una cadena

  • string2 - una cadena

Ejemplos

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

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

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

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

12.2.11.2. levenshtein

Devuelve la distancia de edición de Levenshtein entre dos cadenas. Esto equivale al número mínimo de ediciones de caracteres (inserciones, eliminaciones o sustituciones) necesarias para cambiar una cadena a otra.

La distancia de Levenshtein es una medida de la similitud entre dos cadenas. Las distancias más pequeñas significan que las cadenas son más similares y las distancias más grandes indican cadenas más diferentes. La distancia distingue entre mayúsculas y minúsculas.

Sintaxis

levenshtein(string1, string2)

Argumentos

  • string1 - una cadena

  • string2 - una cadena

Ejemplos

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

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

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

12.2.11.3. longest_common_substring

Devuelve la subcadena común más larga entre dos cadenas. Esta subcadena es la cadena más larga que es una subcadena de las dos cadenas de entrada. Por ejemplo, la subcadena común más larga de «ABABC» y «BABCA» es «BABC». La subcadena distingue entre mayúsculas y minúsculas.

Sintaxis

longest_common_substring(string1, string2)

Argumentos

  • string1 - una cadena

  • string2 - una cadena

Ejemplos

  • longest_common_substring('ABABC','BABCA') → “BABC”

  • longest_common_substring('abcDeF','abcdef') → “abc”

  • longest_common_substring(upper('abcDeF'),upper('abcdex')) → “ABCDE”

12.2.11.4. soundex

Devuelve la representación Soundex de una cadena. Soundex es un algoritmo de coincidencia fonética, por lo que las cadenas con sonidos similares deben estar representadas por el mismo código Soundex.

Sintaxis

soundex(string)

Argumentos

  • string - una cadena

Ejemplos

  • soundex('robert') → “R163”

  • soundex('rupert') → “R163”

  • soundex('rubin') → “R150”

12.2.12. Funciones Generales

Este grupo contiene un surtido de funciones generales.

12.2.12.1. env

Obtiene una variable de entorno y devuelve su contenido como una cadena. Si no se encuentra la variable, se devolverá NULL. Esto es útil para inyectar una configuración específica del sistema, como letras de unidad o prefijos de ruta. La definición de las variables de entorno depende del sistema operativo; consulte con el administrador del sistema o con la documentación del sistema operativo cómo se puede configurar.

Sintaxis

env(name)

Argumentos

  • name - El nombre de la variable de entorno que se debe recuperar.

Ejemplos

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

  • env( 'MY_OWN_PREFIX_VAR' ) → “Z:”

  • env( 'I_DO_NOT_EXIST' ) → NULL

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

Sintaxis

eval(expression)

Argumentos

  • expression - una cadena de expresión

Ejemplos

  • eval('\'nice\'') → “nice”

  • eval(@expression_var) → [cualquiera que sea el resultado de evaluar @expression_var debe ser…]

12.2.12.3. eval_template

Evalúa una plantilla que se pasa en una cadena. Útil para expandir parámetros dinámicos pasados como variables de contexto o campos.

Sintaxis

eval_template(template)

Argumentos

  • template - una cadena plantilla

Ejemplos

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

12.2.12.4. is_layer_visible

Devuelve verdadero si una capa especificada está visible.

Sintaxis

is_layer_visible(layer)

Argumentos

  • layer - una cadena, que representa un nombre capa o ID de capa

Ejemplos

  • is_layer_visible('baseraster') → True

12.2.12.5. mime_type

Devuelve el tipo mime de los datos binarios.

Sintaxis

mime_type(bytes)

Argumentos

  • bytes - los datos binarios

Ejemplos

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

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

12.2.12.6. var

Devuelve el valor almacenado dentro de una variable especificada.

Sintaxis

var(name)

Argumentos

  • name - un nombre de variable

Ejemplos

  • var('qgis_version') → “2.12”

Otras lecturas: Lista de variables predeterminadas

12.2.12.7. with_variable

Esta función establece una variable para cualquier código de expresión que se proporcionará como 3er argumento. Esto solo es útil para expresiones complicadas, donde el mismo valor calculado debe usarse en diferentes lugares.

Sintaxis

with_variable(name, value, expression)

Argumentos

  • name - el nombre de la variable a establecer

  • value - el valor a establecer

  • expression - la expresión para la cual la variable estará disponible

Ejemplos

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

12.2.13. Funciones de Geometría

Este grupo contiene funciones que operan en objetos geométricos. (p.ej. buffer, transform, $area).

12.2.13.1. affine_transform

Devuelve la geometría después de una transformación afín. Los cálculos están en el Sistema de Referencia Espacial de esta geometría. Las operaciones se realizan en un orden de escala, rotación y traslación. Si hay un desplazamiento Z o M pero la coordenada no está presente en la geometría, se agregará.

Sintaxis

affine_transform(geometry, delta_x, delta_y, rotation_z, scale_x, scale_y, [delta_z=0], [delta_m=0], [scale_z=1], [scale_m=1])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría

  • delta_x - traslación del eje x

  • delta_y - traslación del eje y

  • rotation_z - rotación alrededor del eje z en grados en sentido antihorario

  • scale_x - factor de escala del eje x

  • scale_y - factor de escala del eje y

  • delta_z - traslación del eje z

  • delta_m - traslación del eje m

  • scale_z - factor de escala del eje z

  • scale_m - factor de escala del eje m

Ejemplos

  • geom_to_wkt(affine_transform(geom_from_wkt('LINESTRING(1 1, 2 2)'), 2, 2, 0, 1, 1)) → “LineString (3 3, 4 4)”

  • geom_to_wkt(affine_transform(geom_from_wkt('POLYGON((0 0, 0 3, 2 2, 0 0))'), 0, 0, -90, 1, 2)) → “Polygon ((0 0, 6 0, 4 -2, 0 0))”

  • geom_to_wkt(affine_transform(geom_from_wkt('POINT(3 1)'), 0, 0, 0, 1, 1, 5, 0)) → “PointZ (3 1 5)”

12.2.13.2. angle_at_vertex

Devuelve el ángulo de la bisectriz(ángulo medio) de la geometría para un vértice especificado en una geometría de cadena lineal. Los ángulos están en grados en el sentido de las agujas del reloj desde el norte.

Sintaxis

angle_at_vertex(geometry, vertex)

Argumentos

  • geometry - una geometría de cadena lineal

  • vertex - índice de vértice, comenzando desde 0; si el valor es negativo, el índice de vértice seleccionado será su recuento total menos el valor absoluto

Ejemplos

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

12.2.13.3. $area

Devuelve el área de la entidad actual. El área calculada por esta función respeta tanto la configuración del elipsoide del proyecto actual como la configuración de la unidad de área. Por ejemplo, si se ha configurado un elipsoide para el proyecto, el área calculada será elipsoidal, y si no se establece ningún elipsoide, el área calculada será planimétrica.

Sintaxis

$area

Ejemplos

  • $area → 42

12.2.13.4. area

Devuelve el área de un objeto poligonal de geometría. Los cálculos son siempre planimétricos en el Sistema de referencia espacial (SRS) de esta geometría, y las unidades del área devuelta coincidirán con las unidades del SRS. Esto difiere de los cálculos realizados por la función $ area, que realizará cálculos elipsoidales basados en la configuración de unidad de área y elipsoide del proyecto.

Sintaxis

area(geometry)

Argumentos

  • geometry - objeto poligonal de geometría

Ejemplos

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

12.2.13.5. azimut

Devuelve el acimut basado en el norte como el ángulo en radianes medido en el sentido de las agujas del reloj desde la vertical en point_a hasta point_b.

Sintaxis

azimuth(point_a, point_b)

Argumentos

  • point_a - geometría de punto

  • point_b - geometría de punto

Ejemplos

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

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

12.2.13.6. boundary

Devuelve el cierre del límite combinatorio de la geometría (es decir, el límite topológico de la geometría). Por ejemplo, una geometría de polígono tendrá un límite que consta de las cadenas de líneas para cada anillo en el polígono. Algunos tipos de geometría no tienen un límite definido, por ejemplo, puntos o colecciones de geometría, y devolverán NULL.

Sintaxis

boundary(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “LineString(1 1,0 0,-1 1,1 1)”

  • geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → “MultiPoint ((1 1),(-1 1))”

Otras lecturas: algoritmo Contorno

12.2.13.7. bounds

Devuelve una geometría que representa el cuadro delimitador de una geometría de entrada. Los cálculos están en el Sistema de Referencia eSpacial de esta geometría.

Sintaxis

bounds(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • bounds($geometry) → cuadro delimitador de la geometría de la entidad actual

  • geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))”

../../../_images/bounding_box.png

Figura 12.4 Las líneas negras representan los cuadros delimitadores de cada unidad poligonal

Otras lecturas: algoritmo Recuadros delimitadores

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

Sintaxis

bounds_height(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • bounds_height($geometry) → altura del cuadro delimitador de la geometría de la entidad actual

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

12.2.13.9. bounds_width

Devuelve el ancho del cuadro delimitador de una geometría. Los cálculos están en el Sistema de Referencia eSpacial de esta geometría.

Sintaxis

bounds_width(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • bounds_width($geometry) → ancho del cuadro delimitador de la geometría de la entidad actual

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

12.2.13.10. 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 están en el Sistema de referencia espacial de esta geometría.

Sintaxis

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

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría

  • distance - distancia de búfer en unidades de capa

  • segments - número de segmentos que se utilizarán para representar un cuarto de círculo cuando se utilice un estilo de unión redonda. Un número mayor da como resultado un búfer más suave con más nodos.

  • cap - estilo de tapa final para búfer. Los valores válidos son “round”, “flat” or “square”

  • join - estilo de unión para el búfer. Los valores válidos son “round”, “bevel” or “miter”.

  • miter_limit - límite de distancia de inglete, para usar cuando el estilo de unión se establece en “miter”

Ejemplos

  • buffer($geometry, 10.5) → polígono de la geometría de la entidad actual almacenada con búfer de 10.5 unidades

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

Figura 12.5 Buffer (en amarillo) de puntos, línea y polígono

Otras lecturas: algoritmo Buffer

12.2.13.11. buffer_by_m

Crea una zona de influencia a lo largo de una geometría de línea donde el diámetro del búfer varía según los valores m en los vértices de la línea.

Sintaxis

buffer_by_m(geometry, [segments=8])

[] marca argumentos opcionales

Argumentos

  • geometry - geometría de entrada. Debe ser una geometría de (múltiples) líneas con valores m.

  • segments - número de segmentos para aproximar las curvas de un cuarto de círculo en el búfer.

Ejemplos

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → Un búfer de ancho variable que comienza con un diámetro de 0.5 y termina con un diámetro de 0.2 a lo largo de la geometría de la cadena lineal.

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

Figura 12.6 Elementos de línea de zona de influencia que utilizan el valor m en los vértices

Otras lecturas: algoritmo Ancura de buffer variable (por valor de M)

12.2.13.12. centroid

Devuelve el centro geométrico de una geometría.

Sintaxis

centroid(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • centroid($geometry) → una geometrías de punto

Otras lecturas: algoritmo Centroides

12.2.13.13. close_line

Devuelve una cadena de línea cerrada de la cadena de línea de entrada agregando el primer punto al final de la línea, si aún no está cerrada. Si la geometría no es una cadena de líneas o una cadena de varias líneas, el resultado será NULL.

Sintaxis

close_line(geometry)

Argumentos

  • geometry - una geometría de cadena lineal

Ejemplos

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → “LineString (0 0, 1 0, 1 1, 0 0)”

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → “LineString (0 0, 1 0, 1 1, 0 0)”

12.2.13.14. closest_point

Devuelve el punto de geometría1 más cercano a geometría2.

Sintaxis

closest_point(geometry1, geometry2)

Argumentos

  • geometry1 - geometría para la que encontrar el punto más cercano de

  • geometry2 - geometría para encontrar el punto más cercano a

Ejemplos

  • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → “Point(73.0769 115.384)”

12.2.13.15. collect_geometries

Recopila un conjunto de geometrías en un objeto de geometría multiparte.

Lista de argumentos variantes

Las partes de geometría son especificadas como argumentos separados a la función.

Sintaxis

collect_geometries(geometry1, geometry2, …)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → “MultiPoint ((1 2),(3 4),(5 6))”

Matriz variante

Partes de geometría son especificadas como una matriz de partes de geometría.

Sintaxis

collect_geometries(array)

Argumentos

  • array - matriz de objetos de geometría

Ejemplos

  • geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → “MultiPoint ((1 2),(3 4),(5 6))”

Otras lecturas: algoritmo Coleccionar geometrías

12.2.13.16. combine

Devuelve la combinación de dos geometrías.

Sintaxis

combine(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → “MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))”

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → “LINESTRING(3 3, 4 4, 6 6, 2 1)”

12.2.13.17. contiene

Comprueba si una geometría contiene otra. Devuelve verdadero si y solo si ningún punto de geometry2 se encuentra en el exterior de geometry1, y al menos un punto del interior de geometry2 se encuentra en el interior de geometry1.

Sintaxis

contains(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0.5 0.5 )' ) ) → true

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

Otras lecturas: overlay_contains

12.2.13.18. convex_hull

Devuelve el casco convexo de una geoemtría. REpresenta la geoemtría convexa mínima que encierra todas las geometrías dentro del conjunto.

Sintaxis

convex_hull(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → “POLYGON((3 3, 4 10, 4 4, 3 3))”

Otras lecturas: algoritmo Casco convexo

12.2.13.19. crosses

Comprueba si una geometría se cruza con otra. Devuelve verdadero si las geometrías proporcionadas tienen algunos puntos interiores en común, pero no todos.

Sintaxis

crosses(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

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

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

Otras lecturas: overlay_crosses

12.2.13.20. difference

Devuelve una geometría que representa la parte de geometry1 que no se cruza con geometry2.

Sintaxis

difference(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → “LINESTRING(4 4, 5 5)”

Otras lecturas: algoritmo Diferencia

12.2.13.21. disjoint

Comprueba si las geometrías no se cruzan espacialmente. Devuelve verdadero si las geometrías no comparten ningún espacio.

Sintaxis

disjoint(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → false

Otras lecturas: overlay_disjoint

12.2.13.22. distance

Devuelve la distancia mínima (basada en la referencia espacial) entre dos geometrías en unidades proyectadas.

Sintaxis

distance(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

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

12.2.13.23. distance_to_vertex

Devuelve la distancia a lo largo de la geometría hasta un vértice especificado.

Sintaxis

distance_to_vertex(geometry, vertex)

Argumentos

  • geometry - una geometría de cadena lineal

  • vertex - índice de vértice, comenzando desde 0; si el valor es negativo, el índice de vértice seleccionado será su recuento total menos el valor absoluto

Ejemplos

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

12.2.13.24. end_point

Devuelve el último nodo de una geoemtría.

Sintaxis

end_point(geometry)

Argumentos

  • geometry - objeto geometría

Ejemplos

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → “Point (0 2)”

Otras lecturas: algoritmo Extráe vértices específicos

12.2.13.25. exif_geotag

Crea una geometría de punto a partir de las etiquetas geográficas exif de un archivo de imagen.

Sintaxis

exif_geotag(path)

Argumentos

  • path - Una ruta de archivo de imagen.

Ejemplos

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → “Point (2 4)”

12.2.13.26. extend

Extiende el inicio y el final de una geometría de cadena lineal en una cantidad especificada. Las líneas se extienden utilizando el rumbo del primer y último segmento de la línea. Para una multilínea, todas las partes están extendidas. Las distancias están en el sistema de referencia espacial de esta geometría.

Sintaxis

extend(geometry, start_distance, end_distance)

Argumentos

  • geometry - una geometría de cadena lineal(múltiple)

  • start_distance - distancia para extender el inicio de la línea

  • end_distance - distancia para extender el final de la línea.

Ejemplos

  • geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → “LineString (-1 0, 1 0, 1 3)”

  • geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → “MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))”

Otras lecturas: algoritmo Extender líneas

12.2.13.27. exterior_ring

Devuelve una cadena lineal que representa el anillo exterior de una geometría poligonal. Si la geometría no es un polígono, el resultado será NULO.

Sintaxis

exterior_ring(geometry)

Argumentos

  • geometry - una geometría poligonal

Ejemplos

  • geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2, 0.1, 0.1 0.1))'))) → “LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)”

12.2.13.28. extruir

Devuelve una versión extruida de la geometría de entrada (Multi-)Curva o (Multi-)Linea con una extensión especificada por x e y.

Sintaxis

extrude(geometry, x, y)

Argumentos

  • geometry - una curva o geometría lineal

  • x - extensión x, valor numérico

  • y - extensión y, valor numérico

Ejemplos

  • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → “Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))”

  • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → “MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))”

12.2.13.29. flip_coordinates

Devuelve una copia de la geometría con las coordenadas xey intercambiadas. Útil para reparar geometrías cuyos valores de latitud y longitud se han invertido.

Sintaxis

flip_coordinates(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → “Point (2 1)”

Otras lecturas: algoritmo Intercmbiar coordenadas X e Y

12.2.13.30. force_rhr

Obliga a una geometría a respetar la regla de la mano derecha, en la que el área delimitada por un polígono está a la derecha del límite. En particular, el anillo exterior está orientado en el sentido de las agujas del reloj y los anillos interiores en el sentido contrario a las agujas del reloj.

Sintaxis

force_rhr(geometry)

Argumentos

  • geometry - una geometría. Todas las geometrías que no sean de polígono se devuelven sin cambios.

Ejemplos

  • geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → “Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))”

Otras lecturas: algoritmo Fuerza la regla de la mano derecha

12.2.13.31. geom_from_gml

Devuelve una geoemtría de una representación GML de geoemtría.

Sintaxis

geom_from_gml(gml)

Argumentos

  • gml - representación GML de una geoemtría como una cadena

Ejemplos

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → un objeto de geometría lineal

12.2.13.32. geom_from_wkb

Devuelve una geoemtría creada desde un a representación Well-Known Binary (WKB).

Sintaxis

geom_from_wkb(binary)

Argumentos

  • binary - representación Well-Known Binary (WKB) de una geometría (como un blob binario)

Ejemplos

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → un objeto de geoemtría de punto

12.2.13.33. geom_from_wkt

Devuelve una geoemtría creada desde una representación Well-Known Text (WKT).

Sintaxis

geom_from_wkt(text)

Argumentos

  • text - representación Well-Known Text (WKT) de una geoemtría

Ejemplos

  • geom_from_wkt( 'POINT(4 5)' ) → un objeto geométrico

12.2.13.34. geom_to_wkb

Devuelve la representación Well-Known Binary (WKB) de una geometría

Sintaxis

geom_to_wkb(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkb( $geometry ) → blob binario conteniendo objeto geométrico

12.2.13.35. geom_to_wkt

Devuelve la representación Well-Known Text (WKT) de una geoemtría sin metadatos SRID.

Sintaxis

geom_to_wkt(geometry, [precision=8])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría

  • precision - precisión numérica

Ejemplos

  • geom_to_wkt( make_point(6, 50) ) → “POINT(6 50)”

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → “POINT(0 0.66666667)”

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → “POINT(0 0.67)”

12.2.13.36. $geometry

Devuelve la geometría de la función actual. Se puede utilizar para procesar con otras funciones.

Sintaxis

$geometry

Ejemplos

  • geom_to_wkt( $geometry ) → “POINT(6 50)”

12.2.13.37. geometry

Devuelve la geometría de una función.

Sintaxis

geometry(feature)

Argumentos

  • feature - un objeto característico

Ejemplos

  • `` geometry( $currentfeature )`` → la geometría de la característica actual. Prefiero usar $geometry.

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → la geometría en WKT de la entidad con el id 1 en la capa «streets», e.g. “POINT(6 50)”

  • intersects( $geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → true si la entidad actual se cruza espacialmente con “Main St.” entidad nombrada en la capa «streets»

12.2.13.38. geometry_n

Devuelve una geometría específica de una colección de geometrías, o NULL si la geometría de entrada no es una colección.

Sintaxis

geometry_n(geometry, index)

Argumentos

  • geometry - colección de geoemtría

  • index - índice de geometría a devolver, donde 1 es la primera geometría de la colección

Ejemplos

  • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → “Point (1 0)”

12.2.13.39. geometry_type

Devuelve un valor de cadena que describe el tipo de geometría (Punto, Línea o Polígono)

Sintaxis

geometry_type(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

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

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

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → “Point”

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → “Polygon”

12.2.13.40. hausdorff_distance

Devuelve la distancia de Hausdorff entre dos geometrías. Esta es básicamente una medida de cuán similares o diferentes son 2 geometrías, con una distancia menor indicando geometrías más similares.

La función se puede ejecutar con un argumento opcional de fracción densificar. Si no se especifica, se utiliza una aproximación a la distancia estándar de Hausdorff. Esta aproximación es lo suficientemente exacta o cercana para un gran subconjunto de casos útiles. Ejemplos de estos son:

  • calcular la distancia entre líneas lineales que son aproximadamente paralelas entre sí y aproximadamente iguales en longitud. Esto ocurre en redes lineales coincidentes.

  • Prueba de similitud de geometrías.

Si el valor aproximado predeterminado proporcionado por este método es insuficiente, especifique el argumento opcional de fracción densificar. Al especificar este argumento, se realiza una densificación de segmento antes de calcular la distancia discreta de Hausdorff. El parámetro establece la fracción por la cual densificar cada segmento. Cada segmento se dividirá en varios subsegmentos de igual longitud, cuya fracción de la longitud total es la más cercana a la fracción dada. Disminuir el parámetro de fracción de densificación hará que la distancia devuelta se acerque a la distancia real de Hausdorff para las geometrías.

Sintaxis

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] marca argumentos opcionales

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

  • densify_fraction - densificar la cantidad de la fracción

Ejemplos

  • hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 2

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0.5) → 70.0

12.2.13.41. inclination

Devuelve la inclinación medida desde el cenit (0) al nadir (180) desde el punto_a al punto_b.

Sintaxis

inclination(point_a, point_b)

Argumentos

  • point_a - geometría de punto

  • point_b - geometría de punto

Ejemplos

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0

12.2.13.42. interior_ring_n

Devuelve un anillo interior específico de una geometría poligonal o NULL si la geometría no es un polígono.

Sintaxis

interior_ring_n(geometry, index)

Argumentos

  • geometry - geometría poligonal

  • index - índice de interior para volver, donde 1 es el primer anillo interior

Ejemplos

  • geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → “LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))”

12.2.13.43. intersection

Devuelve una geometría que representa la parte compartida de dos geometrías.

Sintaxis

intersection(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → “LINESTRING(3 3, 4 4)”

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → “POINT(3.5 3.5)”

Otras lecturas: algoritmo Intersección

12.2.13.44. intersects

Comprueba si una geometría se cruza con otra. Devuelve verdadero si las geometrías se intersecan espacialmente (comparten cualquier parte del espacio) y falso si no lo hacen.

Sintaxis

intersects(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false

Otras lecturas: overlay_intersects

12.2.13.45. intersects_bbox

Comprueba si el cuadro delimitador de una geometría se superpone al cuadro delimitador de otra geometría. Devuelve verdadero si las geometrías intersecan espacialmente el cuadro delimitador definido y falso si no lo hacen.

Sintaxis

intersects_bbox(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → Verdadero

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → falso

12.2.13.46. is_closed

Devuelve verdadero si una cadena de línea está cerrada (los puntos inicial y final coinciden) o falso si una cadena de línea no está cerrada. Si la geometría no es una cadena de líneas, el resultado será NULL.

Sintaxis

is_closed(geometry)

Argumentos

  • geometry - una geometría de cadena lineal

Ejemplos

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true

12.2.13.47. is_empty

Devuelve verdadero si una geometría está vacía (sin coordenadas), falso si la geometría no está vacía y NULL si no hay geometría. Consulte también is_empty_or_null.

Sintaxis

is_empty(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → falso

  • is_empty(geom_from_wkt('LINESTRING EMPTY')) → verdadero

  • is_empty(geom_from_wkt('POINT(7 4)')) → falso

  • is_empty(geom_from_wkt('POINT EMPTY')) → verdadero

12.2.13.48. is_empty_or_null

Devuelve verdadero si una geometría es NULL o está vacía (sin coordenadas) o falso en caso contrario. Esta función es como la expresión “$ geometry IS NULL o is_empty($geometry)”

Sintaxis

is_empty_or_null(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • is_empty_or_null(NULL) → verdadero

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → falso

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → verdadero

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → falso

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → verdadero

12.2.13.49. is_multipart

Devuelve verdadero si la geometría es de tipo múltiple.

Sintaxis

is_multipart(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → verdadero

  • is_multipart(geom_from_wkt('POINT (0 0)')) → falso

12.2.13.50. is_valid

Devuelve verdadero si una geometría es válida; si está bien formado en 2D de acuerdo con las reglas de OGC.

Sintaxis

is_valid(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → false

12.2.13.51. $length

Devuelve la longitud de una cadena de líneas. Si necesita la longitud de un borde de un polígono, use $perimeter en su lugar. La longitud calculada por esta función respeta tanto la configuración del elipsoide del proyecto actual como la configuración de la unidad de distancia. Por ejemplo, si se ha establecido un elipsoide para el proyecto, la longitud calculada será elipsoidal, y si no se establece ningún elipsoide, la longitud calculada será planimétrica.

Sintaxis

$length

Ejemplos

  • $length → 42.4711

12.2.13.52. length

Devuelve el número de caracteres de una cadena o la longitud de una cadena de líneas geométricas.

Variante de cadena

Devuelve el número de caracteres de una cadena.

Sintaxis

length(string)

Argumentos

  • string - cadena de la que contar caracteres

Ejemplos

  • length('hello') → 5

Variante Geometría

Calcula la longitud de un objeto de línea geométrica. Los cálculos son siempre planimétricos en el Sistema de referencia espacial (SRS) de esta geometría, y las unidades de la longitud devuelta coincidirán con las unidades del SRS. Esto difiere de los cálculos realizados por la función $length, que realizará cálculos elipsoidales basados en la configuración de unidad de distancia y elipsoide del proyecto.

Sintaxis

length(geometry)

Argumentos

  • geometry - objeto geométrico lineal

Ejemplos

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

Otras lecturas: straight_distance_2d

12.2.13.53. length3D

Calcula la longitud 3D de un objeto de línea de geometría. Si la geometría no es un objeto de línea 3D, devuelve su longitud 2D. Los cálculos siempre son planimétricos en el Sistema de referencia espacial (SRS) de esta geometría, y las unidades de la longitud devuelta coincidirán con las unidades del SRS. Esto difiere de los cálculos realizados por la función $length, que realizará cálculos elipsoidales basados ​​en la configuración de unidad de distancia y elipsoide del proyecto.

Sintaxis

length3D(geometry)

Argumentos

  • geometry - objeto geométrico lineal

Ejemplos

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

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

Sintaxis

line_interpolate_angle(geometry, distance)

Argumentos

  • geometry - una geometría de cadena lineal

  • distance - distancia a lo largo de la línea en la que interpolar el ángulo

Ejemplos

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

12.2.13.55. line_interpolate_point

Devuelve el punto interpolado por una distancia especificada a lo largo de una geometría de cadena lineal.

Sintaxis

line_interpolate_point(geometry, distance)

Argumentos

  • geometry - una geometría de cadena lineal

  • distance - distancia a lo largo de la línea para interpolar

Ejemplos

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5)) → “Point (5 0)”

Otras lecturas: algoritmo Interpolar puntos en línea

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

Sintaxis

line_locate_point(geometry, point)

Argumentos

  • geometry - una geometría de cadena lineal

  • point - geometría de puntos para localizar la posición más cercana a la cadena de líneas

Ejemplos

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

12.2.13.57. line_merge

Devuelve una geometría LineString o MultiLineString, donde cualquier LineString conectado de la geometría de entrada se ha fusionado en una única cadena lineal. Esta función devolverá NULL si se le pasa una geometría que no sea LineString/MultiLineString.

Sintaxis

line_merge(geometry)

Argumentos

  • geometry - a LineString/MultiLineString geometry

Ejemplos

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → “LineString(0 0,1 1,2 2)”

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → “MultiLineString((0 0, 1 1),(11 1, 21 2)”

12.2.13.58. line_substring

Devuelve la parte de una geometría de línea (o curva) que se encuentra entre las distancias inicial y final especificadas (medidas desde el principio de la línea). Los valores Z y M se interpolan linealmente a partir de los valores existentes.

Sintaxis

line_substring(geometry, start_distance, end_distance)

Argumentos

  • geometry - una geometría de línea o curva

  • start_distance - distancia al inicio de la subcadena

  • end_distance - distancia a final de subcadena

Ejemplos

  • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → “LineString (2 0,6 0)”

Otras lecturas: algoritmo Subcadena de línea

12.2.13.59. m

Devuelve el valor m de una geometría puntual.

Sintaxis

m(geometry)

Argumentos

  • geometry - una geometría puntual

Ejemplos

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

12.2.13.60. m_max

Devuelve el valor m máximo (medida) de una geoemtría.

Sintaxis

m_max(geometry)

Argumentos

  • geometry - una geometría con valor m

Ejemplos

  • m_max( make_point_m( 0,0,1 ) ) → 1

  • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 2

12.2.13.61. m_min

Devuelve el valor mínimo m (medida) de una geometría.

Sintaxis

m_min(geometry)

Argumentos

  • geometry - una geometría con valor m

Ejemplos

  • m_min( make_point_m( 0,0,1 ) ) → 1

  • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 0

12.2.13.62. main_angle

Devuelve el ángulo del eje largo (en el sentido de las agujas del reloj, en grados desde el norte) del rectángulo delimitador mínimo orientado, que cubre completamente la geometría.

Sintaxis

main_angle(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

12.2.13.63. make_circle

Crea un polígono circular.

Sintaxis

make_circle(center, radius, [segments=36])

[] marca argumentos opcionales

Argumentos

  • center - punto central del círculo

  • radius - radio del círculo

  • segments - argumento opcional para la segmentación de polígonos. Por defecto, este valor es 36

Ejemplos

  • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → “Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))”

  • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → “PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))”

  • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → “PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))”

12.2.13.64. make_ellipse

Crea un polígono elíptico.

Sintaxis

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36])

[] marca argumentos opcionales

Argumentos

  • center - punto central de la elipse

  • semi_major_axis - semi-eje mayor de la elipse

  • semi_minor_axis - semi-eje menor de la elipse

  • azimuth - orientación de la elipse

  • segments - argumento opcional para la segmentación de polígonos. Por defecto, este valor es 36

Ejemplos

  • geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → “Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))”

  • geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → “PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))”

  • geom_to_wkt(make_ellipse(make_point(10,10,5,30), 5, 2, 90, 4)) → “PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))”

12.2.13.65. make_line

Crea una geometría de línea a partir de una serie de geometrías de puntos.

Lista de argumentos variantes

Los vértices de línea se especifican como argumentos separados para la función.

Sintaxis

make_line(point1, point2, …)

Argumentos

  • point -una geometría puntual ( o matriz de puntos)

Ejemplos

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → “LineString (2 4, 3 5)”

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5),make_point(9,7))) → “LineString (2 4, 3 5, 9 7)”

Matriz variante

Los vértices de línea se especifican como una matriz de puntos.

Sintaxis

make_line(array)

Argumentos

  • array - colección de puntos

Ejemplos

  • geom_to_wkt(make_line(array(make_point(2,4),make_point(3,5),make_point(9,7)))) → “LineString (2 4, 3 5, 9 7)”

12.2.13.66. make_point

Crea una geometría de punto a partir de un valor xey (y z y m opcionales).

Sintaxis

make_point(x, y, [z], [m])

[] marca argumentos opcionales

Argumentos

  • x - coordenada x de punto

  • y - coordenada y de punto

  • z - coordenada z de punto opcional

  • m - coordenada m de punto opcional

Ejemplos

  • geom_to_wkt(make_point(2,4)) → “Point (2 4)”

  • geom_to_wkt(make_point(2,4,6)) → “PointZ (2 4 6)”

  • geom_to_wkt(make_point(2,4,6,8)) → “PointZM (2 4 6 8)”

12.2.13.67. make_point_m

Crea una geometría de punto a partir de una coordenada x, y y un valor m.

Sintaxis

make_point_m(x, y, m)

Argumentos

  • x - coordenada x de punto

  • y - coordenada y de punto

  • m - valor m de punto

Ejemplos

  • geom_to_wkt(make_point_m(2,4,6)) → “PointM (2 4 6)”

12.2.13.68. make_polygon

Crea una geometría poligonal a partir de un anillo exterior y una serie opcional de geometrías de anillo interior.

Sintaxis

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] marca argumentos opcionales

Argumentos

  • outerRing - geometría de línea cerrada para el anillo exterior del polígono

  • innerRing - geometría de línea cerrada opcional para anillo interior

Ejemplos

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → “Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))”

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1 )'),geom_from_wkt('LINESTRING( 0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8 )'))) → “Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1),(0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8))”

12.2.13.69. make_rectangle_3points

Crea un rectángulo desde 3 puntos.

Sintaxis

make_rectangle_3points(point1, point2, point3, [option=0])

[] marca argumentos opcionales

Argumentos

  • point1 - Primer punto.

  • point2 - Segundo punto.

  • point3 - Tercer punto.

  • option - Un argumento opcional para construir el rectángulo. Por defecto, este valor es 0. El valor puede ser 0 (distancia) o 1 (proyectado). Distancia de opción: la segunda distancia es igual a la distancia entre el segundo y el tercer punto. Opción proyectada: Segunda distancia es igual a la distancia de la proyección perpendicular del tercer punto en el segmento o su extensión.

Ejemplos

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 5), 0)) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 3), 1)) → “Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))”

12.2.13.70. make_regular_polygon

Crea un polígono regular.

Sintaxis

make_regular_polygon(center, radius, number_sides, [circle=0])

[] marca argumentos opcionales

Argumentos

  • center - centro del polígono regular

  • radius - segundo punto. El primero si está inscrito el polígono regular. El punto medio del primer lado si el polígono regular está circunscrito.

  • number_sides - Número de lados/bordes del polígono regular

  • circle - Argumento opcional para construir el polígono regular. Por defecto, este valor es 0. El valor puede ser 0 (inscrito) o 1 (circunscrito)

Ejemplos

  • geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → “Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))”

  • geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → “Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))”

12.2.13.71. make_square

Crea un cuadrado a partir de diagonal.

Sintaxis

make_square(point1, point2)

Argumentos

  • point1 - Primer punto de la diagonal

  • point2 - último punto de la diagonal

Ejemplos

  • geom_to_wkt(make_square( make_point(0,0), make_point(5,5))) → “Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))”

  • geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → “Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))”

12.2.13.72. make_triangle

Crea un polígono triangular.

Sintaxis

make_triangle(point1, point2, point3)

Argumentos

  • point1 - Primer punto del triángulo

  • point2 - segund punto del triángulo

  • point3 - tercer punto del triángulo

Ejemplos

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → “Triangle ((0 0, 5 5, 0 10, 0 0))”

  • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → “LineString (0 0, 5 5, 0 10, 0 0)”

12.2.13.73. minimal_circle

Devuelve el círculo envolvente mínimo de una geometría. Representa el círculo mínimo que encierra todas las geometrías dentro del conjunto.

Sintaxis

minimal_circle(geometry, [segments=36])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría

  • segments - argumento opcional para la segmentación de polígonos. Por defecto, este valor es 36

Ejemplos

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → “Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))”

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → “Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))”

Otras lecturas: algoritmo Cícrculos mínimos cercantes

12.2.13.74. nodes_to_points

Devuelve una geometría multipunto que consta de todos los nodos de la geometría de entrada.

Sintaxis

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] marca argumentos opcionales

Argumentos

  • geometry - objeto geometría

  • ignore_closing_nodes - argumento opcional que especifica si se deben incluir nodos duplicados que cierran líneas o anillos de polígonos. El valor predeterminado es falso, establecido en verdadero para evitar incluir estos nodos duplicados en la colección de salida.

Ejemplos

  • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “MultiPoint ((0 0),(1 1),(2 2))”

  • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → “MultiPoint ((-1 -1),(4 0),(4 2),(0 2))”

Otras lecturas: algoritmo Extraer vértices

12.2.13.75. num_geometries

Devuelve el número de geometrías en una colección de geometrías, o NULL si la geometría de entrada no es una colección.

Sintaxis

num_geometries(geometry)

Argumentos

  • geometry - colección de geoemtría

Ejemplos

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

12.2.13.76. num_interior_rings

Devuelve el número de anillos interiores en un polígono o colección de geometría, o NULL si la geometría de entrada no es un polígono o colección.

Sintaxis

num_interior_rings(geometry)

Argumentos

  • geometry - geoemtría entrante

Ejemplos

  • num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 1

12.2.13.77. num_points

Devuelve el número de vértices en una geoemtría.

Sintaxis

num_points(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • num_points($geometry) → número de vértices en la geometría de entidades actual

12.2.13.78. num_rings

Devuelve el número de anillos (incluidos los anillos exteriores) en un polígono o colección de geometría, o NULL si la geometría de entrada no es un polígono o colección.

Sintaxis

num_rings(geometry)

Argumentos

  • geometry - geoemtría entrante

Ejemplos

  • num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 2

12.2.13.79. offset_curve

Devuelve una geometría formada desplazando una geometría de cadena de líneas hacia un lado. Las distancias están en el sistema de referencia espacial de esta geometría.

Sintaxis

offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría de cadena lineal(múltiple)

  • distance - distancia de compensación. Los valores positivos se almacenarán en búfer a la izquierda de las líneas, los valores negativos a la derecha

  • segments - número de segmentos que se utilizarán para representar un cuarto de círculo cuando se utilice un estilo de unión redonda. Un número mayor da como resultado una línea más suave con más nodos.

  • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel

  • miter_limit - límite en la relación de inglete que se usa para esquinas muy afiladas (cuando se usan juntas de inglete solamente)

Ejemplos

  • offset_curve($geometry, 10.5) → línea desplazada a la izquierda en 10.5 unidades

  • offset_curve($geometry, -10.5) → línea desplazada a la derecha en 10.5 unidades

  • offset_curve($geometry, 10.5, segments:=16, join:=1) → desplazamiento de línea a la izquierda en 10,5 unidades, usando más segmentos para dar como resultado una curva más suave

  • offset_curve($geometry, 10.5, join:=3) → desplazamiento de línea a la izquierda en 10,5 unidades, usando una unión biselada

Otras lecturas: algoritmo Compensado de líneas

12.2.13.80. order_parts

Ordena las partes de una MultiGeometría por los criterios dados

Sintaxis

order_parts(geometry, orderby, [ascending=true])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría multitipo

  • orderby - una cadena de expresión definiendo el criterio de orden

  • ascending - booleano, Verdadero para ascendente, Falso para descenso

Ejemplos

  • geom_to_wkt(order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area($geometry)', False)) → “MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1)))”

  • geom_to_wkt(order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True)) → “LineString(1 2, 3 2, 4 3)”

12.2.13.81. oriented_bbox

Devuelve una geometría que representa el cuadro delimitador orientado mínimo de una geometría de entrada.

Sintaxis

oriented_bbox(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → “Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))”

Otras lecturas: algoritmo Cuador delimitador mínimo orientado

12.2.13.82. overlaps

Comprueba si una geometría se superpone a otra. Devuelve verdadero si las geometrías comparten espacio, son de la misma dimensión, pero no están completamente contenidas entre sí.

Sintaxis

overlaps(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false

12.2.13.83. overlay_contains

Devuelve si la entidad actual contiene espacialmente al menos una entidad de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino contenidas en la entidad actual.

Más información sobre el predicado «Contiene» de GEOS subyacente, como se describe en la función PostGIS ST_Contains.

Sintaxis

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_contains('regions') → Es verdadero si la entidad actual contiene espacialmente una región

  • overlay_contains('regions', filter:= population > 10000) → Verdadero si la entidad actual contiene espacialmente una región con una población superior a 10000

  • overlay_contains('regions', name) → una matriz de nombres, para las regiones contenidas en la entidad actual

  • array_to_string(overlay_contains('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones contenidas en la entidad actual

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones contenidas en la entidad actual y con una población superior a 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones contenidas en la entidad actual

Otras lecturas: contiene, manipulación de array, algoritmo Seleccionar por ubicacion

12.2.13.84. overlay_crosses

Devuelve si la entidad actual cruza espacialmente al menos una entidad de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino cruzadas por la entidad actual.

Más información sobre el predicado «cruces» de GEOS subyacente, como se describe en la función PostGIS`ST_Crosses <https://postgis.net/docs/ST_Crosses.html>`_.

Sintaxis

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_crosses('regions') → verdadero si la entidad actual cruza espacialmente una región

  • overlay_crosses('regions', filter:= population > 10000) → Verdadero si la entidad actual cruza espacialmente una región con una población superior a 10000

  • overlay_crosses('regions', name) → una serie de nombres, para las regiones atravesadas por la entidad actual

  • array_to_string(overlay_crosses('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones atravesadas por la entidad actual

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones atravesadas por la entidad actual y con una población superior a 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones atravesadas por la entidad actual

Otras lecturas: crosses, manipulación de array, algoritmo Seleccionar por ubicacion

12.2.13.85. overlay_disjoint

Devuelve si la entidad actual está separada espacialmente de todas las entidades de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino que están separadas de la entidad actual.

Más información sobre el predicado «Disjoint» de GEOS subyacente, como se describe en la función PostGIS ST_Disjoint.

Sintaxis

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_disjoint('regions') → Es verdadero si la entidad actual es espacialmente separada de todas las regiones.

  • overlay_disjoint('regions', filter:= population > 10000) → Verdadero si la entidad actual es espacialmente disjunta de todas las regiones con una población superior a 10000

  • overlay_disjoint('regions', name) → una matriz de nombres, para las regiones espacialmente separadas de la entidad actual

  • array_to_string(overlay_disjoint('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones separadas espacialmente de la entidad actual

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones espacialmente separadas de la entidad actual y con una población superior a 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones separadas espacialmente de la entidad actual

Otras lecturas: disjoint, manipulación array, algoritmo Seleccionar por ubicacion

12.2.13.86. overlay_equals

Devuelve si la entidad actual es espacialmente igual a al menos una entidad de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino que son espacialmente iguales a la entidad actual.

Lea más sobre el predicado «Equals» de GEOS subyacente, como se describe en la función ST_Equals de PostGIS <https://postgis.net/docs/ST_Equals.html>`_.

Sintaxis

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_equals('regions') → verdadero si la entidad actual es espacialmente igual a una región

  • overlay_equals('regions', filter:= population > 10000) → Verdadero si la entidad actual es espacialmente igual a una región con una población superior a 10000

  • overlay_equals('regions', name) → una matriz de nombres, para las regiones espacialmente iguales a la entidad actual

  • array_to_string(overlay_equals('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones espacialmente iguales a la entidad actual

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones espacialmente iguales a la entidad actual y con una población superior a 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones espacialmente iguales a la entidad actual

Otras lecturas: manipulación array, algoritmo Seleccionar por ubicacion

12.2.13.87. overlay_intersects

Devuelve si la entidad actual interseca espacialmente al menos una entidad de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino intersectadas por la entidad actual.

Más información sobre el predicado subyacente «Intersects» de GEOS, como se describe en la función PostGIS ST_Intersects.

Sintaxis

overlay_intersects(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_intersects('regions') → verdadero si la entidad actual interseca espacialmente una región

  • overlay_intersects('regions', filter:= population > 10000) → Verdadero si la entidad actual interseca espacialmente una región con una población superior a 10000

  • overlay_intersects('regions', name) → una matriz de nombres, para las regiones intersectadas por la entidad actual

  • array_to_string(overlay_intersects('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones intersecadas por la entidad actual

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones intersectadas por la entidad actual y con una población superior a 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones intersecadas por la entidad actual

Otras lecturas: intersects, manipulación array, algoritmo Seleccionar por ubicacion

12.2.13.88. overlay_nearest

Devuelve si la entidad actual tiene entidades de una capa de destino dentro de una distancia determinada, o una matriz de resultados basados en expresiones para las entidades en la capa de destino dentro de una distancia de la entidad actual.

Nota: esta función puede ser lenta y consumir mucha memoria para capas grandes.

Sintaxis

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa destino

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtro - una expresión opcional para filtrar las entidades de destino para verificar. Si no se establece, se utilizarán todas las entidades de la capa de destino.

  • límite - un entero opcional para limitar el número de características coincidentes. Si no se configura, solo se devolverá la característica más cercana. Si se establece en -1, devuelve todas las entidades coincidentes.

  • max_distance - una distancia opcional para limitar la búsqueda de entidades coincidentes. Si no se establece, se utilizarán todas las entidades de la capa de destino.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_nearest('airports') → verdadero si la capa «aeropuertos» tiene al menos una entidad

  • overlay_nearest('airports', max_distance:= 5000) → verdadero si hay un aeropuerto a una distancia de 5000 unidades de mapa de la entidad actual

  • overlay_nearest('airports', name) → el nombre del aeropuerto más cercano a la entidad actual, como una matriz

  • array_to_string(overlay_nearest('airports', name)) → el nombre del aeropuerto más cercano a la entidad actual, como una cadena

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → el nombre del aeropuerto más cercano dentro de una distancia de 5000 unidades de mapa de la entidad actual, como una matriz

  • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → una variedad de nombres, hasta para los tres aeropuertos civiles más cercanos ordenados por distancia

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → una serie de nombres, para todos los aeropuertos dentro de una distancia de 5000 unidades de mapa de la entidad actual, ordenados por distancia

Otras lecturas: manipulación array, algoritmo Unir atributos por proximidad

12.2.13.89. overlay_touches

Devuelve si la entidad actual toca espacialmente al menos una entidad de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino tocadas por la entidad actual.

Obtenga más información sobre el predicado subyacente «Toques» de GEOS, como se describe en la función PostGIS. ST_Touches.

Sintaxis

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_touches('regions') → verdadero si la entidad actual toca espacialmente una región

  • overlay_touches('regions', filter:= population > 10000) → verdadero si la entidad actual toca espacialmente una región con una población superior a 10000

  • overlay_touches('regions', name) → una serie de nombres, para las regiones tocadas por la entidad actual

  • string_to_array(overlay_touches('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones tocadas por la entidad actual

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones afectadas por la entidad actual y con una población superior a 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones tocadas por la entidad actual

Otras lecturas: touches, manipulación array, algoritmo Seleccionar por ubicacion

12.2.13.90. overlay_within

Devuelve si la entidad actual está espacialmente dentro de al menos una entidad de una capa de destino o una matriz de resultados basados en expresiones para las entidades de la capa de destino que contienen la entidad actual.

Obtenga más información sobre el predicado subyacente «Dentro» de GEOS, como se describe en la función PostGIS ST_Within.

Sintaxis

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] marca argumentos opcionales

Argumentos

  • capa - la capa cuya superposición está marcada

  • expresión - una expresión opcional para evaluar las características de la capa de destino. Si no se establece, la función simplemente devolverá un booleano que indica si hay al menos una coincidencia.

  • filtrar - una expresión opcional para filtrar los objetos de destino a verificar. Si no se establece, se marcarán todos los objetos.

  • límite - un entero opcional para limitar el número de objetos elegidos. Si no se establece, todos los objetos elegidos serán devueltos.

  • cache - establezca esto en verdadero para construir un índice espacial local (la mayoría de las veces, esto no es deseado, a menos que esté trabajando con un proveedor de datos particularmente lento)

Ejemplos

  • overlay_within('regions') → Es verdadero si la entidad actual está espacialmente dentro de una región.

  • overlay_within('regions', filter:= population > 10000) → Verdadero si la entidad actual está espacialmente dentro de una región con una población superior a 10000

  • overlay_within('regions', name) → una matriz de nombres, para las regiones que contienen la entidad actual

  • array_to_string(overlay_within('regions', name)) → una cadena como una lista de nombres separados por comas, para las regiones que contienen la entidad actual

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → una matriz ordenada de nombres, para las regiones que contienen la entidad actual y con una población superior a 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → una matriz de geometrías (en WKT), para hasta dos regiones que contienen la entidad actual

Otras lecturas: within, manipulación array, algoritmo Seleccionar por ubicacion

12.2.13.91. $perimeter

Devuelve la longitud del perímetro de la entidad actual. El perímetro calculado por esta función respeta tanto la configuración del elipsoide del proyecto actual como la configuración de la unidad de distancia. Por ejemplo, si se ha establecido un elipsoide para el proyecto, el perímetro calculado será elipsoidal, y si no se establece ningún elipsoide, el perímetro calculado será planimétrico.

Sintaxis

$perimeter

Ejemplos

  • $perimeter → 42

12.2.13.92. perimeter

Devuelve el perímetro de un objeto poligonal de geometría. Los cálculos son siempre planimétricos en el Sistema de referencia espacial (SRS) de esta geometría, y las unidades del perímetro devuelto coincidirán con las unidades del SRS. Esto difiere de los cálculos realizados por la función $perimeter, que realizará cálculos elipsoidales basados en la configuración de unidad de distancia y elipsoide del proyecto.

Sintaxis

perimeter(geometry)

Argumentos

  • geometry - objeto poligonal de geometría

Ejemplos

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

12.2.13.93. point_n

Devuelve un nodo especiífico de una geometría

Sintaxis

point_n(geometry, index)

Argumentos

  • geometry - objeto geometría

  • index - índice del nodo a devolver, donde 1 es el primer nodo; si el valor es negativo, el índice de vértice seleccionado será su recuento total menos el valor absoluto

Ejemplos

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → “Point (4 0)”

Otras lecturas: algoritmo Extráe vértices específicos

12.2.13.94. point_on_surface

Devuelve un punto que se garantiza que se encuentra en la superficie de una geometría.

Sintaxis

point_on_surface(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • point_on_surface($geometry) → una geometría puntual

Otras lecturas: algoritmo Punto en la superficie

12.2.13.95. pole_of_inaccessibility

Calcula el polo de inaccesibilidad aproximado de una superficie, que es el punto interno más distante del límite de la superficie. Esta función utiliza el algoritmo “polylabel” (Vladimir Agafonkin, 2016), que es un enfoque iterativo garantizado para encontrar el verdadero polo de inaccesibilidad dentro de una tolerancia especificada. Las tolerancias más precisas requieren más iteraciones y tomará más tiempo calcularlas.

Sintaxis

pole_of_inaccessibility(geometry, tolerance)

Argumentos

  • geometry - una geometría

  • tolerance - distancia máxima entre el punto devuelto y la verdadera localización del polo

Ejemplos

  • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0.1))' → “Point(1.546875 2.546875)”

Otras lecturas: algoritmo Polo de inaccesibilidad

12.2.13.96. project

Devuelve un punto proyextado desde un punto inicial usando una distancia, una dirección (azimut) y una elevación en radianes.

Sintaxis

project(point, distance, azimuth, [elevation])

[] marca argumentos opcionales

Argumentos

  • point - punto inicial

  • distance - distancia a proyecto

  • azimuth - azimut en radianes horarios, donde 0 corresponde al norte

  • elevation - ángulo de inclinación en radianes

Ejemplos

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → “Point(-2, 2)”

Otras lecturas: algoritmo Proyección de puntos (Cartesiano)

12.2.13.97. relate

Prueba la representación del modelo dimensional extendido de 9 intersecciones (DE-9IM) de la relación entre dos geometrías.

Variante de relación

Devuelve la representación del modelo dimensional extendido de 9 intersecciones (DE-9IM) de la relación entre dos geometrías.

Sintaxis

relate(geometry, geometry)

Argumentos

  • geometry - una geometría

  • geometry - una geometría

Ejemplos

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → “FF1F00102”

Variante de patrón coincidente

Comprueba si la relación DE-9IM entre dos geometrías coincide con un patrón especificado.

Sintaxis

relate(geometry, geometry, pattern)

Argumentos

  • geometry - una geometría

  • geometry - una geometría

  • pattern - DE-9IM patrón a coincidir

Ejemplos

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → True

12.2.13.98. reverse

Invierte la dirección de una cadena lineal invirtiendo el orden de sus vértices.

Sintaxis

reverse(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “LINESTRING(2 2, 1 1, 0 0)”

Otras lecturas: algoritmo Línea de dirección reversible

12.2.13.99. rotar

Devuelve una versión rotada de una geometría. Los cálculos son en el SRS de esta geometría.

Sintaxis

rotate(geometry, rotation, [center])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría

  • rotation - rotación en sentido horario en grados

  • center - punto de centro de rotación. Si no se especifica, se usará el centro del recuadro delimitador de la geometría.

Ejemplos

  • rotate($geometry, 45, make_point(4, 5)) → geometría rotada 45 grados horarios alrededor del punto (4, 5)

  • rotate($geometry, 45) → geometría rotada 45 grados horarios alrededor del centro de su recuadro delimitador

../../../_images/rotate.gif

Figura 12.7 Características giratorias

12.2.13.100. segments_to_lines

Devuelve una geometría multilínea que consta de una línea para todos los segmentos en la geoemtría entrante.

Sintaxis

segments_to_lines(geometry)

Argumentos

  • geometry - objeto geometría

Ejemplos

  • geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → “MultiLineString ((0 0, 1 1),(1 1, 2 2))”

Otras lecturas: algoritmo Explotar lineas

12.2.13.101. shortest_line

Devuelve la línea mas corta uniendo geometria1 a geometría2. La línea resultante empezará en geometría1 y finalizará en geometría2.

Sintaxis

shortest_line(geometry1, geometry2)

Argumentos

  • geometry1 - geometría origen para encontrar la línea mas corta

  • geometry2 - geometría destino para encontrar la línea más corta

Ejemplos

  • geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → “LineString(73.0769 115.384, 100 100)”

12.2.13.102. simplify

Simplifica una geometría eliminando nodos mediante un umbral basado en la distancia (es decir, el algoritmo de Douglas Peucker). El algoritmo conserva grandes desviaciones en las geometrías y reduce el número de vértices en segmentos casi rectos.

Sintaxis

simplify(geometry, tolerance)

Argumentos

  • geometry - una geometría

  • tolerance - desviación máxima de los segmentos rectos para los puntos a eliminar

Ejemplos

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → “LineString(0 0, 10 0)”

Otras lecturas: algoritmo Simplificar

12.2.13.103. simplify_vw

Simplifica una geometría eliminando nodos utilizando un umbral basado en áreas (es decir, el algoritmo Visvalingam-Whyatt). El algoritmo elimina los vértices que crean áreas pequeñas en geometrías, por ejemplo, picos estrechos o segmentos casi rectos.

Sintaxis

simplify_vw(geometry, tolerance)

Argumentos

  • geometry - una geometría

  • tolerance - una medida del área máxima creada por un nodo para que el nodo sea eliminado

Ejemplos

  • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → “LineString(0 0, 10 0)”

Otras lecturas: algoritmo Simplificar

12.2.13.104. single_sided_buffer

Devuelve una geometría formada al almacenar en búfer solo un lado de una geometría de cadena lineal. Las distancias están en el sistema de referencia espacial de esta geometría.

Sintaxis

single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría de cadena lineal(múltiple)

  • distance - distancia de amortiguación. Los valores positivos se almacenarán en búfer a la izquierda de las líneas, los valores negativos a la derecha

  • segments - número de segmentos que se utilizarán para representar un cuarto de círculo cuando se utilice un estilo de unión redonda. Un número mayor da como resultado un búfer más suave con más nodos.

  • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel

  • miter_limit - límite en la relación de inglete que se usa para esquinas muy afiladas (cuando se usan juntas de inglete solamente)

Ejemplos

  • single_sided_buffer($geometry, 10.5) → línea ensanchada a la izquierda en 10.5 unidades

  • single_sided_buffer($geometry, -10.5) → línea ensanchada a la derecha en 10.5 unidades

  • single_sided_buffer($geometry, 10.5, segments:=16, join:=1) → línea amortiguada a la izquierda por 10,5 unidades, utilizando más segmentos para dar como resultado un búfer más suave

  • single_sided_buffer($geometry, 10.5, join:=3) → línea amortiguada a la izquierda por 10.5 unidades, usando una unión biselada

Otras lecturas: algoritmo Buffer a un solo lado

12.2.13.105. sinuosity

Devuelve la sinuosidad de una curva, que es la relación entre la longitud de la curva y la distancia recta (2D) entre sus extremos.

Sintaxis

sinuosity(geometry)

Argumentos

  • geometría - Curva de entrada (cadena circular, cadena lineal)

Ejemplos

  • round(sinuosity(geom_from_wkt('LINESTRING(2 0, 2 2, 3 2, 3 3)')), 3) → 1.265

  • sinuosity(geom_from_wkt('LINESTRING( 3 1, 5 1)')) → 1.0

12.2.13.106. smooth

Suaviza una geometría agregando nodos adicionales que redondean las esquinas de la geometría. Si las geometrías de entrada contienen valores Z o M, estos también se suavizarán y la geometría de salida conservará la misma dimensionalidad que la geometría de entrada.

Sintaxis

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] marca argumentos opcionales

Argumentos

  • geometry - una geometría

  • iterations - número de iteraciones de suavizado para aplicar. Los números más grandes dan como resultado geometrías más suaves pero más complejas.

  • offset - valor entre 0 y 0,5 que controla la precisión con la que la geometría suavizada sigue la geometría original. Los valores más pequeños dan como resultado un suavizado más estricto, los valores más grandes dan como resultado un suavizado más suelto.

  • min_length - longitud mínima de los segmentos a los que aplicar suavizado. Este parámetro se puede utilizar para evitar colocar excesivos nodos adicionales en segmentos más cortos de la geometría.

  • max_angle - ángulo máximo en el nodo para aplicar el suavizado (0-180). Al reducir el ángulo máximo de forma intencionada, se pueden conservar las esquinas afiladas de la geometría. Por ejemplo, un valor de 80 grados conservará ángulos rectos en la geometría.

Ejemplos

  • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → “LineString (0 0, 4 0, 5 1, 5 5)”

Otras lecturas: algoritmo Suavizar

12.2.13.107. start_point

Devuelve el primer nodo de una geoemtría.

Sintaxis

start_point(geometry)

Argumentos

  • geometry - objeto geometría

Ejemplos

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → “Point (4 0)”

Otras lecturas: algoritmo Extráe vértices específicos

12.2.13.108. straight_distance_2d

Devuelve la distancia directa/euclidiana entre el primer y el último vértice de una geometría. La geometría debe ser una curva (cadena circular, cadena lineal).

Sintaxis

straight_distance_2d(geometry)

Argumentos

  • geometría - La geometría.

Ejemplos

  • straight_distance_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • round(straight_distance_2d(geom_from_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5.657

Otras lecturas: length

12.2.13.109. sym_difference

Devuelve una geometría que representa las partes de dos geometrías que no se intersecan.

Sintaxis

sym_difference(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → “LINESTRING(5 5, 8 8)”

Otras lecturas: algoritmo Diferencia simétrica

12.2.13.110. tapered_buffer

Crea una zona de influencia a lo largo de una geometría de línea donde el diámetro de la zona de influencia varía uniformemente a lo largo de la línea.

Sintaxis

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] marca argumentos opcionales

Argumentos

  • geometry - geometría entrante. Debe ser una geometría (multi)lineal.

  • start_width - anchura del bufer al inicio de línea.

  • end_width - anchura del búfer al final de su línea.

  • segments - número de segmentos para aproximar las curvas de un cuarto de círculo en el búfer.

Ejemplos

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → Un búfer afilado que comienza con un diámetro de 1 y termina con un diámetro de 2 a lo largo de la geometría de la cadena lineal.

../../../_images/tapered_buffer.png

Figura 12.8 Buffer cónico en características de línea

Otras lecturas: algoritmo Zonas de influencia estrechas

12.2.13.111. touches

Comprueba si una geometría toca a otra. Devuelve verdadero si las geometrías tienen al menos un punto en común, pero sus interiores no se cruzan.

Sintaxis

touches(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true

  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false

Otras lecturas: overlay_touches

12.2.13.112. transform

Devuelve la geometría transformada de un CRS de origen a un CRS de destino.

Sintaxis

transform(geometry, source_auth_id, dest_auth_id)

Argumentos

  • geometry - una geometría

  • source_auth_id - la fuente CRS de autenticación ID

  • dest_auth_id - el CRS destino de autenticación ID

Ejemplos

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → “POINT(0 51)”

Otras lecturas: algoritmo Capa reproyectada

12.2.13.113. translate

Devuelve una versión traducida de una geometría. Los cálculos están en el Sistema de referencia espacial de esta geometría.

Sintaxis

translate(geometry, dx, dy)

Argumentos

  • geometry - una geometría

  • dx - delta x

  • dy - delta y

Ejemplos

  • translate($geometry, 5, 10) → una geometría del mismo tipo que la original

../../../_images/translate_geometry.png

Figura 12.9 Características de traducción

Otras lecturas: algoritmo Traslado

12.2.13.114. union

Devuelve una geometría que representa la unión de conjuntos de puntos de las geometrías.

Sintaxis

union(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → “MULTIPOINT(4 4, 5 5)”

12.2.13.115. wedge_buffer

Devuelve una zona de influencia en forma de cuña que se origina en una geometría de puntos.

Sintaxis

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] marca argumentos opcionales

Argumentos

  • center - punto central (origen) del búfer. Debe ser una geometría de puntos.

  • azimuth - ángulo ( en grados) a punto para la mitad de la cuña.

  • width - ancho del búfer (en grados). Tenga en cuenta que la cuña se extenderá a la mitad del ancho angular a ambos lados de la dirección del azimut.

  • outer_radius - radio exterior para bufers

  • inner_radius - radio interior opcional para bufers

Ejemplos

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → A wedge shaped buffer centered on the point (1,2), facing to the East, with a width of 180 degrees and outer radius of 1.

Otras lecturas: algoritmo Crear buffer de cuñas

12.2.13.116. within

Comprueba si una geometría está dentro de otra. Devuelve verdadero si la geometría1 está completamente dentro de la geometría2.

Sintaxis

within(geometry1, geometry2)

Argumentos

  • geometry1 - una geometría

  • geometry2 - una geoemtría

Ejemplos

  • within( geom_from_wkt( 'POINT( 0.5 0.5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → true

  • within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → false

Otras lecturas: overlay_within

12.2.13.117. $x

Devuelve la coordenada x de la entidad de punto actual. Si la entidad es una entidad multipunto, se devolverá la coordenada x del primer punto.

Sintaxis

$x

Ejemplos

  • $x → 42

12.2.13.118. x

Devuelve la coordenada x de una geometría puntual, o la coordenada x del centroide para una geometría no puntual.

Sintaxis

x(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( $geometry ) → coordenada x del centroide del objeto actual

12.2.13.119. $x_at

Recupera una coordenada x de la geometría de la entidad actual.

Sintaxis

$x_at(i)

Argumentos

  • i - índice del punto de una línea (los índices comienzan en 0; los valores negativos se aplican desde el último índice, comenzando en -1)

Ejemplos

  • $x_at(1) → 5

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

Sintaxis

x_max(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

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

Sintaxis

x_min(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

12.2.13.122. $y

Devuelve la coordenada y de la entidad de punto actual. Si la entidad es una entidad multipunto, se devolverá la coordenada y del primer punto.

Sintaxis

$y

Ejemplos

  • $y → 42

12.2.13.123. y

Devuelve la coordenada y de una geometría puntual, o la coordenada y del centroide para una geometría no puntual.

Sintaxis

y(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( $geometry ) → Coordenada y del centroide de la entidad actual

12.2.13.124. $y_at

Recupera una coordenada y de la geometría de la entidad actual.

Sintaxis

$y_at(i)

Argumentos

  • i - índice del punto de una línea (los índices comienzan en 0; los valores negativos se aplican desde el último índice, comenzando en -1)

Ejemplos

  • $y_at(1) → 2

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

Sintaxis

y_max(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

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

Sintaxis

y_min(geometry)

Argumentos

  • geometry - una geometría

Ejemplos

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

12.2.13.127. $z

Devuelve el valor z de la característica de punto actual si es 3D. Si la entidad es una entidad multipunto, se devolverá el valor z del primer punto.

Sintaxis

$z

Ejemplos

  • $z → 123

12.2.13.128. z

Devuelve la coordenada z de una geometría de punto, o NULL si la geometría no tiene valor z.

Sintaxis

z(geometry)

Argumentos

  • geometry - una geometría puntual

Ejemplos

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

12.2.13.129. z_max

Devuelve la coordenada z máxima de una geometría, o NULL si la geometría no tiene valor z.

Sintaxis

z_max(geometry)

Argumentos

  • geometry - una geometría con coordenada z

Ejemplos

  • z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3

  • z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0

  • z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2

  • z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

12.2.13.130. z_min

Devuelve la coordenada z mínima de una geometría, o NULL si la geometría no tiene valor z.

Sintaxis

z_min(geometry)

Argumentos

  • geometry - una geometría con coordenada z

Ejemplos

  • z_min( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1

  • z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2

  • z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1

  • z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

12.2.14. Funciones de diseño

Este grupo contiene funciones para manipular las propiedades de elementos del diseño de impresión.

12.2.14.1. item_variables

Devuelve un mapa de variables de un elemento de diseño dentro de este diseño de impresión.

Sintaxis

item_variables(id)

Argumentos

  • id - ID del elemento de diseño

Ejemplos

  • map_get( item_variables('Map 0'), 'map_scale') → escala del elemento “Map 0” en el actual diseñador de impresión

Otras lecturas: Lista de variables predeterminadas

12.2.14.2. map_credits

Devuelve una lista de cadenas de crédito (derechos de uso) para las capas que se muestran en un elemento de mapa de diseño.

Sintaxis

map_credits(id, [include_layer_names=false], [layer_name_separator=”: “])

[] marca argumentos opcionales

Argumentos

  • id - identificación del elemento del mapa

  • include_layer_names - Establézcalo en verdadero para incluir los nombres de las capas antes de sus cadenas de crédito

  • layer_name_separator - Cadena para insertar entre los nombres de las capas y sus cadenas de crédito, si include_layer_names es verdadero

Ejemplos

  • array_to_string( map_credits( 'Main Map' ) ) → lista separada por comas de créditos de capa para las capas que se muestran en la “Main Map” layout item, e.g “CC-BY-NC, CC-BY-SA”

  • array_to_string( map_credits( 'Main Map', include_layer_names := true, layer_name_separator := ': ' ) ) → lista separada por comas de los nombres de las capas y sus créditos para las capas que se muestran en la “Main Map” layout item, e.g. “Railway lines: CC-BY-NC, Basemap: CC-BY-SA”

Esta función requiere que se hayan rellenado las Access metadata properties de las capas.

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

12.2.15.1. decode_uri

Toma una capa y decodifica el uri del proveedor de datos subyacente. Depende del proveedor de datos, qué datos están disponibles.

Sintaxis

decode_uri(layer, [part])

[] marca argumentos opcionales

Argumentos

  • layer - La capa para la que se debe decodificar el uri.

  • part - La parte del uri que regresa. Si no se especifica, se devolverá un mapa con todas las partes de uri.

Ejemplos

  • decode_uri(@layer) → {“layerId”: “0”, “layerName”: “”, “path”: “/home/qgis/shapefile.shp”}

  • decode_uri(@layer) → {“layerId”: NULL, “layerName”: “layer”, “path”: “/home/qgis/geopackage.gpkg”}

  • decode_uri(@layer, 'path') → “C:\my_data\qgis\shape.shp”

12.2.15.2. layer_property

Devuelve una propiedad de capa coincidente o un valor de metadatos.

Sintaxis

layer_property(layer, property)

Argumentos

  • layer - una cadena, que representa un nombre capa o ID de capa

  • property - una cadena correspondiente a la propiedad a devolver. Las opciones válidas son:

    • name: nombre de capa

    • id: ID de la capa

    • title: cadena de título de metadatos

    • abstract: cadena abstracta de metadatos

    • keywords: palabras clave de los metadatos

    • data_url: URL de metadatos

    • attribution: cadena de atribución de metadatos

    • attribution_url: URL de atribución de metadatos

    • source: capa fuente

    • min_scale: escala de visualización mínima para la capa

    • max_scale: escala de visualización máxima para la capa

    • is_editable: si la capa está en modo edición

    • crs: SRC de la capa

    • crs_definition: definición completa SRC de la capa

    • crs_description: descripción SRC de capa

    • extent: extensión de la capa (como un objeto de geometría)

    • distance_units: unidades de distancia de la capa

    • type: tipo de capa, p.ej., Vectorial o Ráster

    • storage_type: formato de almacenamiento (solo capas vectoriales)

    • geometry_type: tipo de geometría, por ejemplo, Punto (solo capas vectoriales)

    • feature_count: recuento aproximado de objetos por capa (solo capas vectoriales)

    • path: Ruta del archivo a la fuente de datos de la capa. Solo disponible para capas basadas en archivos.

Ejemplos

  • layer_property('streets','title') → “Basemap Streets”

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → “EPSG:4326”

Otras lecturas: vector, raster and mesh propiedades de la capa

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

12.2.16.1. from_json

Carga una cadena con formato JSON.

Sintaxis

from_json(string)

Argumentos

  • string - cadena JSON

Ejemplos

  • from_json('{"qgis":"rocks"}') → { “qgis”: “rocks” }

  • from_json('[1,2,3]') → [1,2,3]

12.2.16.2. hstore_to_map

Crea un mapa de una cadena con formato hstore.

Sintaxis

hstore_to_map(string)

Argumentos

  • string - la cadena entrante

Ejemplos

  • hstore_to_map('qgis=>rocks') → { “qgis”: “rocks” }

12.2.16.3. map

Devuelve un mapa conteniendo todas las claves y valores pasados como para de parámetros.

Sintaxis

map(key1, value1, key2, value2, …)

Argumentos

  • key - una clave (cadena)

  • value - un valor

Ejemplos

  • map('1','one','2', 'two') → { “1”: “one”, “2”: “two” }

  • map('1','one','2', 'two')['1'] → “one”

12.2.16.4. map_akeys

Devuelve todas las claves de un mapa como una matriz.

Sintaxis

map_akeys(map)

Argumentos

  • map - un mapa

Ejemplos

  • map_akeys(map('1','one','2','two')) → [ “1”, “2” ]

12.2.16.5. map_avals

Devuelve todos los valore de un mapa como una matriz.

Sintaxis

map_avals(map)

Argumentos

  • map - un mapa

Ejemplos

  • map_avals(map('1','one','2','two')) → [ “one”, “two” ]

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

Sintaxis

map_concat(map1, map2, …)

Argumentos

  • map - un mapa

Ejemplos

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { “1”: “one”, “2”: “two”, “3”: “three” }

12.2.16.7. map_delete

Devuelve un mapa con la clave dada y su valor borrado correspondiente.

Sintaxis

map_delete(map, key)

Argumentos

  • map - un mapa

  • key - la clave a borrar

Ejemplos

  • map_delete(map('1','one','2','two'),'2') → { “1”: “one” }

12.2.16.8. map_exist

Devuelve verdadero si la clave dada existe en el mapa.

Sintaxis

map_exist(map, key)

Argumentos

  • map - un mapa

  • key - la clave para buscar

Ejemplos

  • map_exist(map('1','one','2','two'),'3') → false

12.2.16.9. map_get

Devuelve el valor de un mapa, dada su clave. Devuelve NULL si la clave no existe.

Sintaxis

map_get(map, key)

Argumentos

  • map - un mapa

  • key - la clave para buscar

Ejemplos

  • map_get(map('1','one','2','two'),'2') → “two”

  • map_get( item_variables('Map 0'), 'map_scale') → escala del elemento “Map 0” (si existe) en el diseño de impresión actual

Consejo

También puede utilizar el index operator ([]) para obtener un valor de un mapa.

12.2.16.10. map_insert

Devuelve un mapa con una clave/valor agregado. Si la clave ya existe, su valor se anula.

Sintaxis

map_insert(map, key, value)

Argumentos

  • map - un mapa

  • key - la clave a añadir

  • value - el valor a agregar

Ejemplos

  • map_insert(map('1','one'),'3','three') → { “1”: “one”, “3”: “three” }

  • map_insert(map('1','one','2','overridden'),'2','two') → { “1”: “one”, “2”: “two” }

12.2.16.11. map_to_hstore

Mezclar elementos de mapa en una cadena de formato hstore.

Sintaxis

map_to_hstore(map)

Argumentos

  • map - el mapa de entrada

Ejemplos

  • map_to_hstore(map('qgis','rocks')) → “«qgis»=>»rocks»”

12.2.16.12. to_json

Crea una cedena con formato JSON a partir de un mapa, matriz u otro valor.

Sintaxis

to_json(value)

Argumentos

  • value - El valor de entrada

Ejemplos

  • to_json(map('qgis','rocks')) → {«qgis»:»rocks»}

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

12.2.17. Funciones Matemáticas

Este grupo contiene funciones matemáticas (por ejemplo raíz cuadrada, seno y coseno).

12.2.17.1. abs

Devuelve el valor absoluto de un número.

Sintaxis

abs(value)

Argumentos

  • value - un número

Ejemplos

  • abs(-2) → 2

12.2.17.2. acos

Devuelve el arcocoseno de un valor en radianes.

Sintaxis

acos(value)

Argumentos

  • value - coseno de un ángulo en radianes

Ejemplos

  • acos(0.5) → 1.0471975511966

12.2.17.3. arcsen

Devuelve el arcoseno de un valor en radianes.

Sintaxis

asin(value)

Argumentos

  • value - seno de un ángulo en radianes

Ejemplos

  • asin(1.0) → 1.5707963267949

12.2.17.4. atan

Devuelve el arcotangente de un valor en radianes.

Sintaxis

atan(value)

Argumentos

  • value - tangente de un ángulo en radianes

Ejemplos

  • atan(0.5) → 0.463647609000806

12.2.17.5. atan2

Devuelve el arcotangente de dy/dx usando los signos de dos argumentos para determinar el cuadrante del resultado.

Sintaxis

atan2(dy, dx)

Argumentos

  • dy - diferencia de coordenadas y

  • dx - diferencia de coordenadas x

Ejemplos

  • atan2(1.0, 1.732) → 0.523611477769969

12.2.17.6. ceil

Redondea un número hacia arriba.

Sintaxis

ceil(value)

Argumentos

  • value - un número

Ejemplos

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

12.2.17.7. clamp

Restringe un valor de entrada a un rango especificado.

Sintaxis

clamp(minimum, input, maximum)

Argumentos

  • minimum - se permite tomar el valor más pequeño entrada.

  • input - un valor que estará restringido al rango especificado por mínimo y máximo

  • maximum - el mayor valor entrada se permite tomar

Ejemplos

  • clamp(1,5,10) → 5

    entrada está entre 1 y 10, por lo que se devuelve sin cambios

  • clamp(1,0,10) → 1

    entrada es menor que el valor mínimo de 1, por lo que la función devuelve 1

  • clamp(1,11,10) → 10

    entrada es mayor que el valor máximo de 10, por lo que la función devuelve 10

12.2.17.8. cos

Devuelve el coseno de un ángulo.

Sintaxis

cos(angle)

Argumentos

  • angle - ángulo en radianes

Ejemplos

  • cos(1.571) → 0.000796326710733263

12.2.17.9. degrees

Convierte de radianes a grados.

Sintaxis

degrees(radians)

Argumentos

  • radians - valor numérico

Ejemplos

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

12.2.17.10. exp

Devuelve exponencial de un valor.

Sintaxis

exp(value)

Argumentos

  • value - número del cuál devolver el exponente

Ejemplos

  • exp(1.0) → 2.71828182845905

12.2.17.11. floor

Redondea un número hacia abajo.

Sintaxis

floor(value)

Argumentos

  • value - un número

Ejemplos

  • floor(4.9) → 4

  • floor(-4.9) → -5

12.2.17.12. ln

Devuelve el logaritmo natural de un valor.

Sintaxis

ln(value)

Argumentos

  • value - valor numérico

Ejemplos

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

12.2.17.13. log

Devuelve el valor del logaritmo del valor pasado y la base.

Sintaxis

log(base, value)

Argumentos

  • base - cualquier número positivo

  • value - cualquier número positivo

Ejemplos

  • log(2, 32) → 5

  • log(0.5, 32) → -5

12.2.17.14. log10

Devuelve el valor del logaritmo de base 10 de la expresión pasada.

Sintaxis

log10(value)

Argumentos

  • value - cualquier número positivo

Ejemplos

  • log10(1) → 0

  • log10(100) → 2

12.2.17.15. max

Devuelve el valor más grande de un conjunto de valores.

Sintaxis

max(value1, value2, …)

Argumentos

  • value - un número

Ejemplos

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

12.2.17.16. min

Devuelve el valor más pequeño de un conjunto de valores.

Sintaxis

min(value1, value2, …)

Argumentos

  • value - un número

Ejemplos

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

12.2.17.17. pi

Devuelve el valor de pi para los cálculos.

Sintaxis

pi()

Ejemplos

  • pi() → 3.14159265358979

12.2.17.18. radians

Convierte de grados a radianes.

Sintaxis

radians(degrees)

Argumentos

  • degrees - valor numérico

Ejemplos

  • radians(180) → 3.14159

  • radians(57.2958) → 1

12.2.17.19. rand

Devuelve un número entero aleatorio dentro del rango especificado por el argumento mínimo y máximo (inclusive). Si se proporciona una semilla, la devolución siempre será la misma, dependiendo de la semilla.

Sintaxis

rand(min, max, [seed=NULL])

[] marca argumentos opcionales

Argumentos

  • min - un entero que representa el número aleatorio más pequeño posible deseado

  • max - un entero que representa el mayor número aleatorio posible deseado

  • seed - cualquier valor para usar como semilla

Ejemplos

  • rand(1, 10) → 8

12.2.17.20. randf

Devuelve un flotante aleatorio dentro del rango especificado por el argumento mínimo y máximo (inclusive). Si se proporciona una semilla, la devolución siempre será la misma, dependiendo de la semilla.

Sintaxis

randf([min=0.0], [max=1.0], [seed=NULL])

[] marca argumentos opcionales

Argumentos

  • min - un flotador que representa el número aleatorio más pequeño posible deseado

  • max - un flotador que representa el mayor número aleatorio posible deseado

  • seed - cualquier valor para usar como semilla

Ejemplos

  • randf(1, 10) → 4.59258286403147

12.2.17.21. round

Redondea un número al número de posiciones decimales.

Sintaxis

round(value, [places=0])

[] marca argumentos opcionales

Argumentos

  • value - número decimal a redondear

  • places - Entero opcional que representa el número de lugares para redondear decimales. Puede ser negativo.

Ejemplos

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

12.2.17.22. scale_exp

Transforma un valor dado de un dominio de entrada a un rango de salida usando una curva exponencial. Esta función se puede utilizar para facilitar valores dentro o fuera del rango de salida especificado.

Sintaxis

scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)

Argumentos

  • value - Un valor en el dominio de entrada. La función devolverá un valor escalado correspondiente en el rango de salida.

  • domain_min - Especifica el valor mínimo en el dominio de entrada, el valor más pequeño que debe tomar el valor de entrada.

  • domain_max - Especifica el valor máximo en el dominio de entrada, el valor más grande que debe tomar el valor de entrada.

  • range_min - Especifica el valor mínimo en el rango de salida, el valor más pequeño que debe generar la función.

  • range_max - Especifica el valor máximo en el rango de salida, el valor más grande que debe generar la función.

  • exponent - Un valor positivo (mayor que 0), que dicta la forma en que los valores de entrada se asignan al rango de salida. Los exponentes grandes harán que los valores de salida “ease in”,, comenzando lentamente antes de acelerar a medida que los valores de entrada se acercan al máximo del dominio. Los exponentes más pequeños (menos de 1) harán que los valores de salida se “ease out,, donde el mapeo comienza rápidamente pero se ralentiza a medida que se acerca al máximo del dominio.

Ejemplos

  • scale_exp(5,0,10,0,100,2) → 25

    entrando, usando un exponente de 2

  • scale_exp(3,0,10,0,100,0.5) → 54.772

    saliendo, usando un exponente de 0.5

12.2.17.23. scale_linear

Transforma un valor dado de un dominio de entrada a un rango de salida mediante interpolación lineal.

Sintaxis

scale_linear(value, domain_min, domain_max, range_min, range_max)

Argumentos

  • value - Un valor en el dominio de entrada. La función devolverá un valor escalado correspondiente en el rango de salida.

  • domain_min - Especifica el valor mínimo en el dominio de entrada, el valor más pequeño que debe tomar el valor de entrada.

  • domain_max - Especifica el valor máximo en el dominio de entrada, el valor más grande que debe tomar el valor de entrada.

  • range_min - Especifica el valor mínimo en el rango de salida, el valor más pequeño que debe generar la función.

  • range_max - Especifica el valor máximo en el rango de salida, el valor más grande que debe generar la función.

Ejemplos

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    escalar un valor entre 0 y 1 a un ángulo entre 0 y 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    escalar una población que varía entre 1000 y 10000 a un tamaño de fuente entre 9 y 20

12.2.17.24. sen

Devuelve el seno de un ángulo.

Sintaxis

sin(angle)

Argumentos

  • angle - ángulo en radianes

Ejemplos

  • sin(1.571) → 0.999999682931835

12.2.17.25. sqrt

Devuelve la raiz cuadrada de un valor.

Sintaxis

sqrt(value)

Argumentos

  • value - un número

Ejemplos

  • sqrt(9) → 3

12.2.17.26. tan

Devuelve la tangente de un ángulo.

Sintaxis

tan(angle)

Argumentos

  • angle - ángulo en radianes

Ejemplos

  • tan(1.0) → 1.5574077246549

12.2.18. Funciones de mallas

Este grupo contiene funciones que calculan o devuelven valores relacionados con la malla.

12.2.18.1. $face_area

Devuelve el área de la cara de malla actual. El área calculada por esta función respeta tanto la configuración del elipsoide del proyecto actual como la configuración de la unidad de área. Por ejemplo, si se ha establecido un elipsoide para el proyecto, el área calculada será elipsoidal, y si no se establece ningún elipsoide, el área calculada será planimétrica.

Sintaxis

$face_area

Ejemplos

  • $face_area → 42

12.2.18.2. $face_index

Devuelve el índice de la cara de malla actual.

Sintaxis

$face_index

Ejemplos

  • $face_index → 4581

12.2.18.3. $vertex_as_point

Devuelve el vértice actual como una geometría de punto.

Sintaxis

$vertex_as_point

Ejemplos

  • geom_to_wkt( $vertex_as_point ) → “POINT(800 1500 41)”

12.2.18.4. $vertex_index

Devuelve el índice del vértice de la malla actual.

Sintaxis

$vertex_index

Ejemplos

  • $vertex_index → 9874

12.2.18.5. $vertex_x

Devuelve la coordenada X del vértice de la malla actual.

Sintaxis

$vertex_x

Ejemplos

  • $vertex_x → 42.12

12.2.18.6. $vertex_y

Devuelve la coordenada Y del vértice de la malla actual.

Sintaxis

$vertex_y

Ejemplos

  • $vertex_y → 12.24

12.2.18.7. $vertex_z

Devuelve el valor Z del vértice de malla actual.

Sintaxis

$vertex_z

Ejemplos

  • $vertex_z → 42

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

12.2.19.1. %

resto de la división

Sintaxis

a % b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 % 4 → 1

  • 5 % NULL → NULL

12.2.19.2. *

Multiplicación de dos valores

Sintaxis

a * b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 * 4 → 20

  • 5 * NULL → NULL

12.2.19.3. +

Suma de dos valores. Si uno de los valores es NULL, el resultado será NULL.

Sintaxis

a + b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 + 4 → 9

  • 5 + NULL → NULL

  • 'QGIS ' + 'ROCKS' → “QGIS ROCKS”

  • to_datetime('2020-08-01 12:00:00') + '1 day 2 hours' → 2020-08-02T14:00:00

Otras lecturas: concat, ||

12.2.19.4. -

Resta de dos valores. Si uno de los valores es NULL, el resultado será NULL.

Sintaxis

a - b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 - 4 → 1

  • 5 - NULL → NULL

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

12.2.19.5. /

División de dos valores

Sintaxis

a / b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

12.2.19.6. <

Compara dos valores y evalúa a 1 si el valor de la izquierda es menor que el valor de la derecha.

Sintaxis

a < b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 < 4 → 0

  • 5 < 5 → 0

  • 4 < 5 → 1

12.2.19.7. <=

Compara dos valores y evalúa a 1 si el valor de la izquierda es menor o igual que el valor de la derecha.

Sintaxis

a <= b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 <= 4 → 0

  • 5 <= 5 → 1

  • 4 <= 5 → 1

12.2.19.8. <>

Compara dos valores y evalúa a 1 si no son iguales.

Sintaxis

a <> b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 <> 4 → 1

  • 4 <> 4 → 0

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

12.2.19.9. =

Compara dos valores y evalúa a 1 si son iguales.

Sintaxis

a = b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 = 4 → 0

  • 4 = 4 → 1

  • 5 = NULL → NULL

  • NULL = NULL → NULL

12.2.19.10. >

Compara dos valores y evalúa a 1 si el valor de la izquierda es mayor que el valor de la derecha.

Sintaxis

a > b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 > 4 → 1

  • 5 > 5 → 0

  • 4 > 5 → 0

12.2.19.11. >=

Compara dos valores y evalúa a 1 si el valor de la izquierda es mayor o igual que el valor de la derecha.

Sintaxis

a >= b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 >= 4 → 1

  • 5 >= 5 → 1

  • 4 >= 5 → 0

12.2.19.12. AND

Devuelve 1 cuando las condiciones a y b son verdaderas.

Sintaxis

a AND b

Argumentos

  • a - condición

  • b - condición

Ejemplos

  • TRUE AND TRUE → 1

  • TRUE AND FALSE → 0

  • 4 = 2+2 AND 1 = 1 → 1

  • 4 = 2+2 AND 1 = 2 → 0

12.2.19.13. ILIKE

Devuelve 1 si el primer parámetro coincide, sin distinción entre mayúsculas y minúsculas, con el patrón proporcionado. Se puede usar LIKE en lugar de ILIKE para que la coincidencia distinga entre mayúsculas y minúsculas. Funciona con números también.

Sintaxis

cadena de texto/número ILIKE patrón

Argumentos

  • string/number - cadena para buscar

  • pattern - patrón para encontrar, puede usar “%” como comodín, “_” como un solo carácter y “\\” para escapar de estos caracteres especiales.

Ejemplos

  • 'A' ILIKE 'A' → 1

  • 'A' ILIKE 'a' → 1

  • 'A' ILIKE 'B' → 0

  • 'ABC' ILIKE 'b' → 0

  • 'ABC' ILIKE 'B' → 0

  • 'ABC' ILIKE '_b_' → 1

  • 'ABC' ILIKE '_B_' → 1

  • 'ABCD' ILIKE '_b_' → 0

  • 'ABCD' ILIKE '_B_' → 0

  • 'ABCD' ILIKE '_b%' → 1

  • 'ABCD' ILIKE '_B%' → 1

  • 'ABCD' ILIKE '%b%' → 1

  • 'ABCD' ILIKE '%B%' → 1

  • 'ABCD%' ILIKE 'abcd\\%' → 1

  • 'ABCD' ILIKE '%B\\%' → 0

12.2.19.14. IN

Devuelve 1 si el valor se encuentra dentro de una lista de valores.

Sintaxis

a IN b

Argumentos

  • a - valor

  • b - lista de valores

Ejemplos

  • 'A' IN ('A','B') → 1

  • 'A' IN ('C','B') → 0

12.2.19.15. IS

Devuelve 1 si a es la misma que b.

Sintaxis

a IS b

Argumentos

  • a - algún valor

  • b - algún valor

Ejemplos

  • 'A' IS 'A' → 1

  • 'A' IS 'a' → 0

  • 4 IS 4 → 1

  • 4 IS 2+2 → 1

  • 4 IS 2 → 0

  • $geometry IS NULL → 0, si su geometría no es NULL

12.2.19.16. IS NOT

Devuelve 1 si a no es la misma que b.

Sintaxis

a IS NOT b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 'a' IS NOT 'b' → 1

  • 'a' IS NOT 'a' → 0

  • 4 IS NOT 2+2 → 0

12.2.19.17. LIKE

Devuelve 1 si el primer parámetro coincide con el patrón proporcionado. Funciona con números también.

Sintaxis

cadena de texto/número ILIKE patrón

Argumentos

  • cadena de texto/número - valor

  • pattern - patrón con el que comparar el valor, puede usar “%” como comodín, “_” como un solo carácter y “\\” para escapar de estos caracteres especiales.

Ejemplos

  • 'A' LIKE 'A' → 1

  • 'A' LIKE 'a' → 0

  • 'A' LIKE 'B' → 0

  • 'ABC' LIKE 'B' → 0

  • 'ABC' LIKE '_B_' → 1

  • 'ABCD' LIKE '_B_' → 0

  • 'ABCD' LIKE '_B%' → 1

  • 'ABCD' LIKE '%B%' → 1

  • '1%' LIKE '1\\%' → 1

  • '1_' LIKE '1\\%' → 0

12.2.19.18. NOT

Niega una condición.

Sintaxis

NOT a

Argumentos

  • a - condición

Ejemplos

  • NOT 1 → 0

  • NOT 0 → 1

12.2.19.19. OR

Devuelve 1 cuando la condición a o b es verdadera.

Sintaxis

a OR b

Argumentos

  • a - condición

  • b - condición

Ejemplos

  • 4 = 2+2 OR 1 = 1 → 1

  • 4 = 2+2 OR 1 = 2 → 1

  • 4 = 2   OR 1 = 2 → 0

12.2.19.20. []

Index operator. Devuelve un elemento de una matriz o un valor de mapa.

Sintaxis

[índice]

Argumentos

  • index - índice de matriz o valor de clave de mapa

Ejemplos

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

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

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

  • map('a',1,'b',2)['a'] → 1

  • map('a',1,'b',2)['b'] → 2

Otras lecturas: array_get, map_get

12.2.19.21. ^

Potencia de dos valores.

Sintaxis

a ^ b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

12.2.19.22. ||

Une dos valores en una cadena.

Si uno de los valores es NULL, el resultado será NULL. Ver la función CONCAT para un comportamiento diferente.

Sintaxis

a || b

Argumentos

  • a - valor

  • b - valor

Ejemplos

  • 'Here' || ' and ' || 'there' → “Here and there”

  • 'Nothing' || NULL → NULL

  • 'Dia: ' || "Diameter" → “Dia: 25”

  • 1 || 2 → “12”

Otras lecturas: concat, +

12.2.19.23. ~

Realiza una coincidencia de expresión regular en un valor de cadena. Los caracteres de barra invertida deben tener doble escape (por ejemplo, «\\s» para que coincida con un carácter de espacio en blanco).

Sintaxis

string ~ regex

Argumentos

  • string - un valor cadena

  • regex - Una expresión regular. Las barras deben tener caracteres de escape, por ejemplo, \\d.

Ejemplos

  • 'hello' ~ 'll' → 1

  • 'hello' ~ '^ll' → 0

  • 'hello' ~ 'llo$' → 1

  • 'abc123' ~ '\\d+' → 1

Otras lecturas: regexp_match

12.2.20. Funciones de Procesamiento

Este grupo contiene funciones que operan en algoritmos de procesamiento.

12.2.20.1. parameter

Devuelve el valor de un parámetro de entrada del algoritmo de procesamiento.

Sintaxis

parameter(name)

Argumentos

  • name - nombre del correspondiente parámetro de entrada

Ejemplos

  • parameter('BUFFER_SIZE') → 5.6

12.2.21. Funciones Ráster

Este grupo contiene funciones a operar en una capa ráster.

12.2.21.1. raster_statistic

Devuelve estadísticas de una capa ráster.

Sintaxis

raster_statistic(layer, band, property)

Argumentos

  • layer - una cadena, que representa un nombre de capa ráster o un ID de capa

  • band - entero que representa el número de banda de la capa ráster, comenzando en 1

  • property - una cadena correspondiente a la propiedad a devolver. Las opciones válidas son:

    • min: valor mínimo

    • max: valor máximo

    • avg: valor promedio (media)

    • stdev: desviación estándar de valores

    • range: rango de valores (máx - mín)

    • sum: suma de todos los valores de un ráster

Ejemplos

  • raster_statistic('lc',1,'avg') → Valor promedio de la banda 1 de la capa ráster “lc”

  • raster_statistic('ac2010',3,'min') → Valor mínimo de la banda 3 de la capa ráster “ac2010”

12.2.21.2. raster_value

Devuelve el valor de ráster encontrado en el punto proporcionado.

Sintaxis

raster_value(layer, band, point)

Argumentos

  • layer - el nombre o id de una capa ráster

  • band - el número de banda de la que muestrear el valor.

  • point - geometría de puntos (para geometrías multiparte que tienen más de una parte, se devolverá un valor NULL)

Ejemplos

  • raster_value('dem', 1, make_point(1,1)) → 25

12.2.22. Funciones de Registro y Atributos

Este grupo contiene funciones que operan sobre identificadores de registros.

12.2.22.1. attribute

Devuelve un atributo de un objeto.

Variante 1

Devuelve el valor de un atributo de la entidad actual.

Sintaxis

attribute(attribute_name)

Argumentos

  • attribute_name - nombre del atributo a devolver

Ejemplos

  • attribute( 'name' ) → valor almacenado en el atributo “name” para la entidad actual

Variante 2

Permite ser especificados a la entidad objjetivo y al nombre de atributo.

Sintaxis

attribute(feature, attribute_name)

Argumentos

  • feature - un objeto espacial

  • attribute_name - nombre del atributo a devolver

Ejemplos

  • attribute( @atlas_feature, 'name' ) → valor almacenado en el atributo “name” para la actual entidad del atlas

12.2.22.2. attributes

Devuelve un mapa conteniendo todos los atributos para una entidad, con nombres de campo como claves de mapa.

Variante 1

Devuelve un mapa de todos los atributos de la entidad actual.

Sintaxis

attributes()

Ejemplos

  • attributes()['name'] → valor almacenado en el atributo “name” para la entida actual

Variante 2

Permite ser especificada a la entidad objetivo.

Sintaxis

attributes(feature)

Argumentos

  • feature - un objeto espacial

Ejemplos

  • attributes( @atlas_feature )['name'] → valor almacenado en el atributo “name” para la entidad actual de atlas

Otras lecturas: Funciones de Mapas

12.2.22.3. $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.

Sintaxis

$currentfeature

Ejemplos

  • attribute( $currentfeature, 'name' ) → valor almacenado en el atributo “name” para la entidad actual

12.2.22.4. display_expression

Devuelve la expresión de visualización de una entidad determinada en una capa. La expresión se evalúa de forma predeterminada. Se puede utilizar con cero, uno o más argumentos; consulte los detalles a continuación.

Sin parámetros

Si se llama sin parámetros, la función evaluará la expresión de visualización de la entidad actual en la capa actual.

Sintaxis

display_expression()

Ejemplos

  • display_expression() → La expresión de visualización de la entidad actual en la capa actual.

** Un parámetro de “entidad” **

Si se llama solo con un parámetro de “entidad”, la función evaluará la característica especificada de la capa actual.

Sintaxis

display_expression(feature)

Argumentos

  • feature - La entidad a ser evaluada.

Ejemplos

  • display_expression(@atlas_feature) → La expresión de visualización de la entidad actual de atlas.

Parámetros de capa y entidad

Si se llama a la función con una capa y una entidad, evaluará la entidad especificada de la capa especificada.

Sintaxis

display_expression(layer, feature, [evaluate=true])

[] marca argumentos opcionales

Argumentos

  • layer - La capa (o su ID o nombre)

  • feature - La entidad a ser evaluada.

  • evaluate - Si la expresión debe evaluarse. Si es falso, la expresión se devolverá solo como una cadena literal (que potencialmente podría evaluarse más adelante mediante la función “eval”).

Ejemplos

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → La expresión de visualización de la entidad con el ID 1 en la capa “calles”.

  • display_expression('a_layer_id', $currentfeature, 'False') → La expresión de visualización de la entidad dada no se evaluó.

12.2.22.5. get_feature

Devuelve la primera entidad de una capa coincidente con un valor de atributo dado.

Sintaxis

get_feature(layer, attribute, value)

Argumentos

  • layer - nombre de capa o ID

  • attribute - nombre de atributo

  • value - valor de atributo a coincidir

Ejemplos

  • get_feature('streets','name','main st') → primera entidad encontrada en la capa «calles» con el valor «main st» en el campo «nombre»

12.2.22.6. get_feature_by_id

vuelve la entidad con una id en una capa.

Sintaxis

get_feature_by_id(layer, feature_id)

Argumentos

  • layer - capa, nombre de capa o id de capa

  • feature_id - la id de la entidad que debe ser devuelta

Ejemplos

  • get_feature_by_id('streets', 1) → la entidad con el id 1 en la capa «streets»

Otras lecturas: $id

12.2.22.7. $id

Devuelve la id de la entidad de la fila actual.

Sintaxis

$id

Ejemplos

  • $id → 42

12.2.22.8. is_selected

Devuelve True si se selecciona una entidad. Se puede utilizar con cero, uno o dos argumentos; consulte los detalles a continuación.

Sin parámetros

Si se llama sin parámetros, la función devolverá verdadero si se selecciona la entidad actual en la capa actual.

Sintaxis

is_selected()

Ejemplos

  • is_selected() → Verdadero si se selecciona la entidad actual en la capa actual.

** Un parámetro de “entidad” **

Si se llama solo con un parámetro de “entidad”, la función devuelve verdadero si se selecciona la entidad especificada de la capa actual.

Sintaxis

is_selected(feature)

Argumentos

  • feature - La entidad que se debe verificar para su selección.

Ejemplos

  • is_selected(@atlas_feature) → True si se selecciona la función de atlas actual.

  • is_selected(get_feature('streets', 'name', 'Main St.'))) → Verdadero si el nombre único «Main St.» se selecciona la característica en la capa activa de «streets»

  • is_selected(get_feature_by_id('streets', 1)) → True si se selecciona la entidad con el id 1 en la capa activa de «streets»

Dos parámetros

Si se llama a la función con una capa y una entidad, devolverá verdadero si se selecciona la entidad especificada de la capa especificada.

Sintaxis

is_selected(layer, feature)

Argumentos

  • capa - La capa (su ID o nombre) en la que se comprobará la selección.

  • feature - La entidad que se debe verificar para su selección.

Ejemplos

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → Verdadero si se selecciona la calle del edificio actual (asumiendo que la capa del edificio tiene un campo llamado “street_name” y la capa “streets” tiene un campo llamado “name” con valores únicos).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → Verdadero si se selecciona la entidad con el id 1 en la capa «streets».

12.2.22.9. maptip

Devuelve el maptip para una entidad determinada en una capa. La expresión se evalúa de forma predeterminada. Se puede utilizar con cero, uno o más argumentos; consulte los detalles a continuación.

Sin parámetros

Si se llama sin parámetros, la función evaluará el mapa de la entidad actual en la capa actual.

Sintaxis

maptip()

Ejemplos

  • maptip() → El mapa de la entidad actual en la capa actual.

** Un parámetro de “entidad” **

Si se llama solo con un parámetro de “entidad”, la función evaluará la característica especificada de la capa actual.

Sintaxis

maptip(feature)

Argumentos

  • feature - La entidad a ser evaluada.

Ejemplos

  • maptip(@atlas_feature) → El mapa de la entidad de atlas actual.

Parámetros de capa y entidad

Si se llama a la función con una capa y una entidad, evaluará la entidad especificada de la capa especificada.

Sintaxis

maptip(layer, feature, [evaluate=true])

[] marca argumentos opcionales

Argumentos

  • layer - La capa (o su ID o nombre)

  • feature - La entidad a ser evaluada.

  • evaluate - Si la expresión debe evaluarse. Si es falso, la expresión se devolverá solo como una cadena literal (que potencialmente podría evaluarse más adelante usando la función “eval_template”).

Ejemplos

  • maptip('streets', get_feature_by_id('streets', 1)) → El maptip de la entidad con el ID 1 en la capa “calles”.

  • maptip('a_layer_id', $currentfeature, 'False') → El maptip de la entidad dada no evaluado.

12.2.22.10. num_selected

Devuelve el número de entidades seleccionadas en una capa determinada. Por defecto funciona en la capa en la que se evalúa la expresión.

Sintaxis

num_selected([layer=current layer])

[] marca argumentos opcionales

Argumentos

  • layer - La capa (o su identificación o nombre) en la que se comprobará la selección.

Ejemplos

  • num_selected() → El número de entidades seleccionadas en la capa actual.

  • num_selected('streets') → El número de entidades seleccionadas en las calles de la capa.

12.2.22.11. represent_value

Devuelve el valor de representación configurado para un valor de campo. Depende del tipo de widget configurado. A menudo, esto es útil para los widgets “Value Map”.

Sintaxis

represent_value(value, fieldName)

Argumentos

  • value - El valor que debe resolverse. Probablemente un campo.

  • fieldName - El nombre del campo para el que se debe cargar la configuración del widget. (Opcional)

Ejemplos

  • represent_value("field_with_value_map") → Descripción para valor

  • represent_value('static value', 'field_name') → Descripción para valor estático

Otras lecturas: tipos de widget

12.2.22.12. sqlite_fetch_and_increment

Administrar valores de autoincremento en bases de datos sqlite.

Los valores predeterminados de SQlite solo se pueden aplicar en la inserción y no se pueden obtener previamente.

Esto hace que sea imposible adquirir una clave primaria incrementada a través de AUTO_INCREMENT antes de crear la fila en la base de datos. Nota al margen: con postgres, esto funciona a través de la opción evaluar valores predeterminados.

Al agregar nuevas entidades con relaciones, es realmente bueno poder agregar hijos para un padre, mientras que el formulario de los padres todavía está abierto y, por lo tanto, la función de los padres no está comprometida.

Para evitar esta limitación, esta función se puede utilizar para administrar valores de secuencia en una tabla separada en formatos basados en sqlite como gpkg.

La tabla de secuencia se filtrará por un ID de secuencia (filter_attribute y filter_value) y el valor actual del id_field se incrementará en 1 y el valor incrementado se devolverá.

Si las columnas adicionales requieren que se especifiquen valores, el mapa default_values se puede utilizar para este propósito.

Nota

Esta función modifica la tabla sqlite de destino. Está diseñado para su uso con configuraciones de valores predeterminados para atributos.

Cuando el parámetro de la base de datos es una capa y la capa está en modo de transacción, el valor solo se recuperará una vez durante la vida útil de una transacción y se almacenará en caché y se incrementará. Esto hace que no sea seguro trabajar en la misma base de datos desde varios procesos en paralelo.

Sintaxis

sqlite_fetch_and_increment (base de datos, tabla, id_field, filter_attribute, filter_value, [default_values])

[] marca argumentos opcionales

Argumentos

  • database - Ruta al archivo sqlite o capa de geopaquete

  • table - Nombre de la tabla que gestiona las secuencias

  • id_field - Nombre del campo que contiene el valor actual

  • filter_attribute - Nombra el campo que contiene un identificador único para esta secuencia. Debe tener un índice ÚNICO.

  • filter_value - Nombre de la secuencia a utilizar.

  • default_values - Mapa con valores predeterminados para columnas adicionales en la tabla. Los valores deben cotizarse en su totalidad. Se permiten funciones.

Ejemplos

  • sqlite_fetch_and_increment(@layer, 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

  • sqlite_fetch_and_increment(layer_property(@layer, 'path'), 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

Otras lecturas: Propiedades de Fuentes de Datos, Creando una o muchas de muchas relaciones

12.2.22.13. uuid

Genera un identificador único universal (UUID) para cada fila usando el Qt QUuid::createUuid method.

Sintaxis

uuid([format=”WithBraces”])

[] marca argumentos opcionales

Argumentos

  • format - El formato, como se formateará el UUID. “WithBraces”, “WithoutBraces” o “Id128”.

Ejemplos

  • uuid() → “{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}”

  • uuid('WithoutBraces') → “0bd2f60f-f157-4a6d-96af-d4ba4cb366a1”

  • uuid('Id128') → “0bd2f60ff1574a6d96afd4ba4cb366a1”

12.2.23. Relaciones

Este grupo contiene la lista de relaciones disponibles en el proyecto actual, con su descripción. Proporciona un acceso rápido al ID de relación para escribir una expresión (con p.ej. la función relation_aggregate) o personalizando un formulario.

12.2.24. Funciones de cadena

Este grupo contiene funciones que operan sobre cadenas (por ejemplo that replace, convert to upper case).

12.2.24.1. ascii

Devuelve el código Unicode asociado con el primer carácter de una cadena.

Sintaxis

ascii(string)

Argumentos

  • string - la cadena para convertir a código Unicode

Ejemplos

  • ascii('Q') → 81

12.2.24.2. char

Devuelve el carácter asociado con un código Unicode.

Sintaxis

char(code)

Argumentos

  • code - un número código unicode

Ejemplos

  • char(81) → “Q”

12.2.24.3. concat

Concatena varias cadenas en una. Los valores NULL se convierten en cadenas vacías. Otros valores (como números) se convierten en cadenas.

Sintaxis

concat(string1, string2, …)

Argumentos

  • string - un valor cadena

Ejemplos

  • concat('sun', 'set') → “sunset”

  • concat('a','b','c','d','e') → “abcde”

  • concat('Anno ', 1984) → “Anno 1984”

  • concat('The Wall', NULL) → “The Wall”

Sobre concatenación de campos

También puede concatenar cadenas o valores de campo usando los operadores || o +, 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 id is: ' + "gid" => triggers an error as gid returns 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

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    

Otras lecturas: ||, +

12.2.24.4. format

Formatee una cadena utilizando los argumentos proporcionados.

Sintaxis

format(string, arg1, arg2, …)

Argumentos

  • string - Una cadena con marcadores de posición %1, %2, etc., para los argumentos. Los marcadores de posición se pueden repetir. El marcador de posición con el número más bajo se reemplaza por arg1, el siguiente por arg2, etc.

  • arg - cualquier tipo. Cualquier cantidad de argumentos.

Ejemplos

  • format('This %1 a %2','is', 'test') → “This is a test”

  • format('This is %2','a bit unexpected but 2 is lowest number in string','normal') → “This is a bit unexpected but 2 is lowest number in string”

12.2.24.5. format_date

Formatea un tipo de fecha o una cadena en un formato de cadena personalizado. Utiliza cadenas de formato de fecha/hora Qt. Ver QDateTime::toString.

Sintaxis

format_date(datetime, format, [language])

[] marca argumentos opcionales

Argumentos

  • datetime - valor de fecha, hora o fecha y hora

  • format - Plantilla de cadena utilizada para formatear la cadena.

    Expresión

    Salida

    d

    el día como número sin un cero inicial (1 a 31)

    dd

    el día como número con un cero inicial (01 a 31)

    ddd

    el nombre abreviado del día localizado (p. ej., de “Mon” a “Sun”)

    dddd

    el nombre largo del día localizado (por ejemplo, “Moday” a “Sunday”)

    M

    El mes como número sin cero inicial (1-12)

    MM

    el mes como número con un cero por delante (01-12)

    MMM

    el nombre de mes abreviado localizado (e.g. “Jan” a “Dec”)

    MMMM

    el nombre de mes largo localizado (e.g. “January” a “December”)

    yy

    el año como número de dos dígitos (00-99)

    yyyy

    el año como número de cuatro dígitos

    Estas expresiones pueden ser usadas para la parte temporal del formato cadena:

    Expresión

    Salida

    h

    la hora sin un cero a la izquierda (0 a 23 o 1 a 12 si se muestra AM / PM)

    hh

    la hora con un cero a la izquierda (00 a 23 o 01 a 12 si se muestra AM / PM)

    H

    la hora sin un cero a la izquierda (0 a 23, incluso con pantalla AM / PM)

    HH

    la hora con un cero a la izquierda (00 a 23, incluso con pantalla AM / PM)

    m

    el minuto sin un cero a la izquierda (0 a 59)

    mm

    el minuto con un cero a la izquierda (00 a 59)

    s

    el segundo sin un cero a la izquierda (0 a 59)

    ss

    el segundo con un cero a la izquierda (00 a 59)

    z

    los milisegundos sin ceros finales (0 a 999)

    zzz

    los milisegundos con ceros finales (000 a 999)

    AP o A

    interpreta como una hora AM/PM. AP deber ser “AM” o “PM”.

    ap o a

    Interprete como hora AM / PM. ap debe ser “am” o “pm”.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) se utiliza para dar formato a la fecha en una cadena personalizada. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

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

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

  • format_date('2012-05-15','dddd') → “Tuesday”, si la configuración regional actual es una variante en inglés

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

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

12.2.24.6. format_number

Devuelve un número formateado con el separador de configuración regional de miles. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS. También trunca los lugares decimales al número de lugares proporcionados.

Sintaxis

format_number(number, [places=0], [language])

[] marca argumentos opcionales

Argumentos

  • number - número a formatear

  • places - entero que representa el número de posiciones decimales para truncar la cadena.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) se utiliza para formatear el número en una cadena. De forma predeterminada, se utiliza la configuración regional actual del usuario de QGIS.

Ejemplos

  • format_number(10000000.332,2) → “10,000,000.33” si por ej. la configuración regional actual es una variante en inglés

  • format_number(10000000.332,2,'fr') → “10 000 000,33”

12.2.24.7. left

Devuelve una subcadena que contiene los n caracteres más a la izquierda de la cadena.

Sintaxis

left(string, length)

Argumentos

  • string - una cadena

  • length - entero. El número de caracteres de la izquierda de la cadena para devolver.

Ejemplos

  • left('Hello World',5) → “Hello”

12.2.24.8. length

Devuelve el número de caracteres de una cadena o la longitud de una cadena de líneas geométricas.

Variante de cadena

Devuelve el número de caracteres de una cadena.

Sintaxis

length(string)

Argumentos

  • string - cadena de la que contar caracteres

Ejemplos

  • length('hello') → 5

Variante Geometría

Calcula la longitud de un objeto de línea geométrica. Los cálculos son siempre planimétricos en el Sistema de referencia espacial (SRS) de esta geometría, y las unidades de la longitud devuelta coincidirán con las unidades del SRS. Esto difiere de los cálculos realizados por la función $length, que realizará cálculos elipsoidales basados en la configuración de unidad de distancia y elipsoide del proyecto.

Sintaxis

length(geometry)

Argumentos

  • geometry - objeto geométrico lineal

Ejemplos

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

12.2.24.9. lower

Convierte una cadena en minúsculas.

Sintaxis

lower(string)

Argumentos

  • string - la cadena para convertir a minúsculas

Ejemplos

  • lower('HELLO World') → “hello world”

12.2.24.10. lpad

Devuelve una cadena rellenada a la izquierda hasta el ancho especificado, utilizando un carácter de relleno. Si el ancho objetivo es menor que la longitud de la cadena, la cadena se trunca.

Sintaxis

lpad(string, width, fill)

Argumentos

  • string - cadena a rellenar

  • width - longitud de nueva cadena

  • fill - carácter con el que rellenar el espacio restante

Ejemplos

  • lpad('Hello', 10, 'x') → “xxxxxHello”

  • lpad('Hello', 3, 'x') → “Hel”

12.2.24.11. regexp_match

Devuelve la primera posición coincidente que coincide con una expresión regular dentro de una cadena Unicode, o 0 si no se encuentra la subcadena.

Sintaxis

regexp_match(input_string, regex)

Argumentos

  • input_string - la cadena para probar con la expresión regular

  • regex - La expresión regular con la que realizar la prueba. Los caracteres de barra invertida deben tener doble escape (e.g., «\\s» para que coincida con un carácter de espacio en blanco o «\\b» para que coincida con el límite de una palabra).

Ejemplos

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

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

12.2.24.12. regexp_replace

Devuelve una cadena con la expresión regular proporcionada reemplazada.

Sintaxis

regexp_replace(input_string, regex, replacement)

Argumentos

  • input_string - la cadena en la que reemplazar coincidencias

  • regex - La expresión regular que se reemplazará. Los caracteres de barra invertida deben tener doble escape (por ejemplo, «\\s» para que coincida con un carácter de espacio en blanco).

  • replacement - La cadena que reemplazará las apariciones coincidentes de la expresión regular proporcionada. Los grupos capturados se pueden insertar en la cadena de reemplazo usando \\1, \\2, etc.

Ejemplos

  • regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → “QGIS DOES ROCK”

  • regexp_replace('ABC123','\\d+','') → “ABC”

  • regexp_replace('my name is John','(.*) is (.*)','\\2 is \\1') → “John is my name”

12.2.24.13. regexp_substr

Devuelve la parte de una cadena que coincide con una expresión regular proporcionada.

Sintaxis

regexp_substr(input_string, regex)

Argumentos

  • input_string - La cadena en la cuál encontrar coincidencias

  • regex - La expresión regular con la que comparar. Los caracteres de barra invertida deben tener doble escape (por ejemplo, «\\s» para que coincida con un carácter de espacio en blanco).

Ejemplos

  • regexp_substr('abc123','(\\d+)') → “123”

12.2.24.14. replace

Devuelve una cadena con la cadena, matriz o mapa de cadenas reemplazados.

String & array variant

Devuelve una cadena con la cadena proporcionada o la matriz de cadenas reemplazada por una cadena o una matriz de cadenas.

Sintaxis

replace(string, before, after)

Argumentos

  • string - la cadena entrante

  • before - la cadena o matriz de cadenas a reemplazar

  • after - la cadena o matriz de cadenas para usar como reemplazo

Ejemplos

  • replace('QGIS SHOULD ROCK','SHOULD','DOES') → “QGIS DOES ROCK”

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → “QGIS XYZ”

  • replace('QGIS',array('Q','S'),'') → “GI”

Map variant

Devuelve una cadena con las claves de mapa proporcionadas reemplazadas por valores emparejados. Las claves de mapa más largas se evalúan primero.

Sintaxis

replace(string, map)

Argumentos

  • string - la cadena entrante

  • map - el mapa que contiene claves y valores

Ejemplos

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → “QGIS DOES ROCK”

  • replace('forty two',map('for','4','two','2','forty two','42')) → “42”

12.2.24.16. rpad

Devuelve una cadena rellenada a la derecha hasta el ancho especificado, utilizando un carácter de relleno. Si el ancho objetivo es menor que la longitud de la cadena, la cadena se trunca.

Sintaxis

rpad(string, width, fill)

Argumentos

  • string - cadena a rellenar

  • width - longitud de nueva cadena

  • fill - carácter con el que rellenar el espacio restante

Ejemplos

  • rpad('Hello', 10, 'x') → “Helloxxxxx”

  • rpad('Hello', 3, 'x') → “Hel”

12.2.24.17. strpos

Devuelve la primera posición coincidente de una subcadena dentro de otra cadena, o 0 si no se encuentra la subcadena.

Sintaxis

strpos(haystack, needle)

Argumentos

  • haystack - cadena que se va a buscar

  • needle - cadena a buscar

Ejemplos

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

12.2.24.18. substr

Devuelve una parte de una cadena.

Sintaxis

substr(string, start, [length])

[] marca argumentos opcionales

Argumentos

  • string - la cadena entrante entrante

  • start - número entero que representa la posición de inicio para extraer comenzando con 1; si el inicio es negativo, la cadena de retorno comenzará al final de la cadena menos el valor de inicio

  • length - entero que representa la longitud de la cadena a extraer; si la longitud es negativa, la cadena de retorno omitirá la longitud dada de caracteres desde el final de la cadena

Ejemplos

  • substr('HELLO WORLD',3,5) → “LLO W”

  • substr('HELLO WORLD',6) → “ WORLD”

  • substr('HELLO WORLD',-5) → “WORLD”

  • substr('HELLO',3,-1) → “LL”

  • substr('HELLO WORLD',-5,2) → “WO”

  • substr('HELLO WORLD',-5,-1) → “WORL”

12.2.24.19. title

Convierte todas las palabras de una cadena a tipo de título (todas las palabras en minúsculas con mayúscula inicial).

Sintaxis

title(string)

Argumentos

  • string - la cadena para convertir a tipo título

Ejemplos

  • title('hello WOrld') → “Hello World”

12.2.24.20. to_string

Convierte un número en cadena.

Sintaxis

to_string(number)

Argumentos

  • number - Entero o valor real. El número a convertir a cadena.

Ejemplos

  • to_string(123) → “123”

12.2.24.21. trim

Elimina todos los espacios en blanco iniciales y finales (espacios, tabulaciones, etc.) de una cadena.

Sintaxis

trim(string)

Argumentos

  • string - cadena a recortar

Ejemplos

  • trim('   hello world    ') → “hello world”

12.2.24.22. upper

Convierte una cadena a letras mayúsculas.

Sintaxis

upper(string)

Argumentos

  • string - la cadena para convertir a mayúsculas

Ejemplos

  • upper('hello WOrld') → “HELLO WORLD”

12.2.24.23. wordwrap

Devuelve una cadena ajustada a un número máximo/mínimo de carácteres.

Sintaxis

wordwrap(string, wrap_length, [delimiter_string])

[] marca argumentos opcionales

Argumentos

  • string - la cadena a ajustar

  • wrap_length - un entero. Si wrap_length es positivo, el número representa el número máximo ideal de caracteres a ajustar; si es negativo, el número representa el número mínimo de caracteres a ajustar.

  • delimiter_string - Cadena de delimitador opcional para ajustar a una nueva línea.

Ejemplos

  • wordwrap('UNIVERSITY OF QGIS',13) → “UNIVERSITY OF<br>QGIS”

  • wordwrap('UNIVERSITY OF QGIS',-3) → “UNIVERSITY<br>OF QGIS”

12.2.25. Expresiones de Usuario

Este grupo contiene las expresiones guardadas como user expressions.

12.2.26. 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).

Variable

Descripción

algorithm_id

El ID único de un algoritmo

animation_end_time

Fin del rango de tiempo sobre todo el tiempo de la animación (como valor de fecha y hora)

animation_interval

Duración del rango de tiempo sobre todo el tiempo de animación (como un valor de intervalo)

animation_start_time

Inicio del rango de tiempo sobre todo el tiempo de la animación (como valor de fecha y hora)

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

current_parent_feature

representa la función que se está editando actualmente en el formulario principal. Solo se puede utilizar en un contexto de formulario incrustado.

current_parent_geometry

representa la geometría de la función que se está editando actualmente en el formulario principal. Solo se puede utilizar en un contexto de formulario incrustado.

form_mode

Para qué se usa el formulario, como AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode o IdentifyMode como cadena.

frame_duration

Duración temporal de cada cuadro de animación (como valor de intervalo)

frame_number

Número de fotograma actual durante la reproducción de la animación

frame_rate

Número de fotogramas por segundo durante la reproducción de la animación

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

geometry_ring_num

Número de anillo de geometría actual para la entidad que se está representando (solo para entidades poligonales). El anillo exterior tiene un valor de 0.

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_crs NEW in 3.18

El ID de autoridad del sistema de referencia de coordenadas de la capa actual

layer_id

La ID de la capa actual

layer_ids

Las ID de todas las capas del mapa en el proyecto actual como una lista

layer_name

El nombre de la capa actual

layers

Todas las capas del mapa en el proyecto actual como una lista

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 para tamaños de papel estándar o cualquier unidad que se haya utilizado para el tamaño de papel personalizado)

layout_pageoffsets

Matriz de coordenadas Y de la parte superior de cada página. Permite posicionar dinámicamente elementos en páginas en un contexto donde los tamaños de página pueden cambiar

layout_pagewidth

El ancho de página activo en el diseño (en mm para tamaños de papel estándar, o cualquier unidad que se haya utilizado para el tamaño de papel personalizado)

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_projection NEW in 3.20

El nombre descriptivo del método de proyección utilizado por el sistema de referencia de coordenadas del mapa (por ejemplo, “Albers Equal Area”)

map_crs_wkt

La definición WKT del sistema de referencia de coordenadas del mapa actual

map_end_time

El final del rango de tiempo del mapa temporal (como valor de fecha y hora)

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_interval

La duración del rango de tiempo del mapa temporal (como un valor de intervalo)

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_start_time

El inicio del rango de tiempo del mapa temporal (como un valor de fecha y hora)

map_units

Las unidades de medida del mapa

model_path

Ruta completa (incluido el nombre del archivo) del modelo actual (o ruta del proyecto si el modelo está incrustado en un proyecto).

model_folder

Carpeta que contiene el modelo actual (o carpeta del proyecto si el modelo está incrustado en un proyecto).

model_name

Nombre del modelo actual

model_group

Grupo del modelo actual

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

selected_file_path

Ruta de archivo seleccionada desde el selector de widget de archivo al cargar un archivo con un sistema de almacenamiento externo

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)

symbol_layer_count

Número total de capas de símbolo en el símbolo

symbol_layer_index

Índice de capa de símbolo actual

symbol_marker_column

Número de columna para el marcador (válido solo para rellenos de patrón de puntos).

symbol_marker_row

Número de fila para el marcador (válido solo para rellenos de patrón de puntos).

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

vector_tile_zoom

Nivel de zoom de mosaico vectorial exacto del mapa que se está representando (derivado de la escala del mapa actual). Normalmente en el intervalo [0, 20]. A diferencia de @zoom_level, esta variable es un valor de punto flotante que se puede usar para interpolar valores entre dos niveles de zoom enteros.

with_variable

Permite configurar una variable para usar dentro de una expresión y evitar recalcular el mismo valor repetidamente

zoom_level

Nivel de zoom de mosaico vectorial del mapa que se está representando (derivado de la escala del mapa actual). Normalmente en el intervalo [0, 20].

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

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