Важно

Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.

9.2. Список функций

Ниже перечислены функции, операторы и переменные, доступные в QGIS, сгруппированные по категориям.

9.2.1. Агрегатные функции

Эта группа содержит функции, которые агрегируют значения по слоям и полям.

9.2.1.1. aggregate

Возвращает совокупное значение, рассчитанное с использованием объектов другого слоя.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • слой — строка, представляющая либо имя слоя, либо его идентификатор

  • aggregate — строка, соответствующая агрегату для вычисления. Допустимые варианты:

    • count

    • count_distinct

    • count_missing

    • минимальный или минимальное

    • максимальный или макс.

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: первый квартиль

    • q3: третий квартиль

    • iqr: межквартильный размах

    • min_length: минимальная длина строки

    • max_length: максимальная длина строки

    • конкатенация: соединение строк с помощью конкатенатора

    • concatenate_unique: соединение уникальных строк с помощью конкатенатора

    • собрать: создать агрегированную многочастную геометрию

    • array_agg: создать массив агрегированных значений

  • выражение — подвыражение или имя поля для агрегирования

  • фильтр — необязательное выражение фильтра для ограничения объектов, используемых для вычисления агрегата. Поля и геометрия взяты из объектов на соединенном слое. Доступ к исходному объекту можно получить с помощью переменной @parent.

  • concatenator — необязательная строка, используемая для объединения значений для агрегатов «concatenate» и «concatenate_unique»

  • order_by — необязательное выражение фильтра для упорядочивания объектов, используемых для вычисления агрегата. Поля и геометрия взяты из объектов на соединенном слое. По умолчанию объекты будут возвращаться в неуказанном порядке.

Примеры

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → сумма всех значений из поля пассажиров в слое rail_stations

  • aggregate('rail_stations','sum', "passengers"/7) → вычисляет среднесуточное значение «passengers», деля поле «passengers» на 7 перед суммированием значений.

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → суммирует все значения из поля «passengers» только из объектов, у которых атрибут «class» больше 3.

  • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → список полей name для всех объектов в слое rail_stations, разделенный запятыми

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( @geometry, geometry(@parent) ) ) → Код страны, пересекающейся со слоем «countries»

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, @geometry ) ) → сумма всех значений из поля пассажиров в rail_stations в пределах текущего объекта атласа

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid(@geometry), filter:="region_name" = attribute(@parent,'name') ) → агрегирует геометрии центроидов железнодорожных станций того же региона, что и текущий объект

9.2.1.2. array_agg

Возвращает массив агрегированных значений из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

  • order_by — необязательное выражение, используемое для упорядочивания функций, используемых для вычисления агрегата. По умолчанию функции будут возвращаться в неуказанном порядке.

Примеры

  • array_agg("name",group_by:="state") → список значений имени, сгруппированных по полю штата

9.2.1.3. collect

Возвращает многокомпонентную геометрию агрегированных геометрий из выражения

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — геометрическое выражение для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • collect( @geometry ) → многокомпонентная геометрия агрегированных геометрий

  • collect( centroid(@geometry), group_by:="region", filter:= "use" = 'civilian' ) → агрегированные центроиды гражданских объектов на основе их регионального значения

9.2.1.4. concatenate

Возвращает все агрегированные строки из поля или выражения, соединенные разделителем.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

  • concatenator — необязательная строка, используемая для объединения значений. По умолчанию пустая.

  • order_by — необязательное выражение, используемое для упорядочивания функций, используемых для вычисления агрегата. По умолчанию функции будут возвращаться в неуказанном порядке.

Примеры

  • concatenate("town_name",group_by:="state",concatenator:=',') → список названий городов, разделенных запятыми, сгруппированных по полю штата

9.2.1.5. concatenate_unique

Возвращает все уникальные строки из поля или выражения, соединенные разделителем.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

  • concatenator — необязательная строка, используемая для объединения значений. По умолчанию пустая.

  • order_by — необязательное выражение, используемое для упорядочивания функций, используемых для вычисления агрегата. По умолчанию функции будут возвращаться в неуказанном порядке.

Примеры

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → список уникальных названий городов, разделенных запятыми, сгруппированных по полю штата

9.2.1.6. count

Возвращает количество совпадающих признаков.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • count("stations",group_by:="state") → количество станций, сгруппированных по полю state

9.2.1.7. count_distinct

Возвращает количество уникальных значений.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • count_distinct("stations",group_by:="state") → количество уникальных значений станций, сгруппированных по полю state

9.2.1.8. count_missing

Возвращает количество отсутствующих (NULL) значений.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • count_missing("stations",group_by:="state") → количество отсутствующих (NULL) значений станций, сгруппированных по полю state

9.2.1.9. iqr

Возвращает рассчитанный межквартильный размах из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • iqr("population",group_by:="state") → межквартильный размах значения population, сгруппированный по полю state

9.2.1.10. majority

Возвращает совокупное большинство значений (наиболее часто встречающееся значение) из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • majority("class",group_by:="state") → наиболее часто встречающееся значение класса, сгруппированное по полю state

9.2.1.11. max_length

Возвращает максимальную длину строк из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • max_length("town_name",group_by:="state") → максимальная длина town_name, сгруппированная по полю state

9.2.1.12. maximum

Возвращает совокупное максимальное значение из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • maximum("population",group_by:="state") → максимальное значение населения, сгруппированное по полю штата

9.2.1.13. mean

Возвращает совокупное среднее значение из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • mean("population",group_by:="state") → среднее значение населения, сгруппированное по полю штата

9.2.1.14. median

Возвращает совокупное медианное значение из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • median("population",group_by:="state") → медиана значения population, сгруппированная по полю state

9.2.1.15. min_length

Возвращает минимальную длину строк из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • min_length("town_name",group_by:="state") → минимальная длина town_name, сгруппированная по полю state

9.2.1.16. minimum

Возвращает совокупное минимальное значение из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • minimum("population",group_by:="state") → минимальное значение населения, сгруппированное по полю штата

9.2.1.17. minority

Возвращает совокупное меньшинство значений (наименее встречающееся значение) из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • minority("class",group_by:="state") → наименее встречающееся значение класса, сгруппированное по полю state

9.2.1.18. q1

Возвращает рассчитанный первый квартиль из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • q1("population",group_by:="state") → первый квартиль значения population, сгруппированный по полю state

9.2.1.19. q3

Возвращает рассчитанный третий квартиль из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • q3("population",group_by:="state") → третий квартиль значения population, сгруппированный по полю state

9.2.1.20. range

Возвращает совокупный диапазон значений (максимум - минимум) из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • range("population",group_by:="state") → диапазон значений населения, сгруппированных по полю штата

9.2.1.21. relation_aggregate

Возвращает совокупное значение, рассчитанное с использованием всех соответствующих дочерних объектов из отношения слоя.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • relation — строка, представляющая идентификатор отношения

  • aggregate — строка, соответствующая агрегату для вычисления. Допустимые варианты:

    • count

    • count_distinct

    • count_missing

    • минимальный или минимальное

    • максимальный или макс.

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: первый квартиль

    • q3: третий квартиль

    • iqr: межквартильный размах

    • min_length: минимальная длина строки

    • max_length: максимальная длина строки

    • конкатенация: соединение строк с помощью конкатенатора

    • concatenate_unique: соединение уникальных строк с помощью конкатенатора

    • собрать: создать агрегированную многочастную геометрию

    • array_agg: создать массив агрегированных значений

  • выражение — подвыражение или имя поля для агрегирования

  • concatenator — необязательная строка, используемая для объединения значений для агрегата «concatenate»

  • order_by — необязательное выражение для упорядочивания объектов, используемых для вычисления агрегата. Поля и геометрия взяты из объектов на соединенном слое. По умолчанию объекты будут возвращаться в неуказанном порядке.

Примеры

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → среднее значение всех соответствующих дочерних характеристик с использованием отношения „my_relation“

  • relation_aggregate('my_relation','sum', "passengers"/7) → сумма поля «passengers» деленная на 7 для всех соответствующих дочерних объектов, использующих отношение «my_relation»

  • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → список полей «towns» для всех соответствующих дочерних объектов, разделенный запятыми, с использованием отношения «my_relation»

  • relation_aggregate('my_relation','array_agg', "id") → массив полей id из всех соответствующих дочерних объектов, использующих отношение „my_relation“

Дополнительная информация: Setting relations between multiple layers

9.2.1.22. stdev

Возвращает совокупное значение стандартного отклонения из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • stdev("population",group_by:="state") → стандартное отклонение значения population, сгруппированное по полю state

9.2.1.23. sum

Возвращает совокупное суммарное значение из поля или выражения.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • выражение — подвыражение поля для агрегирования

  • group_by — необязательное выражение, используемое для группировки агрегированных вычислений

  • фильтр — необязательное выражение, используемое для фильтрации атрибутов, используемых для расчета агрегата

Примеры

  • sum("population",group_by:="state") → суммарное значение населения, сгруппированное по полю штата

9.2.2. Функции массива

Эта группа содержит функции для создания и манипулирования массивами (также известными как структуры данных списка). Порядок значений в массиве имеет значение, в отличие от структуры данных :ref:`“map“<maps_functions> `, где порядок пар ключ-значение не имеет значения, а значения идентифицируются по их ключам.

9.2.2.1. array

Возвращает массив, содержащий все значения, переданные в качестве параметра.

Синтаксис

массив(значение1, значение2, …)

Аргументы

  • значение - значение

Примеры

  • массив(2,10) → [ 2, 10 ]

  • массив(2,10)[0] → 2

9.2.2.2. array_all

Возвращает TRUE, если массив содержит все значения заданного массива.

Синтаксис

array_all(array_a, array_b)

Аргументы

  • array_a — массив

  • array_b — массив значений для поиска

Примеры

  • array_all(массив(1,2,3),массив(2,3)) → TRUE

  • array_all(массив(1,2,3),массив(1,2,4)) → FALSE

9.2.2.3. array_append

Возвращает массив с добавлением заданного значения в конец.

Синтаксис

array_append(array, value)

Аргументы

  • массив — массив

  • value — добавляемое значение

Примеры

  • array_append(массив(1,2,3),4) → [ 1, 2, 3, 4 ]

9.2.2.4. array_cat

Возвращает массив, содержащий все заданные массивы, соединенные вместе.

Синтаксис

array_cat(массив1, массив2, …)

Аргументы

  • массив — массив

Примеры

  • array_cat(массив(1,2),массив(2,3)) → [ 1, 2, 2, 3 ]

9.2.2.5. array_contains

Возвращает TRUE, если массив содержит заданное значение.

Синтаксис

array_contains(array, value)

Аргументы

  • массив — массив

  • значение — значение для поиска

Примеры

  • array_contains(массив(1,2,3),2) → TRUE

9.2.2.6. array_count

Подсчитывает количество вхождений заданного значения в массиве.

Синтаксис

array_count(array, value)

Аргументы

  • массив — массив

  • значение — значение для подсчета

Примеры

  • array_count(массив(«a», «b», «c», «b»), «b») → 2

9.2.2.7. array_distinct

Возвращает массив, содержащий уникальные значения заданного массива.

Синтаксис

array_distinct(array)

Аргументы

  • массив — массив

Примеры

  • array_distinct(массив(1,2,3,2,1)) → [ 1, 2, 3 ]

9.2.2.8. array_filter

Возвращает массив, содержащий только те элементы, для которых выражение имеет значение true.

Синтаксис

array_filter(массив, выражение, [limit=0])

[] обозначает необязательные аргументы

Аргументы

  • массив — массив

  • выражение — выражение, которое будет вычисляться для каждого элемента. Переменная @element будет заменена текущим значением.

  • limit — максимальное количество элементов, которые будут возвращены. Используйте 0, чтобы вернуть все значения.

Примеры

  • array_filter(массив(1,2,3),@элемент < 3) → [ 1, 2 ]

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

9.2.2.9. array_find

Возвращает наименьший индекс (0 для первого) значения в массиве. Возвращает -1, если значение не найдено.

Синтаксис

array_find(array, value)

Аргументы

  • массив — массив

  • значение — значение для поиска

Примеры

  • array_find(массив(«a», «b», «c»), «b») → 1

  • array_find(массив(«a», «b», «c», «b»), «b») → 1

9.2.2.10. array_first

Возвращает первое значение массива.

Синтаксис

array_first(array)

Аргументы

  • массив — массив

Примеры

  • array_first(массив(«a», «b», «c»)) → «a»

9.2.2.11. array_foreach

Возвращает массив с вычисленным значением заданного выражения для каждого элемента.

Синтаксис

array_foreach(array, expression)

Аргументы

  • массив — массив

  • выражение — выражение, которое будет вычисляться для каждого элемента. Переменная @element будет заменена текущим значением, а переменная @counter — текущим индексом (начиная с 0).

Примеры

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

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

  • array_foreach(array(1,2,3),@element + @counter) → [ 1, 3, 5 ]

9.2.2.12. array_get

Возвращает N-е значение (0 для первого) или последнее -N-е значение (-1 для последнего) массива.

Синтаксис

array_get(array, pos)

Аргументы

  • массив — массив

  • pos — индекс для получения (начиная с 0)

Примеры

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

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

Подсказка

Вы также можете использовать оператор :ref:`index ([])<expression_function_Operators_index> ` для получения значения из массива.

9.2.2.13. array_insert

Возвращает массив с добавлением заданного значения в заданной позиции.

Синтаксис

array_insert(array, pos, value)

Аргументы

  • массив — массив

  • pos — позиция, в которую нужно добавить (начиная с 0)

  • value — добавляемое значение

Примеры

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

9.2.2.14. array_intersect

Возвращает TRUE, если хотя бы один элемент массива array1 присутствует в массиве array2.

Синтаксис

array_intersect(array1, array2)

Аргументы

  • array1 — массив

  • array2 — другой массив

Примеры

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

9.2.2.15. array_last

Возвращает последнее значение массива.

Синтаксис

array_last(array)

Аргументы

  • массив — массив

Примеры

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

9.2.2.16. array_length

Возвращает количество элементов массива.

Синтаксис

array_length(array)

Аргументы

  • массив — массив

Примеры

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

9.2.2.17. array_majority

Возвращает наиболее распространенные значения в массиве.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • массив — массив

  • option=„all“ — строка, определяющая обработку возвращаемых значений. Допустимые варианты:

    • all: По умолчанию все наиболее распространенные значения возвращаются в массиве.

    • any: Возвращает одно из наиболее распространенных значений.

    • median: Возвращает медиану наиболее распространенных значений. Неарифметические значения игнорируются.

    • real_majority: Возвращает значение, которое встречается более чем в половине массива.

Примеры

  • 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,42,42,43,1), „any“)`` → 1 или 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

9.2.2.18. array_max

Возвращает максимальное значение массива.

Синтаксис

array_max(array)

Аргументы

  • массив — массив

Примеры

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

9.2.2.19. array_mean

Возвращает среднее арифметическое значение массива. Нечисловые значения в массиве игнорируются.

Синтаксис

array_mean(array)

Аргументы

  • массив — массив

Примеры

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

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

9.2.2.20. array_median

Возвращает медиану арифметических значений в массиве. Неарифметические значения в массиве игнорируются.

Синтаксис

array_median(array)

Аргументы

  • массив — массив

Примеры

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

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

9.2.2.21. array_min

Возвращает минимальное значение массива.

Синтаксис

array_min(array)

Аргументы

  • массив — массив

Примеры

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

9.2.2.22. array_minority

Возвращает менее распространенные значения в массиве.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • массив — массив

  • option=„all“ — строка, определяющая обработку возвращаемых значений. Допустимые варианты:

    • все: По умолчанию все менее распространенные значения возвращаются в массиве.

    • any: Возвращает одно из менее распространенных значений.

    • median: Возвращает медиану менее распространенных значений. Неарифметические значения игнорируются.

    • real_minority: Возвращает значения, которые встречаются менее половины размера массива.

Примеры

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

9.2.2.23. array_prepend

Возвращает массив с добавлением заданного значения в начало.

Синтаксис

array_prepend(array, value)

Аргументы

  • массив — массив

  • value — добавляемое значение

Примеры

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

9.2.2.24. array_prioritize

Возвращает массив, отсортированный по порядку, указанному в другом массиве. Значения, которые присутствуют в первом массиве, но отсутствуют во втором, будут добавлены в конец результата.

Синтаксис

array_prioritize(array, array_prioritize)

Аргументы

  • массив — массив

  • array_prioritize — массив со значениями, упорядоченными по приоритету

Примеры

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

9.2.2.25. array_remove_all

Возвращает массив, из которого удалены все элементы с заданным значением.

Синтаксис

array_remove_all(array, value)

Аргументы

  • массив — массив

  • value — значения, которые необходимо удалить

Примеры

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

9.2.2.26. array_remove_at

Возвращает массив, из которого удален элемент с указанным индексом. Поддерживает положительные (0 для первого элемента) и отрицательные (последнее -N-е значение, -1 для последнего элемента) индексы.

Синтаксис

array_remove_at(array, pos)

Аргументы

  • массив — массив

  • pos — позиция для удаления (начиная с 0)

Примеры

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

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

9.2.2.27. array_replace

Возвращает массив с замененным заданным значением, массивом или картой значений.

Вариант значения и массива

Возвращает массив, в котором указанное значение или массив значений заменено другим значением или массивом значений.

Синтаксис

array_replace(array, before, after)

Аргументы

  • array — входной массив

  • before — значение или массив значений, которые необходимо заменить

  • after — значение или массив значений, которые будут использоваться в качестве замены.

Примеры

  • 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“, „-“ ]

Вариант карты

Возвращает массив, в котором ключи предоставленной карты заменены их сопряженными значениями.

Синтаксис

array_replace(array, map)

Аргументы

  • array — входной массив

  • map — карта, содержащая ключи и значения

Примеры

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

Дополнительная информация: replace, regexp_replace

9.2.2.28. array_reverse

Возвращает заданный массив со значениями массива в обратном порядке.

Синтаксис

array_reverse(array)

Аргументы

  • массив — массив

Примеры

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

9.2.2.29. array_slice

Возвращает часть массива. Фрагмент определяется аргументами start_pos и end_pos.

Синтаксис

array_slice(array, start_pos, end_pos)

Аргументы

  • массив — массив

  • start_pos — индекс начальной позиции фрагмента (с нулевым индексом). Индекс start_pos включается в фрагмент. Если вы используете отрицательное значение start_pos, индекс отсчитывается от конца списка (с индексом -1).

  • end_pos — индекс конечной позиции фрагмента (с нулевым индексом). Индекс end_pos включен в фрагмент. Если вы используете отрицательное значение end_pos, индекс считается от конца списка (с индексом -1).

Примеры

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

9.2.2.30. array_sort

Возвращает предоставленный массив с отсортированными элементами.

Синтаксис

array_sort(array, [ascending=true])

[] обозначает необязательные аргументы

Аргументы

  • массив — массив

  • по возрастанию** — установите для этого параметра значение false, чтобы отсортировать массив в порядке убывания.

Примеры

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

9.2.2.31. array_sum

Возвращает сумму арифметических значений в массиве. Нечисловые значения в массиве игнорируются.

Синтаксис

array_sum(array)

Аргументы

  • массив — массив

Примеры

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

9.2.2.32. array_to_string

Объединяет элементы массива в строку, разделенную разделителем, и использует опциональную строку для пустых значений.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • array — входной массив

  • разделитель — строковый разделитель, используемый для разделения соединенных элементов массива

  • empty_value — необязательная строка, используемая в качестве замены для пустых (нулевой длины) совпадений.

Примеры

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

Дополнительная информация: string_to_array

9.2.2.33. generate_series

Создает массив, содержащий последовательность чисел.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • start — первое значение последовательности

  • stop — значение, при достижении которого последовательность заканчивается

  • step — значение, используемое в качестве приращения между значениями

Примеры

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

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

9.2.2.34. geometries_to_array

Разделяет геометрию на более простые геометрические фигуры в массиве.

Синтаксис

geometries_to_array(geometry)

Аргументы

  • геометрия — входная геометрия

Примеры

  • geometries_to_array(geom_from_wkt(„MultiPoint (1 2, 5 21)“)) → Массив, содержащий „Point (1 2)“ и „Point (5 21)“.

  • geometries_to_array(geom_from_wkt(„GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))“)) → массив геометрий многоугольника и линии

  • geom_to_wkt(geometries_to_array(geom_from_wkt('GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))'))[0]) → „Polygon ((5 8, 4 1, 3 2, 5 8))“

  • geometries_to_array(geom_from_wkt(„MULTIPOLYGON(((5 5,0 0,0 10,5 5)),((5 5,10 10,10 0,5 5))“)) → массив из двух геометрий многоугольников

9.2.2.35. regexp_matches

Возвращает массив всех строк, захваченных группами захвата, в том порядке, в котором сами группы появляются в предоставленном регулярном выражении по отношению к строке.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string — строка, из которой необходимо извлечь группы, соответствующие регулярному выражению.

  • regex — регулярное выражение, используемое для захвата групп

  • empty_value — необязательная строка, используемая в качестве замены для пустых (нулевой длины) совпадений.

Примеры

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

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

Дополнительная информация: substr, regexp_substr

9.2.2.36. string_to_array

Разделяет строку на массив, используя указанный разделитель и опциональную строку для пустых значений.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string — входная строка

  • разделитель — строковый разделитель, используемый для разделения входной строки

  • empty_value — необязательная строка, используемая в качестве замены для пустых (нулевой длины) совпадений.

Примеры

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

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

Дополнительная информация: array_to_string

9.2.3. Цветовые функции

Эта группа содержит функции для работы с цветами.

9.2.3.1. color_cmyk

Возвращает строковое представление цвета на основе его компонентов голубого, пурпурного, желтого и черного цветов.

Синтаксис

color_cmyk(cyan, magenta, yellow, black)

Аргументы

  • cyan — голубой компонент цвета, выраженный в виде целого числа от 0 до 100.

  • маджента — маджента-компонент цвета, выраженный в виде целого числа от 0 до 100

  • желтый — желтый компонент цвета, выраженный в виде целого числа от 0 до 100

  • черный — черный компонент цвета, выраженный в виде целого числа от 0 до 100

Примеры

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

9.2.3.2. color_cmyka

Возвращает строковое представление цвета на основе его компонентов голубого, пурпурного, желтого, черного и альфа (прозрачность)

Синтаксис

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

Аргументы

  • cyan — голубой компонент цвета, выраженный в виде целого числа от 0 до 100.

  • маджента — маджента-компонент цвета, выраженный в виде целого числа от 0 до 100

  • желтый — желтый компонент цвета, выраженный в виде целого числа от 0 до 100

  • черный — черный компонент цвета, выраженный в виде целого числа от 0 до 100

  • alpha — альфа-компонент в виде целого числа от 0 (полностью прозрачный) до 255 (непрозрачный).

Примеры

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

9.2.3.3. color_cmykf

Возвращает объект цвета на основе его компонентов голубого, пурпурного, желтого, черного и альфа.

Синтаксис

color_cmykf(голубой, пурпурный, желтый, черный, [альфа=1,0])

[] обозначает необязательные аргументы

Аргументы

  • cyan — компонент cyan в виде числа с плавающей запятой от 0,0 до 1,0

  • маджента — компонент маджента в виде числа с плавающей запятой от 0,0 до 1,0

  • yellow — желтый компонент в виде числа с плавающей запятой от 0,0 до 1,0

  • black — черный компонент в виде значения типа float от 0,0 до 1,0

  • alpha — альфа-компонент в виде значения типа float от 0,0 до 1,0

Примеры

  • color_cmykf(1,0.9,0.81,0.62) → CMYKA: 1.00,0.90,0.81,0.62,1.00

9.2.3.4. color_grayscale_average

Применяет фильтр оттенков серого к цвету и возвращает его. Возвращаемый тип совпадает с аргументом цвета, т. е. представляет собой строковое представление цвета или объект цвета.

Синтаксис

color_grayscale_average(color)

Аргументы

  • color — строковое представление цвета или объект цвета

Примеры

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

  • color_grayscale_average(color_cmykf(0.6,0.5,0.1,0.8)) → CMYKA: 0.40,0.40,0.40,0.80,1.00

9.2.3.5. color_hsl

Возвращает строковое представление цвета на основе его атрибутов оттенка, насыщенности и яркости.

Синтаксис

color_hsl(hue, saturation, lightness)

Аргументы

  • hue — оттенок цвета, выраженный целым числом от 0 до 360

  • насыщенность — процент насыщенности цвета в виде целого числа от 0 до 100

  • lightness — процент яркости цвета в виде целого числа от 0 до 100.

Примеры

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

9.2.3.6. color_hsla

Возвращает строковое представление цвета на основе его атрибутов оттенка, насыщенности, яркости и альфа (прозрачности).

Синтаксис

color_hsla(hue, saturation, lightness, alpha)

Аргументы

  • hue — оттенок цвета, выраженный целым числом от 0 до 360

  • насыщенность — процент насыщенности цвета в виде целого числа от 0 до 100

  • lightness — процент яркости цвета в виде целого числа от 0 до 100.

  • alpha — альфа-компонент в виде целого числа от 0 (полностью прозрачный) до 255 (непрозрачный).

Примеры

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

9.2.3.7. color_hslf

Возвращает объект цвета на основе его атрибутов оттенка, насыщенности и яркости.

Синтаксис

color_hslf(оттенок, насыщенность, яркость, [альфа=1,0])

[] обозначает необязательные аргументы

Аргументы

  • hue — оттенок цвета, в виде значения типа float от 0,0 до 1,0.

  • насыщенность — насыщенность цвета в виде числа с плавающей запятой от 0,0 до 1,0

  • lightness — светлота цвета в виде числа с плавающей запятой от 0,0 до 1,0

  • alpha — альфа-компонент в виде значения типа float от 0,0 до 1,0

Примеры

  • color_hslf(0.3,0.52,0.7) → HSLA: 0.30,0.52,0.70,1.00

9.2.3.8. color_hsv

Возвращает строковое представление цвета на основе его атрибутов оттенка, насыщенности и яркости.

Синтаксис

color_hsv(hue, saturation, value)

Аргументы

  • hue — оттенок цвета, выраженный целым числом от 0 до 360

  • насыщенность — процент насыщенности цвета в виде целого числа от 0 до 100

  • значение — процентное значение цвета в виде целого числа от 0 до 100

Примеры

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

9.2.3.9. color_hsva

Возвращает строковое представление цвета на основе его атрибутов оттенка, насыщенности, яркости и альфа-канала (прозрачности).

Синтаксис

color_hsva(hue, saturation, value, alpha)

Аргументы

  • hue — оттенок цвета, выраженный целым числом от 0 до 360

  • насыщенность — процент насыщенности цвета в виде целого числа от 0 до 100

  • значение — процентное значение цвета в виде целого числа от 0 до 100

  • alpha — альфа-компонент в виде целого числа от 0 (полностью прозрачный) до 255 (непрозрачный)

Примеры

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

9.2.3.10. color_hsvf

Возвращает объект цвета на основе его атрибутов оттенка, насыщенности и яркости.

Синтаксис

color_hsvf(оттенок, насыщенность, значение, [альфа=1,0])

[] обозначает необязательные аргументы

Аргументы

  • hue — оттенок цвета, в виде значения типа float от 0,0 до 1,0.

  • насыщенность — насыщенность цвета в виде числа с плавающей запятой от 0,0 до 1,0

  • значение — значение цвета в виде числа с плавающей запятой от 0,0 до 1,0

  • alpha — альфа-компонент в виде значения типа float от 0,0 до 1,0

Примеры

  • color_hsvf(0.4,1,0.6) → HSVA: 0.40,1.00,0.60,1.00

9.2.3.11. color_mix

Возвращает цвет, смешивающий значения красного, зеленого, синего и альфа-канала двух заданных цветов на основе заданного соотношения. Возвращаемый тип совпадает с типами аргументов цвета, т. е. представляет собой строковое представление цвета или объект цвета.

Синтаксис

color_mix(color1, color2, ratio)

Аргументы

  • color1 — строка цвета или объект цвета

  • color2 — строка цвета или объект цвета

  • коэффициент - соотношение

Примеры

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

  • color_mix(color_cmykf(0.9,0.9,0.9,0.9),color_cmykf(0.1,0.1,0.1,0.1),0.5) → CMYKA: 0.50,0.50,0.50,0.50,1.00

9.2.3.12. color_mix_rgb

Возвращает строку, представляющую цвет, полученный путем смешивания значений красного, зеленого, синего и альфа-канала двух заданных цветов в соответствии с заданным соотношением.

Синтаксис

color_mix_rgb(color1, color2, ratio)

Аргументы

  • color1 — строка цвета

  • color2 — строка цвета

  • коэффициент - соотношение

Примеры

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

9.2.3.13. color_part

Возвращает определенный компонент из цветовой строки или цветового объекта, например, красный компонент или альфа-компонент.

Синтаксис

color_part(color, component)

Аргументы

  • color — строка цвета или объект цвета

  • component — строка, соответствующая цветовому компоненту, который необходимо вернуть. Допустимые варианты:

    • красный: красный компонент RGB (0-255)

    • зеленый: зеленый компонент RGB (0-255)

    • синий: компонент RGB синего цвета (0-255)

    • alpha: значение альфа (прозрачность) (0-255)

    • оттенок: оттенок HSV (0-360)

    • насыщенность: насыщенность HSV (0-100)

    • значение: значение HSV (0-100)

    • hsl_hue: оттенок HSL (0-360)

    • hsl_saturation: насыщенность HSL (0-100)

    • яркость: яркость HSL (0-100)

    • голубой: компонент CMYK голубого цвета (0-100)

    • пурпурный: компонент CMYK пурпурного цвета (0-100)

    • желтый: желтый компонент CMYK (0-100)

    • черный: компонент CMYK черного цвета (0-100)

Примеры

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

  • to_int(color_part(color_cmykf(0.1,0.2,0.3,0.9),'black')) → 90

9.2.3.14. color_rgb

Возвращает строковое представление цвета на основе его красного, зеленого и синего компонентов.

Синтаксис

color_rgb(red, green, blue)

Аргументы

  • red — красный компонент в виде целого числа от 0 до 255

  • зеленый — зеленый компонент в виде целого числа от 0 до 255

  • синий — синий компонент в виде целого числа от 0 до 255

Примеры

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

9.2.3.15. color_rgba

Возвращает строковое представление цвета на основе его красного, зеленого, синего и альфа-компонентов (прозрачности).

Синтаксис

color_rgba(red, green, blue, alpha)

Аргументы

  • red — красный компонент в виде целого числа от 0 до 255

  • зеленый — зеленый компонент в виде целого числа от 0 до 255

  • синий — синий компонент в виде целого числа от 0 до 255

  • alpha — альфа-компонент в виде целого числа от 0 (полностью прозрачный) до 255 (непрозрачный).

Примеры

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

9.2.3.16. color_rgbf

Возвращает объект цвета на основе его красного, зеленого, синего и альфа-компонентов.

Синтаксис

color_rgbf(красный, зеленый, синий, [альфа=1,0])

[] обозначает необязательные аргументы

Аргументы

  • red — красный компонент в виде числа с плавающей запятой от 0,0 до 1,0

  • зеленый — зеленый компонент в виде числа с плавающей запятой от 0,0 до 1,0

  • blue — синий компонент в виде числа с плавающей запятой от 0,0 до 1,0

  • alpha — альфа-компонент в виде значения типа float от 0,0 до 1,0

Примеры

  • color_rgbf(1.0,0.5,0) → RGBA: 1.00,0.50,0.00,1.00

9.2.3.17. create_ramp

Возвращает градиентную рампу из карты цветовых строк и шагов.

Синтаксис

create_ramp(map, [discrete=false])

[] обозначает необязательные аргументы

Аргументы

  • Карта — карта цветовых строк и шагов

  • дискретный — установите для этого параметра значение true, чтобы создать дискретный цветовой переход.

Примеры

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

9.2.3.18. darker

Возвращает более темный (или более светлый) цвет. Возвращаемый тип совпадает с аргументами цвета, т. е. представляет собой строковое представление цвета или объект цвета.

Синтаксис

darker(color, factor)

Аргументы

  • color — строка цвета или объект цвета

  • фактор — целое число, соответствующее коэффициенту затемнения:

    • если коэффициент превышает 100, эта функция возвращает более темный цвет (например, при установке коэффициента равным 200 возвращается цвет, яркость которого в два раза меньше);

    • если коэффициент меньше 100, цвет возврата становится светлее, но для этой цели рекомендуется использовать функцию lighter();

    • если коэффициент равен 0 или отрицателен, возвращаемое значение не определено.

Примеры

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

Дополнительная информация: lighter

9.2.3.19. lighter

Возвращает более светлый (или более темный) цвет. Возвращаемый тип совпадает с аргументами цвета, т. е. представляет собой строковое представление цвета или объект цвета.

Синтаксис

lighter(color, factor)

Аргументы

  • color — строка цвета или объект цвета

  • фактор — целое число, соответствующее коэффициенту освещения:

    • если коэффициент превышает 100, эта функция возвращает более светлый цвет (например, при установке коэффициента равным 150 возвращается цвет, который на 50 % ярче);

    • если коэффициент меньше 100, цвет возврата становится темнее, но для этой цели рекомендуется использовать функцию darker();

    • если коэффициент равен 0 или отрицателен, возвращаемое значение не определено.

Примеры

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

Дополнительная информация: darker

9.2.3.20. project_color

Возвращает цвет из цветовой схемы проекта.

Синтаксис

project_color(name)

Аргументы

  • name — название цвета

Примеры

  • project_color(„Цвет логотипа“) → „20,140,50“

Дополнительная информация: :ref:`Настройка цветов проекта<project_colors> `

9.2.3.21. project_color_object

Возвращает цвет из цветовой схемы проекта. В отличие от project_color, который возвращает строковое представление цвета, project_color_object возвращает объект цвета.

Синтаксис

project_color_object(name)

Аргументы

  • name — название цвета

Примеры

  • project_color_object(„Цвет логотипа“) → RGBA: 0,08; 0,55; 0,20; 1,00

9.2.3.22. ramp_color

Возвращает строку, представляющую цвет из цветовой гаммы.

Сохраненный вариант рампы

Возвращает строку, представляющую цвет из сохраненного градиента.

Синтаксис

ramp_color(ramp_name, value)

Аргументы

  • ramp_name — имя цветовой рампы в виде строки, например «Spectral»

  • значение — положение на рампе для выбора цвета в виде действительного числа от 0 до 1

Примеры

  • ``ramp_color(„“Спектральный““, 0,3)„“ → „253,190,115,255“

Примечание

Доступные цветовые градиенты различаются в зависимости от установки QGIS. Эта функция может не дать ожидаемых результатов, если вы перемещаете проект QGIS между установками.

Вариант рампы, созданный с помощью выражения

Возвращает строку, представляющую цвет из градиента, созданного выражением.

Синтаксис

ramp_color(ramp, value)

Аргументы

  • ramp — цветовая градиентная шкала

  • значение — положение на рампе для выбора цвета в виде действительного числа от 0 до 1

Примеры

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

Дополнительная информация: Setting a Color Ramp, The color ramp drop-down shortcut

9.2.3.23. ramp_color_object

Возвращает объект цвета из цветовой шкалы. В отличие от ramp_color, который возвращает строковое представление цвета, ramp_color_object возвращает объект цвета.

Сохраненный вариант рампы

Возвращает объект цвета из сохраненного градиента

Синтаксис

ramp_color_object(ramp_name, value)

Аргументы

  • ramp_name — имя цветовой рампы в виде строки, например «Spectral»

  • значение — положение на рампе для выбора цвета в виде действительного числа от 0 до 1

Примеры

  • ramp_color_object("Спектральный", 0,3) → RGBA: 0,99; 0,75; 0,45; 1,00

Примечание

Доступные цветовые градиенты различаются в зависимости от установки QGIS. Эта функция может не дать ожидаемых результатов, если вы перемещаете проект QGIS между установками.

Вариант рампы, созданный с помощью выражения

Возвращает объект цвета из градиента, созданного выражением.

Синтаксис

ramp_color_object(ramp, value)

Аргументы

  • ramp — цветовая градиентная шкала

  • значение — положение на рампе для выбора цвета в виде действительного числа от 0 до 1

Примеры

  • ramp_color_object(create_ramp(map(0,color_rgbf(0,0,0),1,color_rgbf(1,0,0))),1) → RGBA: 1.00,0.00,0.00,1.00

9.2.3.24. set_color_part

Устанавливает определенный цветовой компонент для цветовой строки или цветового объекта, например, красный компонент или альфа-компонент.

Синтаксис

set_color_part(color, component, value)

Аргументы

  • color — строка цвета или объект цвета

  • component — строка, соответствующая цветовому компоненту, который необходимо установить. Допустимые варианты:

    • красный: красный компонент RGB (0-255)

    • зеленый: зеленый компонент RGB (0-255)

    • синий: компонент RGB синего цвета (0-255)

    • alpha: значение альфа (прозрачность) (0-255)

    • оттенок: оттенок HSV (0-360)

    • насыщенность: насыщенность HSV (0-100)

    • значение: значение HSV (0-100)

    • hsl_hue: оттенок HSL (0-360)

    • hsl_saturation: насыщенность HSL (0-100)

    • яркость: яркость HSL (0-100)

    • голубой: компонент CMYK голубого цвета (0-100)

    • пурпурный: компонент CMYK пурпурного цвета (0-100)

    • желтый: желтый компонент CMYK (0-100)

    • черный: компонент CMYK черного цвета (0-100)

  • значение — новое значение для цветового компонента с учетом диапазонов, указанных выше

Примеры

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

  • set_color_part(color_cmykf(0.21,0,0.92,0.70),'black',100) → CMYKA: 0.21,0.00,0.92,1.00,1.00

9.2.4. Условные функции

Эта группа содержит функции для обработки условных проверок в выражениях.

9.2.4.1. CASE

CASE используется для оценки ряда условий и возврата результата для первого выполненного условия. Условия оцениваются последовательно, и если условие истинно, оценка останавливается и возвращается соответствующий результат. Если ни одно из условий не истинно, возвращается значение в предложении ELSE. Кроме того, если предложение ELSE не задано и ни одно из условий не выполняется, возвращается NULL.

CASE

КОГДА условие ТО результат

[ …n ]

[ ELSE результат ]

END

[ ] обозначает необязательные компоненты

Аргументы

  • Условие WHEN — выражение условия для оценки

  • THEN результат - Если условие оценивается как True, то результат оценивается и возвращается.

  • Результат ELSE — если ни одно из вышеуказанных условий не оценивается как True, то результат оценивается и возвращается.

Примеры

  • CASE WHEN «name» IS NULL THEN „None“ END → Возвращает строку „None“, если поле «name» имеет значение NULL.

  • CASE WHEN $area > 10000 THEN „Большая недвижимость“ WHEN $area > 5000 THEN „Средняя недвижимость“ ELSE „Маленькая недвижимость“ END → Возвращает строку „Большая недвижимость“, если площадь больше 10000, „Средняя недвижимость“, если площадь находится в диапазоне от 5000 до 10000, и „Маленькая недвижимость“ для всех остальных случаев.

9.2.4.2. coalesce

Возвращает первое значение, отличное от NULL, из списка выражений.

Эта функция может принимать любое количество аргументов.

Синтаксис

coalesce(выражение1, выражение2, …)

Аргументы

  • выражение — любое допустимое выражение или значение, независимо от типа.

Примеры

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

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

  • coalesce(«fieldA», „fallbackField“, „ERROR“) → значение fieldA, если оно не равно NULL, в противном случае значение «fallbackField» или строка „ERROR“, если оба значения равны NULL.

9.2.4.3. if

Проверяет условие и возвращает разный результат в зависимости от результата проверки.

Синтаксис

if(condition, result_when_true, result_when_false)

Аргументы

  • условие — условие, которое необходимо проверить

  • result_when_true — результат, который будет возвращен, когда условие будет истинным, или другое значение, которое не преобразуется в ложное.

  • result_when_false — результат, который будет возвращен, когда условие будет ложным, или другое значение, которое преобразуется в ложное, например 0 или „“. NULL также будет преобразовано в ложное.

Примеры

  • if( 1+1=2, „Да“, „Нет“ ) → „Да“

  • if( 1+1=3, „Да“, „Нет“ ) → „Нет“

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

  • if( „“, „Это правда (не пусто)“, „Это ложь (пусто)“ ) → „Это ложь (пусто)“

  • if( “, „Это правда (не пусто)“, „Это ложь (пусто)“ ) → „Это правда (не пусто)“

  • «if( 0, „Один“, „Ноль“ )» → «Ноль»

  • if( 10, „Один“, „Ноль“ ) → „Один“

9.2.4.4. nullif

Returns a NULL value if value1 equals value2; otherwise it returns value1. This can be used to conditionally substitute values with NULL.

Синтаксис

nullif(value1, value2)

Аргументы

  • value1 - The value that should either be used or substituted with NULL.

  • value2 - The control value that will trigger the NULL substitution.

Примеры

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

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

  • nullif("name", '') → NULL, if name is an empty string (or already NULL), the name in any other case.

9.2.4.5. regexp_match

Return the first matching position matching a regular expression within an unicode string, or 0 if the substring is not found.

Синтаксис

regexp_match(input_string, regex)

Аргументы

  • input_string - the string to test against the regular expression

  • regex - The regular expression to test against. Backslash characters must be double escaped (e.g., «\\s» to match a white space character or «\\b» to match a word boundary).

Примеры

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

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

9.2.4.6. try

Tries an expression and returns its value if error-free. If the expression returns an error, an alternative value will be returned when provided otherwise the function will return NULL.

Синтаксис

try(expression, [alternative])

[] обозначает необязательные аргументы

Аргументы

  • expression - the expression which should be run

  • alternative - the result which will be returned if the expression returns an error.

Примеры

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

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

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

9.2.5. Conversions Functions

This group contains functions to convert one data type to another (e.g., string from/to integer, binary from/to string, string to date, …).

9.2.5.1. from_base64

Decodes a string in the Base64 encoding into a binary value.

Синтаксис

from_base64(string)

Аргументы

  • string - the string to decode

Примеры

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

9.2.5.2. hash

Creates a hash from a string with a given method. One byte (8 bits) is represented with two hex „“digits““, so „md4“ (16 bytes) produces a 16 * 2 = 32 character long hex string and „keccak_512“ (64 bytes) produces a 64 * 2 = 128 character long hex string.

Синтаксис

hash(string, method)

Аргументы

  • string - the string to hash

  • method - The hash method among „md4“, „md5“, „sha1“, „sha224“, „sha384“, „sha512“, „sha3_224“, „sha3_256“, „sha3_384“, „sha3_512“, „keccak_224“, „keccak_256“, „keccak_384“, „keccak_512“

Примеры

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

9.2.5.3. md5

Creates a md5 hash from a string.

Синтаксис

md5(string)

Аргументы

  • string - the string to hash

Примеры

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

9.2.5.4. sha256

Creates a sha256 hash from a string.

Синтаксис

sha256(string)

Аргументы

  • string - the string to hash

Примеры

  • sha256('QGIS') → „eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309“

9.2.5.5. to_base64

Encodes a binary value into a string, using the Base64 encoding.

Синтаксис

to_base64(value)

Аргументы

  • value - the binary value to encode

Примеры

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

9.2.5.6. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string - string representing a date value

  • format - format used to convert the string into a date

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date. By default the current QGIS user locale is used.

Примеры

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, if the current locale uses the name „June“ for the sixth month, otherwise an error occurs

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

Further reading: format_date

9.2.5.7. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString, QTime::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string - string representing a datetime value

  • format - format used to convert the string into a datetime

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime. By default the current QGIS user locale is used.

Примеры

  • 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, if the current locale uses the name „June“ for the sixth month, otherwise an error occurs

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

Further reading: format_date

9.2.5.8. to_decimal

Converts a degree, minute, second coordinate to its decimal equivalent.

Синтаксис

to_decimal(value)

Аргументы

  • value - A degree, minute, second string.

Примеры

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

9.2.5.9. to_dm

Converts a coordinate to degree, minute.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • coordinate - A latitude or longitude value.

  • axis - The axis of the coordinate. Either „x“ or „y“.

  • precision - Number of decimals.

  • formatting - Designates the formatting type. Acceptable values are NULL (default), „aligned“ or „suffix“.

Примеры

  • 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

9.2.5.10. to_dms

Converts a coordinate to degree, minute, second.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • coordinate - A latitude or longitude value.

  • axis - The axis of the coordinate. Either „x“ or „y“.

  • precision - Number of decimals.

  • formatting - Designates the formatting type. Acceptable values are NULL (default), „aligned“ or „suffix“.

Примеры

  • 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

9.2.5.11. to_int

Converts a string to integer number. If a value cannot be converted to integer the expression is invalid (e.g „123asd“ is invalid).

Синтаксис

to_int(string)

Аргументы

  • string - string to convert to integer number

Примеры

  • to_int('123') → 123

9.2.5.12. to_interval

Converts a string to an interval type. Can be used to take days, hours, month, etc of a date.

Синтаксис

to_interval(string)

Аргументы

  • string - a string representing an interval. Allowable formats include {n} days {n} hours {n} months.

Примеры

  • 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

9.2.5.13. to_real

Converts a string to a real number. If a value cannot be converted to real the expression is invalid (e.g „123.56asd“ is invalid). Numbers are rounded after saving changes if the precision is smaller than the result of the conversion.

Синтаксис

to_real(string)

Аргументы

  • string - string to convert to real number

Примеры

  • to_real('123.45') → 123.45

9.2.5.14. to_string

Converts a number to string.

Синтаксис

to_string(number)

Аргументы

  • number - Integer or real value. The number to convert to string.

Примеры

  • to_string(123) → „123“

Further reading: format_number

9.2.5.15. to_time

Converts a string into a time object. An optional format string can be provided to parse the string; see QTime::fromString for additional documentation on the format.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string - string representing a time value

  • format - format used to convert the string into a time

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a time

Примеры

  • 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

Further reading: format_date

9.2.6. Custom Functions

This group contains functions created by the user. See Редактор функций for more details.

9.2.7. Date and Time Functions

This group contains functions for handling date and time data. This group shares several functions with the Conversions Functions (to_date, to_time, to_datetime, to_interval) and String Functions (format_date) groups.

Примечание

Storing date, datetime and intervals on fields

The ability to store date, time and datetime values directly on fields depends on the data source’s provider (e.g., Shapefile accepts date format, but not datetime or time format). The following are some suggestions to overcome this limitation:

  • date, datetime and time can be converted and stored in text type fields using the format_date() function.

  • Intervals can be stored in integer or decimal type fields after using one of the date extraction functions (e.g., day() to get the interval expressed in days)

9.2.7.1. age

Returns the difference between two dates or datetimes.

The difference is returned as an Interval and needs to be used with one of the following functions in order to extract useful information:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

Синтаксис

age(datetime1, datetime2)

Аргументы

  • datetime1 - a string, date or datetime representing the later date

  • datetime2 - a string, date or datetime representing the earlier date

Примеры

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

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

9.2.7.2. datetime_from_epoch

Returns a datetime whose date and time are the number of milliseconds, msecs, that have passed since 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC), and converted to Qt.LocalTime.

Синтаксис

datetime_from_epoch(int)

Аргументы

  • int - number (milliseconds)

Примеры

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

9.2.7.3. day

Extracts the day from a date, or the number of days from an interval.

Date variant

Extracts the day from a date or datetime.

Синтаксис

day(date)

Аргументы

  • date - a date or datetime value

Примеры

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

Interval variant

Calculates the length in days of an interval.

Синтаксис

day(interval)

Аргументы

  • interval - interval value to return number of days from

Примеры

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

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

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

9.2.7.4. day_of_week

Returns the day of the week for a specified date or datetime. The returned value ranges from 0 to 6, where 0 corresponds to a Sunday and 6 to a Saturday.

Синтаксис

day_of_week(date)

Аргументы

  • date - date or datetime value

Примеры

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

9.2.7.5. epoch

Returns the interval in milliseconds between the unix epoch and a given date value.

Синтаксис

epoch(date)

Аргументы

  • date - a date or datetime value

Примеры

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

9.2.7.6. format_date

Formats a date type or string into a custom string format. Uses Qt date/time format strings. See QDateTime::toString.

Синтаксис

format_date(datetime, format, [language])

[] обозначает необязательные аргументы

Аргументы

  • datetime - date, time or datetime value

  • format - String template used to format the string.

    Выражение

    Output

    d

    the day as number without a leading zero (1 to 31)

    dd

    the day as number with a leading zero (01 to 31)

    ddd

    the abbreviated localized day name (e.g. „Mon“ to „Sun“)

    dddd

    the long localized day name (e.g. „Monday“ to „Sunday“)

    M

    the month as number without a leading zero (1-12)

    MM

    the month as number with a leading zero (01-12)

    MMM

    the abbreviated localized month name (e.g. „Jan“ to „Dec“)

    MMMM

    the long localized month name (e.g. „January“ to „December“)

    yy

    the year as two digit number (00-99)

    yyyy

    the year as four digit number

    These expressions may be used for the time part of the format string:

    Выражение

    Output

    h

    the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)

    hh

    the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)

    H

    the hour without a leading zero (0 to 23, even with AM/PM display)

    HH

    the hour with a leading zero (00 to 23, even with AM/PM display)

    m

    the minute without a leading zero (0 to 59)

    mm

    the minute with a leading zero (00 to 59)

    s

    the second without a leading zero (0 to 59)

    ss

    the second with a leading zero (00 to 59)

    z

    the milliseconds without trailing zeroes (0 to 999)

    zzz

    the milliseconds with trailing zeroes (000 to 999)

    AP or A

    interpret as an AM/PM time. AP must be either „AM“ or „PM“.

    ap or a

    Interpret as an AM/PM time. ap must be either „am“ or „pm“.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string. By default the current QGIS user locale is used.

Примеры

  • 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“, if the current locale is an English variant

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

9.2.7.7. hour

Extracts the hour part from a datetime or time, or the number of hours from an interval.

Time variant

Extracts the hour part from a time or datetime.

Синтаксис

hour(datetime)

Аргументы

  • datetime - a time or datetime value

Примеры

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

Interval variant

Calculates the length in hours of an interval.

Синтаксис

hour(interval)

Аргументы

  • interval - interval value to return number of hours from

Примеры

  • 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

9.2.7.8. make_date

Creates a date value from year, month and day numbers.

Синтаксис

make_date(year, month, day)

Аргументы

  • year - Year number. Years 1 to 99 are interpreted as is. Year 0 is invalid.

  • month - Month number, where 1=January

  • day - Day number, beginning with 1 for the first day in the month

Примеры

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

9.2.7.9. make_datetime

Creates a datetime value from year, month, day, hour, minute and second numbers.

Синтаксис

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

Аргументы

  • year - Year number. Years 1 to 99 are interpreted as is. Year 0 is invalid.

  • month - Month number, where 1=January

  • day - Day number, beginning with 1 for the first day in the month

  • hour - Hour number

  • minute - Minutes

  • second - Seconds (fractional values include milliseconds)

Примеры

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

9.2.7.10. make_interval

Creates an interval value from year, month, weeks, days, hours, minute and seconds values.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • years - Number of years (assumes a 365.25 day year length).

  • months - Number of months (assumes a 30 day month length)

  • weeks - Number of weeks

  • days - Number of days

  • hours - Number of hours

  • minutes - Number of minutes

  • seconds - Number of seconds

Примеры

  • 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

9.2.7.11. make_time

Creates a time value from hour, minute and second numbers.

Синтаксис

make_time(hour, minute, second)

Аргументы

  • hour - Hour number

  • minute - Minutes

  • second - Seconds (fractional values include milliseconds)

Примеры

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

9.2.7.12. minute

Extracts the minutes part from a datetime or time, or the number of minutes from an interval.

Time variant

Extracts the minutes part from a time or datetime.

Синтаксис

minute(datetime)

Аргументы

  • datetime - a time or datetime value

Примеры

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

Interval variant

Calculates the length in minutes of an interval.

Синтаксис

minute(interval)

Аргументы

  • interval - interval value to return number of minutes from

Примеры

  • 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

9.2.7.13. month

Extracts the month part from a date, or the number of months from an interval.

Date variant

Extracts the month part from a date or datetime.

Синтаксис

month(date)

Аргументы

  • date - a date or datetime value

Примеры

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

Interval variant

Calculates the length in months of an interval.

Синтаксис

month(interval)

Аргументы

  • interval - interval value to return number of months from

Примеры

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

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

9.2.7.14. now

Returns the current date and time. The function is static and will return consistent results while evaluating. The time returned is the time when the expression is prepared.

Синтаксис

now()

Примеры

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

9.2.7.15. second

Extracts the seconds part from a datetime or time, or the number of seconds from an interval.

Time variant

Extracts the seconds part from a time or datetime.

Синтаксис

second(datetime)

Аргументы

  • datetime - a time or datetime value

Примеры

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

Interval variant

Calculates the length in seconds of an interval.

Синтаксис

second(interval)

Аргументы

  • interval - interval value to return number of seconds from

Примеры

  • 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

9.2.7.16. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string - string representing a date value

  • format - format used to convert the string into a date

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date. By default the current QGIS user locale is used.

Примеры

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

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, if the current locale uses the name „June“ for the sixth month, otherwise an error occurs

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

Further reading: format_date

9.2.7.17. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString, QTime::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string - string representing a datetime value

  • format - format used to convert the string into a datetime

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime. By default the current QGIS user locale is used.

Примеры

  • 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, if the current locale uses the name „June“ for the sixth month, otherwise an error occurs

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

Further reading: format_date

9.2.7.18. to_interval

Converts a string to an interval type. Can be used to take days, hours, month, etc of a date.

Синтаксис

to_interval(string)

Аргументы

  • string - a string representing an interval. Allowable formats include {n} days {n} hours {n} months.

Примеры

  • 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

9.2.7.19. to_time

Converts a string into a time object. An optional format string can be provided to parse the string; see QTime::fromString for additional documentation on the format.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • string - string representing a time value

  • format - format used to convert the string into a time

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a time

Примеры

  • 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

Further reading: format_date

9.2.7.20. week

Extracts the week number from a date, or the number of weeks from an interval.

Date variant

Extracts the week number from a date or datetime.

Синтаксис

week(date)

Аргументы

  • date - a date or datetime value

Примеры

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

Interval variant

Calculates the length in weeks of an interval.

Синтаксис

week(interval)

Аргументы

  • interval - interval value to return number of months from

Примеры

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

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

9.2.7.21. year

Extracts the year part from a date, or the number of years from an interval.

Date variant

Extracts the year part from a date or datetime.

Синтаксис

year(date)

Аргументы

  • date - a date or datetime value

Примеры

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

Interval variant

Calculates the length in years of an interval.

Синтаксис

year(interval)

Аргументы

  • interval - interval value to return number of years from

Примеры

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

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

Some examples:

Besides these functions, subtracting dates, datetimes or times using the - (minus) operator will return an interval.

Adding or subtracting an interval to dates, datetimes or times, using the + (plus) and - (minus) operators, will return a datetime.

  • Get the number of days until QGIS 3.0 release:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • The same with time:

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • Get the datetime of 100 days from now:

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

9.2.8. Fields and Values

Contains a list of fields from the active layer, and special values. Fields list includes the ones stored in the dataset, virtual and auxiliary ones as well as from joins.

Double-click a field name to have it added to your expression. You can also type the field name (preferably inside double quotes) or its alias.

To retrieve fields values to use in an expression, select the appropriate field and, in the shown widget, choose between 10 Samples and All Unique. Requested values are then displayed and you can use the Search box at the top of the list to filter the result. Sample values can also be accessed via right-clicking on a field.

To add a value to the expression you are writing, double-click on it in the list. If the value is of a string type, it should be simple quoted, otherwise no quote is needed.

9.2.8.1. NULL

Equates to a NULL value.

Синтаксис

NULL

Примеры

  • NULL → a NULL value

Примечание

To test for NULL use an IS NULL or IS NOT NULL expression.

9.2.9. Files and Paths Functions

This group contains functions which manipulate file and path names.

9.2.9.1. base_file_name

Returns the base name of the file without the directory or file suffix.

Синтаксис

base_file_name(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.9.2. exif

Retrieves exif tag values from an image file.

Синтаксис

exif(path, [tag])

[] обозначает необязательные аргументы

Аргументы

  • path - An image file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

  • tag - The tag to return. If empty, a map with all exif tag values will be returned.

Примеры

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

9.2.9.3. file_exists

Returns TRUE if a file path exists.

Синтаксис

file_exists(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.9.4. file_name

Returns the name of a file (including the file extension), excluding the directory.

Синтаксис

file_name(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.9.5. file_path

Returns the directory component of a file path. This does not include the file name.

Синтаксис

file_path(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.9.6. file_size

Returns the size (in bytes) of a file.

Синтаксис

file_size(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.9.7. file_suffix

Returns the file suffix (extension) from a file path.

Синтаксис

file_suffix(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.9.8. is_directory

Returns TRUE if a path corresponds to a directory.

Синтаксис

is_directory(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

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

9.2.9.9. is_file

Returns TRUE if a path corresponds to a file.

Синтаксис

is_file(path)

Аргументы

  • path - a file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

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

9.2.10. Form Functions

This group contains functions that operate exclusively under the attribute form context. For example, in field’s widgets settings.

9.2.10.1. current_parent_value

Only usable in an embedded form context, this function returns the current, unsaved value of a field in the parent form currently being edited. This will differ from the parent feature’s actual attribute values for features which are currently being edited or have not yet been added to a parent layer. When used in a value-relation widget filter expression, this function should be wrapped into a „coalesce()“ that can retrieve the actual parent feature from the layer when the form is not used in an embedded context.

Синтаксис

current_parent_value(field_name)

Аргументы

  • field_name - a field name in the current parent form

Примеры

  • current_parent_value( 'FIELD_NAME' ) → The current value of a field „FIELD_NAME“ in the parent form.

9.2.10.2. current_value

Returns the current, unsaved value of a field in the form or table row currently being edited. This will differ from the feature’s actual attribute values for features which are currently being edited or have not yet been added to a layer.

Синтаксис

current_value(field_name)

Аргументы

  • field_name - a field name in the current form or table row

Примеры

  • current_value( 'FIELD_NAME' ) → The current value of field „FIELD_NAME“.

9.2.11. Fuzzy Matching Functions

This group contains functions for fuzzy comparisons between values.

9.2.11.1. hamming_distance

Returns the Hamming distance between two strings. This equates to the number of characters at corresponding positions within the input strings where the characters are different. The input strings must be the same length, and the comparison is case-sensitive.

Синтаксис

hamming_distance(string1, string2)

Аргументы

  • string1 - a string

  • string2 - a string

Примеры

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

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

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

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

9.2.11.2. levenshtein

Returns the Levenshtein edit distance between two strings. This equates to the minimum number of character edits (insertions, deletions or substitutions) required to change one string to another.

The Levenshtein distance is a measure of the similarity between two strings. Smaller distances mean the strings are more similar, and larger distances indicate more different strings. The distance is case sensitive.

Синтаксис

levenshtein(string1, string2)

Аргументы

  • string1 - a string

  • string2 - a string

Примеры

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

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

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

9.2.11.3. longest_common_substring

Returns the longest common substring between two strings. This substring is the longest string that is a substring of the two input strings. For example, the longest common substring of «ABABC» and «BABCA» is «BABC». The substring is case sensitive.

Синтаксис

longest_common_substring(string1, string2)

Аргументы

  • string1 - a string

  • string2 - a string

Примеры

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

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

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

9.2.11.4. soundex

Returns the Soundex representation of a string. Soundex is a phonetic matching algorithm, so strings with similar sounds should be represented by the same Soundex code.

Синтаксис

soundex(string)

Аргументы

  • string - a string

Примеры

  • soundex('robert') → „R163“

  • soundex('rupert') → „R163“

  • soundex('rubin') → „R150“

9.2.12. General Functions

This group contains general assorted functions.

9.2.12.1. env

Gets an environment variable and returns its content as a string. If the variable is not found, NULL will be returned. This is handy to inject system specific configuration like drive letters or path prefixes. Definition of environment variables depends on the operating system, please check with your system administrator or the operating system documentation how this can be set.

Синтаксис

env(name)

Аргументы

  • name - The name of the environment variable which should be retrieved.

Примеры

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

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

  • env( 'I_DO_NOT_EXIST' ) → NULL

9.2.12.2. eval

Evaluates an expression which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields.

Синтаксис

eval(expression)

Аргументы

  • expression - an expression string

Примеры

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

  • eval(@expression_var) → [whatever the result of evaluating @expression_var might be…]

9.2.12.3. eval_template

Evaluates a template which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields.

Синтаксис

eval_template(template)

Аргументы

  • template - a template string

Примеры

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

9.2.12.4. is_layer_visible

Returns TRUE if a specified layer is visible.

Синтаксис

is_layer_visible(layer)

Аргументы

  • слой — строка, представляющая либо имя слоя, либо его идентификатор

Примеры

  • is_layer_visible('baseraster') → TRUE

9.2.12.5. mime_type

Returns the mime type of the binary data.

Синтаксис

mime_type(bytes)

Аргументы

  • bytes - the binary data

Примеры

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

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

9.2.12.6. var

Returns the value stored within a specified variable.

Синтаксис

var(name)

Аргументы

  • name - a variable name

Примеры

  • var('qgis_version') → „2.12“

Further reading: List of default variables

9.2.12.7. with_variable

This function sets a variable for any expression code that will be provided as 3rd argument. This is only useful for complicated expressions, where the same calculated value needs to be used in different places.

Синтаксис

with_variable(name, value, expression)

Аргументы

  • name - the name of the variable to set

  • value - the value to set

  • expression - the expression for which the variable will be available

Примеры

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

9.2.13. Geometry Functions

This group contains functions that operate on geometry objects (e.g. buffer, transform, $area).

9.2.13.1. affine_transform

Returns the geometry after an affine transformation. Calculations are in the Spatial Reference System of this geometry. The operations are performed in a scale, rotation, translation order. If there is a Z or M offset but the coordinate is not present in the geometry, it will be added.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • delta_x - x-axis translation

  • delta_y - y-axis translation

  • rotation_z - rotation around z-axis in degrees counter-clockwise

  • scale_x - x-axis scale factor

  • scale_y - y-axis scale factor

  • delta_z - z-axis translation

  • delta_m - m-axis translation

  • scale_z - z-axis scale factor

  • scale_m - m-axis scale factor

Примеры

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

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

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

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

Рис. 9.4 Vector point layer (green dots) before (left), and after (right) an affine transformation (translation).

9.2.13.2. angle_at_vertex

Returns the bisector angle (average angle) to the geometry for a specified vertex on a linestring geometry. Angles are in degrees clockwise from north.

Синтаксис

angle_at_vertex(geometry, vertex)

Аргументы

  • geometry - a linestring geometry

  • vertex - vertex index, starting from 0; if the value is negative, the selected vertex index will be its total count minus the absolute value

Примеры

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

9.2.13.3. apply_dash_pattern

Applies a dash pattern to a geometry, returning a MultiLineString geometry which is the input geometry stroked along each line/ring with the specified pattern.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry (accepts (multi)linestrings or (multi)polygons).

  • pattern - dash pattern, as an array of numbers representing dash and gap lengths. Must contain an even number of elements.

  • start_rule - optional rule for constraining the start of the pattern. Valid values are „no_rule“, „full_dash“, „half_dash“, „full_gap“, „half_gap“.

  • end_rule - optional rule for constraining the end of the pattern. Valid values are „no_rule“, „full_dash“, „half_dash“, „full_gap“, „half_gap“.

  • adjustment - optional rule for specifying which part of patterns are adjusted to fit the desired pattern rules. Valid values are „both“, „dash“, „gap“.

  • pattern_offset - Optional distance specifying a specific distance along the pattern to commence at.

Примеры

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1))) → MultiLineString ((1 1, 4 1),(5 1, 8 1),(9 1, 10 1, 10 1))

  • geom_to_wkt(apply_dash_pattern(geom_from_wkt('LINESTRING(1 1, 10 1)'), array(3, 1), start_rule:='half_dash')) → MultiLineString ((1 1, 2.5 1),(3.5 1, 6.5 1),(7.5 1, 10 1, 10 1))

9.2.13.4. $area

Returns the area of the current feature. The area calculated by this function respects both the current project’s ellipsoid setting and area unit settings. For example, if an ellipsoid has been set for the project then the calculated area will be ellipsoidal, and if no ellipsoid is set then the calculated area will be planimetric.

Синтаксис

$area

Примеры

  • $area → 42

9.2.13.5. area

Returns the area of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned area will match the units for the SRS. This differs from the calculations performed by the $area function, which will perform ellipsoidal calculations based on the project’s ellipsoid and area unit settings.

Синтаксис

area(geometry)

Аргументы

  • geometry - polygon geometry object

Примеры

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

9.2.13.6. azimuth

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

Синтаксис

azimuth(point_a, point_b)

Аргументы

  • point_a - point geometry

  • point_b - point geometry

Примеры

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

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

9.2.13.7. bearing

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

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • point_a - point geometry

  • point_b - point geometry

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

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

Примеры

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

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

9.2.13.8. boundary

Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the geometry). For instance, a polygon geometry will have a boundary consisting of the linestrings for each ring in the polygon. Some geometry types do not have a defined boundary, e.g., points or geometry collections, and will return NULL.

Синтаксис

boundary(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

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

../../../_images/boundary_polygon.png

Рис. 9.5 Boundary (black dashed line) of the source polygon layer

Further reading: Boundary algorithm

9.2.13.9. bounds

Returns a geometry which represents the bounding box of an input geometry. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

bounds(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

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

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

Рис. 9.6 Black lines represent the bounding boxes of each polygon feature

Further reading: Bounding boxes algorithm

9.2.13.10. bounds_height

Returns the height of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

bounds_height(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

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

9.2.13.11. bounds_width

Returns the width of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

bounds_width(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

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

9.2.13.12. buffer

Returns a geometry that represents all points whose distance from this geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • distance - buffer distance in layer units

  • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes.

  • cap - end cap style for buffer. Valid values are „round“, „flat“ or „square“

  • join - join style for buffer. Valid values are „round“, „bevel“ or „miter“.

  • miter_limit - miter distance limit, for use when the join style is set to „miter“

Примеры

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

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

Рис. 9.7 Buffer (in yellow) of points, line, polygon with positive buffer, and polygon with negative buffer

Further reading: Buffer algorithm

9.2.13.13. buffer_by_m

Creates a buffer along a line geometry where the buffer diameter varies according to the m-values at the line vertices.

Синтаксис

buffer_by_m(geometry, [segments=8])

[] обозначает необязательные аргументы

Аргументы

  • geometry - input geometry. Must be a (multi)line geometry with m values.

  • segments - number of segments to approximate quarter-circle curves in the buffer.

Примеры

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → A variable width buffer starting with a diameter of 0.5 and ending with a diameter of 0.2 along the linestring geometry.

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

Рис. 9.8 Buffering line features using the m value on the vertices

Further reading: Variable width buffer (by M value) algorithm

9.2.13.14. centroid

Returns the geometric center of a geometry.

Синтаксис

centroid(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • centroid(@geometry) → a point geometry

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

Рис. 9.9 The red stars represent the centroids of the features of the input layer.

Further reading: Centroids algorithm

9.2.13.15. close_line

Returns a closed line string of the input line string by appending the first point to the end of the line, if it is not already closed. If the geometry is not a line string or multi line string then the result will be NULL.

Синтаксис

close_line(geometry)

Аргументы

  • geometry - a line string geometry

Примеры

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

9.2.13.16. closest_point

Returns the point on geometry1 that is closest to geometry2.

Синтаксис

closest_point(geometry1, geometry2)

Аргументы

  • geometry1 - geometry to find closest point on

  • geometry2 - geometry to find closest point to

Примеры

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

9.2.13.17. collect_geometries

Collects a set of geometries into a multi-part geometry object.

List of arguments variant

Geometry parts are specified as separate arguments to the function.

Синтаксис

collect_geometries(geometry1, geometry2, …)

Аргументы

  • geometry - a geometry

Примеры

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

Array variant

Geometry parts are specified as an array of geometry parts.

Синтаксис

collect_geometries(array)

Аргументы

  • array - array of geometry objects

Примеры

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

Further reading: Collect geometries algorithm

9.2.13.18. combine

Returns the combination of two geometries.

Синтаксис

combine(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

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

9.2.13.19. concave_hull

Returns a possibly concave polygon that contains all the points in the geometry

Синтаксис

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

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • target_percent - the percentage of area of the convex hull the solution tries to approach. A target_percent of 1 gives the same result as the convex hull. A target_percent between 0 and 0.99 produces a result that should have a smaller area than the convex hull.

  • allow_holes - optional argument specifying whether to allow holes within the output geometry. Defaults to FALSE, set to TRUE to allow including holes in the output geometry.

Примеры

  • geom_to_wkt(concave_hull(geom_from_wkt('MULTILINESTRING((106 164,30 112,74 70,82 112,130 94,130 62,122 40,156 32,162 76,172 88),(132 178,134 148,128 136,96 128,132 108,150 130,170 142,174 110,156 96,158 90,158 88),(22 64,66 28,94 38,94 68,114 76,112 30,132 10,168 18,178 34,186 52,184 74,190 100,190 122,182 148,178 170,176 184,156 164,146 178,132 186,92 182,56 158,36 150,62 150,76 128,88 118))'), 0.99)) → „Polygon ((30 112, 36 150, 92 182, 132 186, 176 184, 190 122, 190 100, 186 52, 178 34, 168 18, 132 10, 112 30, 66 28, 22 64, 30 112))“

../../../_images/concave_hull_threshold.png

Рис. 9.10 Concave hulls with increasing target_percent parameter

Further reading: convex_hull, Concave hull algorithm

9.2.13.20. contains

Tests whether a geometry contains another. Returns TRUE if and only if no points of geometry2 lie in the exterior of geometry1, and at least one point of the interior of geometry2 lies in the interior of geometry1.

Синтаксис

contains(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

Further reading: overlay_contains

9.2.13.21. convex_hull

Returns the convex hull of a geometry. It represents the minimum convex geometry that encloses all geometries within the set.

Синтаксис

convex_hull(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

../../../_images/convex_hull.png

Рис. 9.11 Black lines identify the convex hull for each feature

Further reading: concave_hull, Convex hull algorithm

9.2.13.22. crosses

Tests whether a geometry crosses another. Returns TRUE if the supplied geometries have some, but not all, interior points in common.

Синтаксис

crosses(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

Further reading: overlay_crosses

9.2.13.23. densify_by_count

Takes a polygon or line layer geometry and generates a new one in which the geometries have a larger number of vertices than the original one.

Синтаксис

densify_by_count(geometry, vertices)

Аргументы

  • geometry - a geometry (accepts (multi)linestrings or (multi)polygons).

  • vertices - number of vertices to add (per segment)

Примеры

  • geom_to_wkt(densify_by_count(geom_from_wkt('LINESTRING(1 1, 10 1)'), 3)) → LineString (1 1, 3.25 1, 5.5 1, 7.75 1, 10 1)

../../../_images/densify_geometry.png

Рис. 9.12 Red points show the vertices before and after the densify

Further reading: Densify by count algorithm

9.2.13.24. densify_by_distance

Takes a polygon or line layer geometry and generates a new one in which the geometries are densified by adding additional vertices on edges that have a maximum distance of the specified interval distance.

Синтаксис

densify_by_distance(geometry, distance)

Аргументы

  • geometry - a geometry (accepts (multi)linestrings or (multi)polygons).

  • distance - maximum interval distance between vertices in output geometry

Примеры

  • geom_to_wkt(densify_by_distance(geom_from_wkt('LINESTRING(1 1, 10 1)'), 4)) → LineString (1 1, 4 1, 7 1, 10 1)

../../../_images/densify_geometry_interval.png

Рис. 9.13 Densify geometry at a given interval

Further reading: Densify by interval algorithm

9.2.13.25. difference

Returns a geometry that represents that part of geometry1 that does not intersect with geometry2.

Синтаксис

difference(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

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

../../../_images/difference.png

Рис. 9.14 Difference operation between a two-features input layer ‘a’ and a single feature overlay layer ‘b’ (left) - resulting in a new layer with the modified ‘a’ features (right)

Further reading: Difference algorithm

9.2.13.26. disjoint

Tests whether geometries do not spatially intersect. Returns TRUE if the geometries do not share any space together.

Синтаксис

disjoint(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

Further reading: overlay_disjoint

9.2.13.27. distance

Returns the minimum distance (based on spatial reference) between two geometries in projected units.

Синтаксис

distance(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

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

9.2.13.28. distance_to_vertex

Returns the distance along the geometry to a specified vertex.

Синтаксис

distance_to_vertex(geometry, vertex)

Аргументы

  • geometry - a linestring geometry

  • vertex - vertex index, starting from 0; if the value is negative, the selected vertex index will be its total count minus the absolute value

Примеры

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

9.2.13.29. end_point

Returns the last node from a geometry.

Синтаксис

end_point(geometry)

Аргументы

  • geometry - geometry object

Примеры

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

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

Рис. 9.15 End point of a line feature

Further reading: start_point, Extract specific vertices algorithm

9.2.13.30. exif_geotag

Creates a point geometry from the exif geotags of an image file.

Синтаксис

exif_geotag(path)

Аргументы

  • path - An image file path or a map layer value. If a map layer value is specified then the file source of the layer will be used.

Примеры

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

9.2.13.31. extend

Extends the start and end of a linestring geometry by a specified amount. Lines are extended using the bearing of the first and last segment in the line. For a multilinestring, all the parts are extended. Distances are in the Spatial Reference System of this geometry.

Синтаксис

extend(geometry, start_distance, end_distance)

Аргументы

  • geometry - a (multi)linestring geometry

  • start_distance - distance to extend the start of the line

  • end_distance - distance to extend the end of the line.

Примеры

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

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

../../../_images/extend_lines.png

Рис. 9.16 The red dashes represent the initial and final extension of the original layer

Further reading: Extend lines algorithm

9.2.13.32. exterior_ring

Returns a line string representing the exterior ring of a polygon geometry. If the geometry is not a polygon then the result will be NULL.

Синтаксис

exterior_ring(geometry)

Аргументы

  • geometry - a polygon geometry

Примеры

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

../../../_images/exterior_ring.png

Рис. 9.17 The dashed line represents the exterior ring of the polygon

9.2.13.33. extrude

Returns an extruded version of the input (Multi-)Curve or (Multi-)Linestring geometry with an extension specified by x and y.

Синтаксис

extrude(geometry, x, y)

Аргументы

  • geometry - a curve or linestring geometry

  • x - x extension, numeric value

  • y - y extension, numeric value

Примеры

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

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

../../../_images/extrude.png

Рис. 9.18 Generating a polygon by extruding a line with offset in x and y directions

9.2.13.34. flip_coordinates

Returns a copy of the geometry with the x and y coordinates swapped. Useful for repairing geometries which have had their latitude and longitude values reversed.

Синтаксис

flip_coordinates(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

  • geom_to_wkt(flip_coordinates(geom_from_wkt('LineString(0 2, 1 0, 1 6)'))) → „LineString (2 0, 0 1, 6 1)“

Further reading: Swap X and Y coordinates algorithm

9.2.13.35. force_polygon_ccw

Forces a geometry to respect the convention where exterior rings are counter-clockwise, interior rings are clockwise.

Синтаксис

force_polygon_ccw(geometry)

Аргументы

  • geometry - a geometry. Any non-polygon geometries are returned unchanged.

Примеры

  • geom_to_wkt(force_polygon_ccw(geometry:=geom_from_wkt('Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))'))) → „Polygon ((-1 -1, 4 0, 4 2, 0 2, -1 -1))“

Further reading: force_polygon_cw, force_rhr

9.2.13.36. force_polygon_cw

Forces a geometry to respect the convention where exterior rings are clockwise, interior rings are counter-clockwise.

Синтаксис

force_polygon_cw(geometry)

Аргументы

  • geometry - a geometry. Any non-polygon geometries are returned unchanged.

Примеры

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

Further reading: force_polygon_ccw, force_rhr

9.2.13.37. force_rhr

Forces a geometry to respect the Right-Hand-Rule, in which the area that is bounded by a polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction. Due to the inconsistency in the definition of the Right-Hand-Rule in some contexts it is recommended to use the explicit force_polygon_cw function instead.

Синтаксис

force_rhr(geometry)

Аргументы

  • geometry - a geometry. Any non-polygon geometries are returned unchanged.

Примеры

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

Further reading: Force right-hand-rule algorithm, force_polygon_ccw, force_polygon_cw

9.2.13.38. geom_from_gml

Returns a geometry from a GML representation of geometry.

Синтаксис

geom_from_gml(gml)

Аргументы

  • gml - GML representation of a geometry as a string

Примеры

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → a line geometry object

9.2.13.39. geom_from_wkb

Returns a geometry created from a Well-Known Binary (WKB) representation.

Синтаксис

geom_from_wkb(binary)

Аргументы

  • binary - Well-Known Binary (WKB) representation of a geometry (as a binary blob)

Примеры

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → a point geometry object

9.2.13.40. geom_from_wkt

Returns a geometry created from a Well-Known Text (WKT) representation.

Синтаксис

geom_from_wkt(text)

Аргументы

  • text - Well-Known Text (WKT) representation of a geometry

Примеры

  • geom_from_wkt( 'POINT(4 5)' ) → a geometry object

9.2.13.41. geom_to_wkb

Returns the Well-Known Binary (WKB) representation of a geometry

Синтаксис

geom_to_wkb(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

9.2.13.42. geom_to_wkt

Returns the Well-Known Text (WKT) representation of the geometry without SRID metadata.

Синтаксис

geom_to_wkt(geometry, [precision=8])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • precision - numeric precision

Примеры

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

9.2.13.43. $geometry

Returns the geometry of the current feature. Can be used for processing with other functions. WARNING: This function is deprecated. It is recommended to use the replacement @geometry variable instead.

Синтаксис

$geometry

Примеры

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

9.2.13.44. geometry

Returns a feature’s geometry.

Синтаксис

geometry(feature)

Аргументы

  • feature - a feature object

Примеры

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

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → the geometry in WKT of the feature with the id 1 on the layer «streets», e.g. „POINT(6 50)“

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

9.2.13.45. geometry_n

Returns a specific geometry from a geometry collection, or NULL if the input geometry is not a collection. Also returns a part from a multipart geometry.

Синтаксис

geometry_n(geometry, index)

Аргументы

  • geometry - geometry collection

  • index - index of geometry to return, where 1 is the first geometry in the collection

Примеры

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

9.2.13.46. geometry_type

Returns a string value describing the type of a geometry (Point, Line or Polygon)

Синтаксис

geometry_type(geometry)

Аргументы

  • geometry - a geometry

Примеры

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

9.2.13.47. hausdorff_distance

Returns the Hausdorff distance between two geometries. This is basically a measure of how similar or dissimilar 2 geometries are, with a lower distance indicating more similar geometries.

The function can be executed with an optional densify fraction argument. If not specified, an approximation to the standard Hausdorff distance is used. This approximation is exact or close enough for a large subset of useful cases. Examples of these are:

  • computing distance between Linestrings that are roughly parallel to each other, and roughly equal in length. This occurs in matching linear networks.

  • Testing similarity of geometries.

If the default approximate provided by this method is insufficient, specify the optional densify fraction argument. Specifying this argument performs a segment densification before computing the discrete Hausdorff distance. The parameter sets the fraction by which to densify each segment. Each segment will be split into a number of equal-length subsegments, whose fraction of the total length is closest to the given fraction. Decreasing the densify fraction parameter will make the distance returned approach the true Hausdorff distance for the geometries.

Синтаксис

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] обозначает необязательные аргументы

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

  • densify_fraction - densify fraction amount

Примеры

  • 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

9.2.13.48. inclination

Returns the inclination measured from the zenith (0) to the nadir (180) on point_a to point_b.

Синтаксис

inclination(point_a, point_b)

Аргументы

  • point_a - point geometry

  • point_b - point geometry

Примеры

  • 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

9.2.13.49. interior_ring_n

Returns a specific interior ring from a polygon geometry, or NULL if the geometry is not a polygon.

Синтаксис

interior_ring_n(geometry, index)

Аргументы

  • geometry - polygon geometry

  • index - index of interior to return, where 1 is the first interior ring

Примеры

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

9.2.13.50. intersection

Returns a geometry that represents the shared portion of two geometries.

Синтаксис

intersection(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

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

Further reading: Intersection algorithm

9.2.13.51. intersects

Tests whether a geometry intersects another. Returns TRUE if the geometries spatially intersect (share any portion of space) and false if they do not.

Синтаксис

intersects(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

Further reading: overlay_intersects

9.2.13.52. intersects_bbox

Tests whether a geometry’s bounding box overlaps another geometry’s bounding box. Returns TRUE if the geometries spatially intersect the bounding box defined and false if they do not.

Синтаксис

intersects_bbox(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

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

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → FALSE

9.2.13.53. is_closed

Returns TRUE if a line string is closed (start and end points are coincident), or false if a line string is not closed. If the geometry is not a line string then the result will be NULL.

Синтаксис

is_closed(geometry)

Аргументы

  • geometry - a line string geometry

Примеры

  • 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

9.2.13.54. is_empty

Returns TRUE if a geometry is empty (without coordinates), false if the geometry is not empty and NULL if there is no geometry. See also is_empty_or_null.

Синтаксис

is_empty(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_empty(geom_from_wkt('LINESTRING EMPTY')) → TRUE

  • is_empty(geom_from_wkt('POINT(7 4)')) → FALSE

  • is_empty(geom_from_wkt('POINT EMPTY')) → TRUE

Further reading: is_empty_or_null

9.2.13.55. is_empty_or_null

Returns TRUE if a geometry is NULL or empty (without coordinates) or false otherwise. This function is like the expression @geometry IS NULL or is_empty(@geometry)“

Синтаксис

is_empty_or_null(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • is_empty_or_null(NULL) → TRUE

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → FALSE

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → TRUE

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → FALSE

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → TRUE

Further reading: is_empty, NULL

9.2.13.56. is_multipart

Returns TRUE if the geometry is of Multi type.

Синтаксис

is_multipart(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → TRUE

  • is_multipart(geom_from_wkt('POINT (0 0)')) → FALSE

9.2.13.57. is_valid

Returns TRUE if a geometry is valid; if it is well-formed in 2D according to the OGC rules.

Синтаксис

is_valid(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → TRUE

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → FALSE

Further reading: make_valid, Check validity algorithm

9.2.13.58. $length

Returns the length of a linestring. If you need the length of a border of a polygon, use $perimeter instead. The length calculated by this function respects both the current project’s ellipsoid setting and distance unit settings. For example, if an ellipsoid has been set for the project then the calculated length will be ellipsoidal, and if no ellipsoid is set then the calculated length will be planimetric.

Синтаксис

$length

Примеры

  • $length → 42.4711

9.2.13.59. length

Returns the number of characters in a string or the length of a geometry linestring.

String variant

Returns the number of characters in a string.

Синтаксис

length(string)

Аргументы

  • string - string to count length of

Примеры

  • length('hello') → 5

Geometry variant

Calculate the length of a geometry line object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

Синтаксис

length(geometry)

Аргументы

  • geometry - line geometry object

Примеры

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

Further reading: straight_distance_2d

9.2.13.60. length3D

Calculates the 3D length of a geometry line object. If the geometry is not a 3D line object, it returns its 2D length. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

Синтаксис

length3D(geometry)

Аргументы

  • geometry - line geometry object

Примеры

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

9.2.13.61. line_interpolate_angle

Returns the angle parallel to the geometry at a specified distance along a linestring geometry. Angles are in degrees clockwise from north.

Синтаксис

line_interpolate_angle(geometry, distance)

Аргументы

  • geometry - a linestring geometry

  • distance - distance along line to interpolate angle at

Примеры

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

9.2.13.62. line_interpolate_point

Returns the point interpolated by a specified distance along a linestring geometry.

Синтаксис

line_interpolate_point(geometry, distance)

Аргументы

  • geometry - a linestring geometry

  • distance - distance along line to interpolate

Примеры

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 8 0)'), distance:=5)) → „Point (5 0)“

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 1, 2 0)'), distance:=2.1)) → „Point (1.48492424 0.51507576)“

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 1 0)'), distance:=2)) → NULL

../../../_images/interpolated_point.png

Рис. 9.19 Interpolated point at 500m of the beginning of the line

Further reading: Interpolate point on line algorithm

9.2.13.63. line_interpolate_point_by_m

Returns the point interpolated by a matching M value along a linestring geometry.

Синтаксис

line_interpolate_point_by_m(geometry, m, [use_3d_distance=false])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a linestring geometry

  • m - an M value

  • use_3d_distance - controls whether 2D or 3D distances between vertices should be used during interpolation (this option is only considered for lines with z values)

Примеры

  • geom_to_wkt(line_interpolate_point_by_m(geom_from_wkt('LineStringM(0 0 0, 10 10 10)'), m:=5)) → „Point (5 5)“

9.2.13.64. line_locate_m

Returns the distance along a linestring corresponding to the first matching interpolated M value.

Синтаксис

line_locate_m(geometry, m, [use_3d_distance=false])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a linestring geometry

  • m - an M value

  • use_3d_distance - controls whether 2D or 3D distances between vertices should be used during interpolation (this option is only considered for lines with z values)

Примеры

  • line_locate_m(geometry:=geom_from_wkt('LineStringM(0 0 0, 10 10 10)'),m:=5) → 7.07106

9.2.13.65. line_locate_point

Returns the distance along a linestring corresponding to the closest position the linestring comes to a specified point geometry.

Синтаксис

line_locate_point(geometry, point)

Аргументы

  • geometry - a linestring geometry

  • point - point geometry to locate closest position on linestring to

Примеры

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

9.2.13.66. line_merge

Returns a LineString or MultiLineString geometry, where any connected LineStrings from the input geometry have been merged into a single linestring. This function will return NULL if passed a geometry which is not a LineString/MultiLineString.

Синтаксис

line_merge(geometry)

Аргументы

  • geometry - a LineString/MultiLineString geometry

Примеры

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

9.2.13.67. line_substring

Returns the portion of a line (or curve) geometry which falls between the specified start and end distances (measured from the beginning of the line). Z and M values are linearly interpolated from existing values.

Синтаксис

line_substring(geometry, start_distance, end_distance)

Аргументы

  • geometry - a linestring or curve geometry

  • start_distance - distance to start of substring

  • end_distance - distance to end of substring

Примеры

  • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → „LineString (2 0,6 0)“

../../../_images/substring.png

Рис. 9.20 Substring line with starting distance set at 0 meters and the ending distance at 250 meters.

Further reading: Line substring algorithm

9.2.13.68. m

Returns the m (measure) value of a point geometry.

Синтаксис

m(geometry)

Аргументы

  • geometry - a point geometry

Примеры

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

9.2.13.69. m_at

Retrieves a m coordinate of the geometry, or NULL if the geometry has no m value.

Синтаксис

m_at(geometry, vertex)

Аргументы

  • geometry - geometry object

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Примеры

  • m_at(geom_from_wkt('LineStringZM(0 0 0 0, 10 10 0 5, 10 10 0 0)'), 1) → 5

9.2.13.70. m_max

Returns the maximum m (measure) value of a geometry.

Синтаксис

m_max(geometry)

Аргументы

  • geometry - a geometry containing m values

Примеры

  • 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

9.2.13.71. m_min

Returns the minimum m (measure) value of a geometry.

Синтаксис

m_min(geometry)

Аргументы

  • geometry - a geometry containing m values

Примеры

  • 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

9.2.13.72. main_angle

Returns the angle of the long axis (clockwise, in degrees from North) of the oriented minimal bounding rectangle, which completely covers the geometry.

Синтаксис

main_angle(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

9.2.13.73. make_circle

Creates a circular polygon.

Синтаксис

make_circle(center, radius, [segments=36])

[] обозначает необязательные аргументы

Аргументы

  • center - center point of the circle

  • radius - radius of the circle

  • segments - optional argument for polygon segmentation. By default this value is 36

Примеры

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

9.2.13.74. make_ellipse

Creates an elliptical polygon.

Синтаксис

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36])

[] обозначает необязательные аргументы

Аргументы

  • center - center point of the ellipse

  • semi_major_axis - semi-major axis of the ellipse

  • semi_minor_axis - semi-minor axis of the ellipse

  • azimuth - orientation of the ellipse

  • segments - optional argument for polygon segmentation. By default this value is 36

Примеры

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

9.2.13.75. make_line

Creates a line geometry from a series of point geometries.

List of arguments variant

Line vertices are specified as separate arguments to the function.

Синтаксис

make_line(point1, point2, …)

Аргументы

  • point - a point geometry (or array of points)

Примеры

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

Array variant

Line vertices are specified as an array of points.

Синтаксис

make_line(array)

Аргументы

  • array - array of points

Примеры

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

9.2.13.76. make_point

Creates a point geometry from an x and y (and optional z and m) value.

Синтаксис

make_point(x, y, [z], [m])

[] обозначает необязательные аргументы

Аргументы

  • x - x coordinate of point

  • y - y coordinate of point

  • z - optional z coordinate of point

  • m - optional m value of point

Примеры

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

9.2.13.77. make_point_m

Creates a point geometry from an x, y coordinate and m value.

Синтаксис

make_point_m(x, y, m)

Аргументы

  • x - x coordinate of point

  • y - y coordinate of point

  • m - m value of point

Примеры

  • geom_to_wkt(make_point_m(2,4,6)) → „PointM (2 4 6)“

9.2.13.78. make_polygon

Creates a polygon geometry from an outer ring and optional series of inner ring geometries.

Синтаксис

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] обозначает необязательные аргументы

Аргументы

  • outerRing - closed line geometry for polygon’s outer ring

  • innerRing - optional closed line geometry for inner ring

Примеры

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

9.2.13.79. make_rectangle_3points

Creates a rectangle from 3 points.

Синтаксис

make_rectangle_3points(point1, point2, point3, [option=0])

[] обозначает необязательные аргументы

Аргументы

  • point1 - First point.

  • point2 - Second point.

  • point3 - Third point.

  • option - An optional argument to construct the rectangle. By default this value is 0. Value can be 0 (distance) or 1 (projected). Option distance: Second distance is equal to the distance between 2nd and 3rd point. Option projected: Second distance is equal to the distance of the perpendicular projection of the 3rd point on the segment or its extension.

Примеры

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

9.2.13.80. make_regular_polygon

Creates a regular polygon.

Синтаксис

make_regular_polygon(center, radius, number_sides, [circle=0])

[] обозначает необязательные аргументы

Аргументы

  • center - center of the regular polygon

  • radius - second point. The first if the regular polygon is inscribed. The midpoint of the first side if the regular polygon is circumscribed.

  • number_sides - Number of sides/edges of the regular polygon

  • circle - Optional argument to construct the regular polygon. By default this value is 0. Value can be 0 (inscribed) or 1 (circumscribed)

Примеры

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

9.2.13.81. make_square

Creates a square from a diagonal.

Синтаксис

make_square(point1, point2)

Аргументы

  • point1 - First point of the diagonal

  • point2 - Last point of the diagonal

Примеры

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

9.2.13.82. make_triangle

Creates a triangle polygon.

Синтаксис

make_triangle(point1, point2, point3)

Аргументы

  • point1 - first point of the triangle

  • point2 - second point of the triangle

  • point3 - third point of the triangle

Примеры

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

9.2.13.83. make_valid

Returns a valid geometry or an empty geometry if the geometry could not be made valid.

Синтаксис

make_valid(geometry, [method=structure], [keep_collapsed=false])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • method - repair algorithm. May be either „structure“ or „linework“. The „linework“ option combines all rings into a set of noded lines and then extracts valid polygons from that linework. The „structure“ method first makes all rings valid and then merges shells and subtracts holes from shells to generate valid result. Assumes that holes and shells are correctly categorized.

  • keep_collapsed - if set to true, then components that have collapsed into a lower dimensionality will be kept. For example, a ring collapsing to a line, or a line collapsing to a point.

Примеры

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'))) → „Polygon ((3 2, 5 8, 4 1, 3 2))“

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8, 3 2, 4 2))'), 'linework')) → „GeometryCollection (Polygon ((5 8, 4 1, 3 2, 5 8)),LineString (3 2, 4 2))“

  • geom_to_wkt(make_valid(geom_from_wkt('POLYGON((3 2, 4 1, 5 8))'), method:='linework')) → „Polygon ((3 2, 4 1, 5 8, 3 2))“

  • make_valid(geom_from_wkt('LINESTRING(0 0)')) → An empty geometry

Further reading: is_valid, Fix geometries algorithm

9.2.13.84. minimal_circle

Returns the minimal enclosing circle of a geometry. It represents the minimum circle that encloses all geometries within the set.

Синтаксис

minimal_circle(geometry, [segments=36])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • segments - optional argument for polygon segmentation. By default this value is 36

Примеры

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → „Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))“

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → „Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))“

../../../_images/minimum_enclosing_circles.png

Рис. 9.21 Minimal enclosing circle of each feature

Further reading: Minimum enclosing circles algorithm

9.2.13.85. nodes_to_points

Returns a multipoint geometry consisting of every node in the input geometry.

Синтаксис

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] обозначает необязательные аргументы

Аргументы

  • geometry - geometry object

  • ignore_closing_nodes - optional argument specifying whether to include duplicate nodes which close lines or polygons rings. Defaults to false, set to true to avoid including these duplicate nodes in the output collection.

Примеры

  • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → „MultiPoint ((0 0),(1 1),(2 2))“

  • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → „MultiPoint ((-1 -1),(4 0),(4 2),(0 2))“

../../../_images/extract_nodes.png

Рис. 9.22 Multi-point feature extracted from vertices

Further reading: Extract vertices algorithm

9.2.13.86. num_geometries

Returns the number of geometries in a geometry collection, or the number of parts in a multi-part geometry. The function returns NULL if the input geometry is not a collection.

Синтаксис

num_geometries(geometry)

Аргументы

  • geometry - geometry collection or multi-part geometry

Примеры

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

  • num_geometries(geom_from_wkt('MULTIPOINT((0 1), (0 0), (1 0))')) → 3

9.2.13.87. num_interior_rings

Returns the number of interior rings in a polygon or geometry collection, or NULL if the input geometry is not a polygon or collection.

Синтаксис

num_interior_rings(geometry)

Аргументы

  • geometry - input geometry

Примеры

  • 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

9.2.13.88. num_points

Returns the number of vertices in a geometry.

Синтаксис

num_points(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • num_points(@geometry) → number of vertices in the current feature’s geometry

9.2.13.89. num_rings

Returns the number of rings (including exterior rings) in a polygon or geometry collection, or NULL if the input geometry is not a polygon or collection.

Синтаксис

num_rings(geometry)

Аргументы

  • geometry - input geometry

Примеры

  • 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

9.2.13.90. offset_curve

Returns a geometry formed by offsetting a linestring geometry to the side. Distances are in the Spatial Reference System of this geometry.

Синтаксис

offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a (multi)linestring geometry

  • distance - offset distance. Positive values will be buffered to the left of lines, negative values to the right

  • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother line with more nodes.

  • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel

  • miter_limit - limit on the miter ratio used for very sharp corners (when using miter joins only)

Примеры

  • offset_curve(@geometry, 10.5) → line offset to the left by 10.5 units

  • offset_curve(@geometry, -10.5) → line offset to the right by 10.5 units

  • offset_curve(@geometry, 10.5, segments:=16, join:=1) → line offset to the left by 10.5 units, using more segments to result in a smoother curve

  • offset_curve(@geometry, 10.5, join:=3) → line offset to the left by 10.5 units, using a beveled join

../../../_images/offset_lines.png

Рис. 9.23 In blue the source layer, in red the offset one

Further reading: Offset lines algorithm

9.2.13.91. order_parts

Orders the parts of a MultiGeometry by a given criteria

Синтаксис

order_parts(geometry, orderby, [ascending=true])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a multi-type geometry

  • orderby - an expression string defining the order criteria

  • ascending - boolean, True for ascending, False for descending

Примеры

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

9.2.13.92. oriented_bbox

Returns a geometry which represents the minimal oriented bounding box of an input geometry.

Синтаксис

oriented_bbox(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → „Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))“

../../../_images/oriented_minimum_bounding_box.png

Рис. 9.24 Oriented minimum bounding box

Further reading: Oriented minimum bounding box algorithm

9.2.13.93. overlaps

Tests whether a geometry overlaps another. Returns TRUE if the geometries share space, are of the same dimension, but are not completely contained by each other.

Синтаксис

overlaps(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

9.2.13.94. overlay_contains

Returns whether the current feature spatially contains at least one feature from a target layer, or an array of expression-based results for the features in the target layer contained in the current feature.

Read more on the underlying GEOS «Contains» predicate, as described in PostGIS ST_Contains function.

Синтаксис

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_contains('regions') → TRUE if the current feature spatially contains a region

  • overlay_contains('regions', filter:= population > 10000) → TRUE if the current feature spatially contains a region with a population greater than 10000

  • overlay_contains('regions', name) → an array of names, for the regions contained in the current feature

  • array_to_string(overlay_contains('regions', name)) → a string as a comma separated list of names, for the regions contained in the current feature

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions contained in the current feature and with a population greater than 10000

  • overlay_contains(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions contained in the current feature

Further reading: contains, array manipulation, Select by location algorithm

9.2.13.95. overlay_crosses

Returns whether the current feature spatially crosses at least one feature from a target layer, or an array of expression-based results for the features in the target layer crossed by the current feature.

Read more on the underlying GEOS «Crosses» predicate, as described in PostGIS ST_Crosses function.

Синтаксис

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_crosses('regions') → TRUE if the current feature spatially crosses a region

  • overlay_crosses('regions', filter:= population > 10000) → TRUE if the current feature spatially crosses a region with a population greater than 10000

  • overlay_crosses('regions', name) → an array of names, for the regions crossed by the current feature

  • array_to_string(overlay_crosses('regions', name)) → a string as a comma separated list of names, for the regions crossed by the current feature

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions crossed by the current feature and with a population greater than 10000

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions crossed by the current feature

Further reading: crosses, array manipulation, Select by location algorithm

9.2.13.96. overlay_disjoint

Returns whether the current feature is spatially disjoint from all the features of a target layer, or an array of expression-based results for the features in the target layer that are disjoint from the current feature.

Read more on the underlying GEOS «Disjoint» predicate, as described in PostGIS ST_Disjoint function.

Синтаксис

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_disjoint('regions') → TRUE if the current feature is spatially disjoint from all the regions

  • overlay_disjoint('regions', filter:= population > 10000) → TRUE if the current feature is spatially disjoint from all the regions with a population greater than 10000

  • overlay_disjoint('regions', name) → an array of names, for the regions spatially disjoint from the current feature

  • array_to_string(overlay_disjoint('regions', name)) → a string as a comma separated list of names, for the regions spatially disjoint from the current feature

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions spatially disjoint from the current feature and with a population greater than 10000

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially disjoint from the current feature

Further reading: disjoint, array manipulation, Select by location algorithm

9.2.13.97. overlay_equals

Returns whether the current feature spatially equals to at least one feature from a target layer, or an array of expression-based results for the features in the target layer that are spatially equal to the current feature.

Read more on the underlying GEOS «Equals» predicate, as described in PostGIS ST_Equals function.

Синтаксис

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_equals('regions') → TRUE if the current feature is spatially equal to a region

  • overlay_equals('regions', filter:= population > 10000) → TRUE if the current feature is spatially equal to a region with a population greater than 10000

  • overlay_equals('regions', name) → an array of names, for the regions spatially equal to the current feature

  • array_to_string(overlay_equals('regions', name)) → a string as a comma separated list of names, for the regions spatially equal to the current feature

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions spatially equal to the current feature and with a population greater than 10000

  • overlay_equals(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially equal to the current feature

Further reading: array manipulation, Select by location algorithm

9.2.13.98. overlay_intersects

Returns whether the current feature spatially intersects at least one feature from a target layer, or an array of expression-based results for the features in the target layer intersected by the current feature.

Read more on the underlying GEOS «Intersects» predicate, as described in PostGIS ST_Intersects function.

Синтаксис

overlay_intersects(layer, [expression], [filter], [limit], [cache=false], [min_overlap], [min_inscribed_circle_radius], [return_details], [sort_by_intersection_size])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

  • min_overlap - defines an optional exclusion filter:

    • for polygons, a minimum area in current feature squared units for the intersection. If the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has an area greater or equal to the value

    • for lines, a minimum length in current feature units. If the intersection results in multiple lines the intersection will be returned if at least one of the lines has a length greater or equal to the value.

  • min_inscribed_circle_radius - defines an optional exclusion filter (for polygons only): minimum radius in current feature units for the maximum inscribed circle of the intersection. If the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has a radius for the maximum inscribed circle greater or equal to the value.

    Read more on the underlying GEOS predicate, as described in PostGIS ST_MaximumInscribedCircle function.

    This argument requires GEOS >= 3.9.

  • return_details - Set this to true to return a list of maps containing (key names in quotes) the feature „id“, the expression „result“ and the „overlap“ value (of the largest element in case of multipart). The „radius“ of the maximum inscribed circle is also returned when the target layer is a polygon. Only valid when used with the expression parameter

  • sort_by_intersection_size - only valid when used with an expression, set this to „des“ to return the results ordered by the overlap value in descending order or set this to „asc“ for ascending order.

Примеры

  • overlay_intersects('regions') → TRUE if the current feature spatially intersects a region

  • overlay_intersects('regions', filter:= population > 10000) → TRUE if the current feature spatially intersects a region with a population greater than 10000

  • overlay_intersects('regions', name) → an array of names, for the regions intersected by the current feature

  • array_to_string(overlay_intersects('regions', name)) → a string as a comma separated list of names, for the regions intersected by the current feature

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions intersected by the current feature and with a population greater than 10000

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions intersected by the current feature

  • overlay_intersects(layer:='regions', min_overlap:=0.54) → TRUE if the current feature spatially intersects a region and the intersection area (of at least one of the parts in case of multipolygons) is greater or equal to 0.54

  • overlay_intersects(layer:='regions', min_inscribed_circle_radius:=0.54) → TRUE if the current feature spatially intersects a region and the intersection area maximum inscribed circle’s radius (of at least one of the parts in case of multipart) is greater or equal to 0.54

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), return_details:=true) → an array of maps containing „id“, „result“, „overlap“ and „radius“

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt(@geometry), sort_by_intersection_size:='des') → an array of geometries (in WKT) ordered by the overlap value in descending order

Further reading: intersects, array manipulation, Select by location algorithm

9.2.13.99. overlay_nearest

Returns whether the current feature has feature(s) from a target layer within a given distance, or an array of expression-based results for the features in the target layer within a distance from the current feature.

Note: This function can be slow and consume a lot of memory for large layers.

Синтаксис

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the target layer

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features in the target layer will be used.

  • limit - an optional integer to limit the number of matching features. If not set, only the nearest feature will be returned. If set to -1, returns all the matching features.

  • max_distance - an optional distance to limit the search of matching features. If not set, all the features in the target layer will be used.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_nearest('airports') → TRUE if the «airports» layer has at least one feature

  • overlay_nearest('airports', max_distance:= 5000) → TRUE if there is an airport within a distance of 5000 map units from the current feature

  • overlay_nearest('airports', name) → the name of the closest airport to the current feature, as an array

  • array_to_string(overlay_nearest('airports', name)) → the name of the closest airport to the current feature, as a string

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → the name of the closest airport within a distance of 5000 map units from the current feature, as an array

  • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → an array of names, for up to the three closest civilian airports ordered by distance

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → an array of names, for all the airports within a distance of 5000 map units from the current feature, ordered by distance

Further reading: array manipulation, Join attributes by nearest algorithm

9.2.13.100. overlay_touches

Returns whether the current feature spatially touches at least one feature from a target layer, or an array of expression-based results for the features in the target layer touched by the current feature.

Read more on the underlying GEOS «Touches» predicate, as described in PostGIS ST_Touches function.

Синтаксис

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_touches('regions') → TRUE if the current feature spatially touches a region

  • overlay_touches('regions', filter:= population > 10000) → TRUE if the current feature spatially touches a region with a population greater than 10000

  • overlay_touches('regions', name) → an array of names, for the regions touched by the current feature

  • string_to_array(overlay_touches('regions', name)) → a string as a comma separated list of names, for the regions touched by the current feature

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions touched by the current feature and with a population greater than 10000

  • overlay_touches(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions touched by the current feature

Further reading: touches, array manipulation, Select by location algorithm

9.2.13.101. overlay_within

Returns whether the current feature is spatially within at least one feature from a target layer, or an array of expression-based results for the features in the target layer that contain the current feature.

Read more on the underlying GEOS «Within» predicate, as described in PostGIS ST_Within function.

Синтаксис

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] обозначает необязательные аргументы

Аргументы

  • layer - the layer whose overlay is checked

  • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match.

  • filter - an optional expression to filter the target features to check. If not set, all the features will be checked.

  • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned.

  • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider)

Примеры

  • overlay_within('regions') → TRUE if the current feature is spatially within a region

  • overlay_within('regions', filter:= population > 10000) → TRUE if the current feature is spatially within a region with a population greater than 10000

  • overlay_within('regions', name) → an array of names, for the regions containing the current feature

  • array_to_string(overlay_within('regions', name)) → a string as a comma separated list of names, for the regions containing the current feature

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions containing the current feature and with a population greater than 10000

  • overlay_within(layer:='regions', expression:= geom_to_wkt(@geometry), limit:=2) → an array of geometries (in WKT), for up to two regions containing the current feature

Further reading: within, array manipulation, Select by location algorithm

9.2.13.102. $perimeter

Returns the perimeter length of the current feature. The perimeter calculated by this function respects both the current project’s ellipsoid setting and distance unit settings. For example, if an ellipsoid has been set for the project then the calculated perimeter will be ellipsoidal, and if no ellipsoid is set then the calculated perimeter will be planimetric.

Синтаксис

$perimeter

Примеры

  • $perimeter → 42

9.2.13.103. perimeter

Returns the perimeter of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned perimeter will match the units for the SRS. This differs from the calculations performed by the $perimeter function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

Синтаксис

perimeter(geometry)

Аргументы

  • geometry - polygon geometry object

Примеры

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

9.2.13.104. point_n

Returns a specific node from a geometry.

Синтаксис

point_n(geometry, index)

Аргументы

  • geometry - geometry object

  • index - index of node to return, where 1 is the first node; if the value is negative, the selected vertex index will be its total count minus the absolute value

Примеры

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → „Point (4 0)“

Further reading: Extract specific vertices algorithm

9.2.13.105. point_on_surface

Returns a point guaranteed to lie on the surface of a geometry.

Синтаксис

point_on_surface(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • point_on_surface(@geometry) → a point geometry

Further reading: Point on Surface algorithm

9.2.13.106. pole_of_inaccessibility

Calculates the approximate pole of inaccessibility for a surface, which is the most distant internal point from the boundary of the surface. This function uses the „polylabel“ algorithm (Vladimir Agafonkin, 2016), which is an iterative approach guaranteed to find the true pole of inaccessibility within a specified tolerance. More precise tolerances require more iterations and will take longer to calculate.

Синтаксис

pole_of_inaccessibility(geometry, tolerance)

Аргументы

  • geometry - a geometry

  • tolerance - maximum distance between the returned point and the true pole location

Примеры

  • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0.1)) → „Point(1.546875 2.546875)“

../../../_images/pole_inaccessibility.png

Рис. 9.25 Pole of inaccessibility

Further reading: Pole of inaccessibility algorithm

9.2.13.107. project

Returns a point projected from a start point using a distance, a bearing (azimuth) and an elevation in radians.

Синтаксис

project(point, distance, azimuth, [elevation])

[] обозначает необязательные аргументы

Аргументы

  • point - start point

  • distance - distance to project

  • azimuth - azimuth in radians clockwise, where 0 corresponds to north

  • elevation - angle of inclination in radians

Примеры

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → „Point(-2, 2)“

Further reading: Project points (Cartesian) algorithm

9.2.13.108. relate

Tests the Dimensional Extended 9 Intersection Model (DE-9IM) representation of the relationship between two geometries.

Relationship variant

Returns the Dimensional Extended 9 Intersection Model (DE-9IM) representation of the relationship between two geometries.

Синтаксис

relate(geometry, geometry)

Аргументы

  • geometry - a geometry

  • geometry - a geometry

Примеры

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → „FF1F00102“

Pattern match variant

Tests whether the DE-9IM relationship between two geometries matches a specified pattern.

Синтаксис

relate(geometry, geometry, pattern)

Аргументы

  • geometry - a geometry

  • geometry - a geometry

  • pattern - DE-9IM pattern to match

Примеры

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → TRUE

9.2.13.109. reverse

Reverses the direction of a line string by reversing the order of its vertices.

Синтаксис

reverse(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → „LINESTRING(2 2, 1 1, 0 0)“

../../../_images/reverse_line.png

Рис. 9.26 Reversing line direction

Further reading: Reverse line direction algorithm

9.2.13.110. rotate

Returns a rotated version of a geometry. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

rotate(geometry, rotation, [center=NULL], [per_part=false])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • rotation - clockwise rotation in degrees

  • center - rotation center point. If not specified, the center of the geometry’s bounding box is used.

  • per_part - apply rotation per part. If true, then rotation will apply around the center of each part’s bounding box when the input geometry is multipart and an explicit rotation center point is not specified.

Примеры

  • rotate(@geometry, 45, make_point(4, 5)) → geometry rotated 45 degrees clockwise around the (4, 5) point

  • rotate(@geometry, 45) → geometry rotated 45 degrees clockwise around the center of its bounding box

../../../_images/rotate.gif

Рис. 9.27 Rotating features

9.2.13.111. roundness

Calculates how close a polygon shape is to a circle. The function Returns TRUE when the polygon shape is a perfect circle and 0 when it is completely flat.

Синтаксис

roundness(geometry)

Аргументы

  • geometry - a polygon

Примеры

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 1, 1 1, 1 0, 0 0))')), 3) → 0.785

  • round(roundness(geom_from_wkt('POLYGON(( 0 0, 0 0.1, 1 0.1, 1 0, 0 0))')), 3) → 0.260

Further reading: Roundness algorithm

9.2.13.112. scale

Returns a scaled version of a geometry. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

scale(geometry, x_scale, y_scale, [center])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • x_scale - x-axis scaling factor

  • y_scale - y-axis scaling factor

  • center - scaling center point. If not specified, the center of the geometry’s bounding box is used.

Примеры

  • scale(@geometry, 2, 0.5, make_point(4, 5)) → geometry scaled twice horizontally and halved vertically, around the (4, 5) point

  • scale(@geometry, 2, 0.5) → geometry twice horizontally and halved vertically, around the center of its bounding box

9.2.13.113. segments_to_lines

Returns a multi line geometry consisting of a line for every segment in the input geometry.

Синтаксис

segments_to_lines(geometry)

Аргументы

  • geometry - geometry object

Примеры

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

Further reading: Explode lines algorithm

9.2.13.114. shared_paths

Returns a collection containing paths shared by the two input geometries. Those going in the same direction are in the first element of the collection, those going in the opposite direction are in the second element. The paths themselves are given in the direction of the first geometry.

Синтаксис

shared_paths(geometry1, geometry2)

Аргументы

  • geometry1 - a LineString/MultiLineString geometry

  • geometry2 - a LineString/MultiLineString geometry

Примеры

  • geom_to_wkt(shared_paths(geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150)))'),geom_from_wkt('LINESTRING(151 100,126 156.25,126 125,90 161, 76 175)'))) → „GeometryCollection (MultiLineString ((126 156.25, 126 125),(101 150, 90 161),(90 161, 76 175)),MultiLineString EMPTY)“

  • geom_to_wkt(shared_paths(geom_from_wkt('LINESTRING(76 175,90 161,126 125,126 156.25,151 100)'),geom_from_wkt('MULTILINESTRING((26 125,26 200,126 200,126 125,26 125),(51 150,101 150,76 175,51 150))'))) → „GeometryCollection (MultiLineString EMPTY,MultiLineString ((76 175, 90 161),(90 161, 101 150),(126 125, 126 156.25)))“

9.2.13.115. shortest_line

Returns the shortest line joining geometry1 to geometry2. The resultant line will start at geometry1 and end at geometry2.

Синтаксис

shortest_line(geometry1, geometry2)

Аргументы

  • geometry1 - geometry to find shortest line from

  • geometry2 - geometry to find shortest line to

Примеры

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

9.2.13.116. simplify

Simplifies a geometry by removing nodes using a distance based threshold (ie, the Douglas Peucker algorithm). The algorithm preserves large deviations in geometries and reduces the number of vertices in nearly straight segments.

Синтаксис

simplify(geometry, tolerance)

Аргументы

  • geometry - a geometry

  • tolerance - maximum deviation from straight segments for points to be removed

Примеры

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → „LineString(0 0, 10 0)“

../../../_images/simplify_geometries.png

Рис. 9.28 From left to right, source layer and increasing simplification tolerances

Further reading: Simplify algorithm

9.2.13.117. simplify_vw

Simplifies a geometry by removing nodes using an area based threshold (ie, the Visvalingam-Whyatt algorithm). The algorithm removes vertices which create small areas in geometries, e.g., narrow spikes or nearly straight segments.

Синтаксис

simplify_vw(geometry, tolerance)

Аргументы

  • geometry - a geometry

  • tolerance - a measure of the maximum area created by a node for the node to be removed

Примеры

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

Further reading: Simplify algorithm

9.2.13.118. single_sided_buffer

Returns a geometry formed by buffering out just one side of a linestring geometry. Distances are in the Spatial Reference System of this geometry.

Синтаксис

single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a (multi)linestring geometry

  • distance - buffer distance. Positive values will be buffered to the left of lines, negative values to the right

  • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes.

  • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel

  • miter_limit - limit on the miter ratio used for very sharp corners (when using miter joins only)

Примеры

  • single_sided_buffer(@geometry, 10.5) → line buffered to the left by 10.5 units

  • single_sided_buffer(@geometry, -10.5) → line buffered to the right by 10.5 units

  • single_sided_buffer(@geometry, 10.5, segments:=16, join:=1) → line buffered to the left by 10.5 units, using more segments to result in a smoother buffer

  • single_sided_buffer(@geometry, 10.5, join:=3) → line buffered to the left by 10.5 units, using a beveled join

../../../_images/single_side_buffer.png

Рис. 9.29 Left versus right side buffer on the same vector line layer

Further reading: Single sided buffer algorithm

9.2.13.119. sinuosity

Returns the sinuosity of a curve, which is the ratio of the curve length to the straight (2D) distance between its endpoints.

Синтаксис

sinuosity(geometry)

Аргументы

  • geometry - Input curve (circularstring, linestring)

Примеры

  • 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

9.2.13.120. smooth

Smooths a geometry by adding extra nodes which round off corners in the geometry. If input geometries contain Z or M values, these will also be smoothed and the output geometry will retain the same dimensionality as the input geometry.

Синтаксис

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • iterations - number of smoothing iterations to apply. Larger numbers result in smoother but more complex geometries.

  • offset - value between 0 and 0.5 which controls how tightly the smoothed geometry follow the original geometry. Smaller values result in a tighter smoothing, larger values result in looser smoothing.

  • min_length - minimum length of segments to apply smoothing to. This parameter can be used to avoid placing excessive additional nodes in shorter segments of the geometry.

  • max_angle - maximum angle at node for smoothing to be applied (0-180). By lowering the maximum angle intentionally sharp corners in the geometry can be preserved. For instance, a value of 80 degrees will retain right angles in the geometry.

Примеры

  • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → „LineString (0 0, 4 0, 5 1, 5 5)“

../../../_images/smooth_geometry_1.png

Рис. 9.30 Increasing number of iterations causes smoother geometries

Further reading: Smooth algorithm

9.2.13.121. square_wave

Constructs square/rectangular waves along the boundary of a geometry.

Синтаксис

square_wave(geometry, wavelength, amplitude, [strict=False])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • wavelength - wavelength of square waveform

  • amplitude - amplitude of square waveform

  • strict - By default the wavelength argument is treated as a «maximum wavelength», where the actual wavelength will be dynamically adjusted so that an exact number of square waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Примеры

  • square_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Square waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/square_wave.png

Рис. 9.31 Symbolizing features with square waves

9.2.13.122. square_wave_randomized

Constructs randomized square/rectangular waves along the boundary of a geometry.

Синтаксис

square_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Примеры

  • square_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized square waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/square_wave_randomized.png

Рис. 9.32 Symbolizing features with square randomized waves

9.2.13.123. start_point

Returns the first node from a geometry.

Синтаксис

start_point(geometry)

Аргументы

  • geometry - geometry object

Примеры

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → „Point (4 0)“

../../../_images/start_point.png

Рис. 9.33 Starting point of a line feature

Further reading: end_point, Extract specific vertices algorithm

9.2.13.124. straight_distance_2d

Returns the direct/euclidean distance between the first and last vertex of a geometry. The geometry must be a curve (circularstring, linestring).

Синтаксис

straight_distance_2d(geometry)

Аргументы

  • geometry - The geometry.

Примеры

  • 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

Further reading: length

9.2.13.125. sym_difference

Returns a geometry that represents the portions of two geometries that do not intersect.

Синтаксис

sym_difference(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

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

Further reading: Symmetrical difference algorithm

9.2.13.126. tapered_buffer

Creates a buffer along a line geometry where the buffer diameter varies evenly over the length of the line.

Синтаксис

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] обозначает необязательные аргументы

Аргументы

  • geometry - input geometry. Must be a (multi)line geometry.

  • start_width - width of buffer at start of line,

  • end_width - width of buffer at end of line.

  • segments - number of segments to approximate quarter-circle curves in the buffer.

Примеры

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → A tapered buffer starting with a diameter of 1 and ending with a diameter of 2 along the linestring geometry.

../../../_images/tapered_buffer.png

Рис. 9.34 Tapered buffer on line features

Further reading: Tapered buffers algorithm

9.2.13.127. touches

Tests whether a geometry touches another. Returns TRUE if the geometries have at least one point in common, but their interiors do not intersect.

Синтаксис

touches(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

Further reading: overlay_touches

9.2.13.128. transform

Returns the geometry transformed from a source CRS to a destination CRS.

Синтаксис

transform(geometry, source_auth_id, dest_auth_id)

Аргументы

  • geometry - a geometry

  • source_auth_id - the source auth CRS ID

  • dest_auth_id - the destination auth CRS ID

Примеры

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → „POINT(0 51)“

Further reading: Reproject layer algorithm

9.2.13.129. translate

Returns a translated version of a geometry. Calculations are in the Spatial Reference System of this geometry.

Синтаксис

translate(geometry, dx, dy)

Аргументы

  • geometry - a geometry

  • dx - delta x

  • dy - delta y

Примеры

  • translate(@geometry, 5, 10) → a geometry of the same type like the original one

../../../_images/translate_geometry.png

Рис. 9.35 Translating features

Further reading: Перевод algorithm

9.2.13.130. triangular_wave

Constructs triangular waves along the boundary of a geometry.

Синтаксис

triangular_wave(geometry, wavelength, amplitude, [strict=False])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • wavelength - wavelength of triangular waveform

  • amplitude - amplitude of triangular waveform

  • strict - By default the wavelength argument is treated as a «maximum wavelength», where the actual wavelength will be dynamically adjusted so that an exact number of triangular waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Примеры

  • triangular_wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Triangular waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/triangular_wave.png

Рис. 9.36 Symbolizing features with triangular waves

9.2.13.131. triangular_wave_randomized

Constructs randomized triangular waves along the boundary of a geometry.

Синтаксис

triangular_wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Примеры

  • triangular_wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized triangular waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/triangular_wave_randomized.png

Рис. 9.37 Symbolizing features with triangular randomized waves

9.2.13.132. union

Returns a geometry that represents the point set union of the geometries.

Синтаксис

union(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → „MULTIPOINT(4 4, 5 5)“

9.2.13.133. wave

Constructs rounded (sine-like) waves along the boundary of a geometry.

Синтаксис

wave(geometry, wavelength, amplitude, [strict=False])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • wavelength - wavelength of sine-like waveform

  • amplitude - amplitude of sine-like waveform

  • strict - By default the wavelength argument is treated as a «maximum wavelength», where the actual wavelength will be dynamically adjusted so that an exact number of waves are created along the boundaries of the geometry. If the strict argument is set to true then the wavelength will be used exactly and an incomplete pattern may be used for the final waveform.

Примеры

  • wave(geom_from_wkt('LineString(0 0, 10 0)'), 3, 1) → Sine-like waves with wavelength 3 and amplitude 1 along the linestring

../../../_images/wave.png

Рис. 9.38 Symbolizing features with waves

9.2.13.134. wave_randomized

Constructs randomized curved (sine-like) waves along the boundary of a geometry.

Синтаксис

wave_randomized(geometry, min_wavelength, max_wavelength, min_amplitude, max_amplitude, [seed=0])

[] обозначает необязательные аргументы

Аргументы

  • geometry - a geometry

  • min_wavelength - minimum wavelength of waves

  • max_wavelength - maximum wavelength of waves

  • min_amplitude - minimum amplitude of waves

  • max_amplitude - maximum amplitude of waves

  • seed - specifies a random seed for generating waves. If the seed is 0, then a completely random set of waves will be generated.

Примеры

  • wave_randomized(geom_from_wkt('LineString(0 0, 10 0)'), 2, 3, 0.1, 0.2) → Randomly sized curved waves with wavelengths between 2 and 3 and amplitudes between 0.1 and 0.2 along the linestring

../../../_images/wave_randomized.png

Рис. 9.39 Symbolizing features with randomized waves

9.2.13.135. wedge_buffer

Returns a wedge shaped buffer originating from a point geometry.

Синтаксис

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] обозначает необязательные аргументы

Аргументы

  • center - center point (origin) of buffer. Must be a point geometry.

  • azimuth - angle (in degrees) for the middle of the wedge to point.

  • width - buffer width (in degrees). Note that the wedge will extend to half of the angular width either side of the azimuth direction.

  • outer_radius - outer radius for buffers

  • inner_radius - optional inner radius for buffers

Примеры

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

../../../_images/wedge_buffers.png

Wedge buffering features

Further reading: Create wedge buffers algorithm

9.2.13.136. within

Tests whether a geometry is within another. Returns TRUE if the geometry1 is completely within geometry2.

Синтаксис

within(geometry1, geometry2)

Аргументы

  • geometry1 - a geometry

  • geometry2 - a geometry

Примеры

  • 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

Further reading: overlay_within

9.2.13.137. $x

Returns the x coordinate of the current point feature. If the feature is a multipoint feature, then the x-coordinate of the first point will be returned. WARNING: This function is deprecated. It is recommended to use the replacement x() function with @geometry variable instead.

Синтаксис

$x

Примеры

  • $x → 42

Further reading: x

9.2.13.138. x

Returns the x coordinate of a point geometry, or the x coordinate of the centroid for a non-point geometry.

Синтаксис

x(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( @geometry ) → x coordinate of the current feature’s centroid

9.2.13.139. $x_at

Retrieves a x coordinate of the current feature’s geometry. WARNING: This function is deprecated. It is recommended to use the replacement x_at function with @geometry variable instead.

Синтаксис

$x_at(vertex)

Аргументы

  • vertex - index of the vertex of the current geometry (indices start at 0; negative values apply from the last index, starting at -1)

Примеры

  • $x_at(1) → 5

Further reading: x_at

9.2.13.140. x_at

Retrieves a x coordinate of the geometry.

Синтаксис

x_at(geometry, vertex)

Аргументы

  • geometry - geometry object

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Примеры

  • x_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 4

9.2.13.141. x_max

Returns the maximum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Синтаксис

x_max(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

9.2.13.142. x_min

Returns the minimum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Синтаксис

x_min(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

9.2.13.143. $y

Returns the y coordinate of the current point feature. If the feature is a multipoint feature, then the y-coordinate of the first point will be returned. WARNING: This function is deprecated. It is recommended to use the replacement y() function with @geometry variable instead.

Синтаксис

$y

Примеры

  • $y → 42

Further reading: y

9.2.13.144. y

Returns the y coordinate of a point geometry, or the y coordinate of the centroid for a non-point geometry.

Синтаксис

y(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( @geometry ) → y coordinate of the current feature’s centroid

9.2.13.145. $y_at

Retrieves a y coordinate of the current feature’s geometry. WARNING: This function is deprecated. It is recommended to use the replacement y_at function with @geometry variable instead.

Синтаксис

$y_at(vertex)

Аргументы

  • vertex - index of the vertex of the current geometry (indices start at 0; negative values apply from the last index, starting at -1)

Примеры

  • $y_at(1) → 2

Further reading: y_at

9.2.13.146. y_at

Retrieves a y coordinate of the geometry.

Синтаксис

y_at(geometry, vertex)

Аргументы

  • geometry - geometry object

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Примеры

  • y_at( geom_from_wkt( 'POINT(4 5)' ), 0 ) → 5

9.2.13.147. y_max

Returns the maximum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Синтаксис

y_max(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

9.2.13.148. y_min

Returns the minimum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry.

Синтаксис

y_min(geometry)

Аргументы

  • geometry - a geometry

Примеры

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

9.2.13.149. $z

Returns the z value of the current point feature if it is 3D. If the feature is a multipoint feature, then the z value of the first point will be returned. WARNING: This function is deprecated. It is recommended to use the replacement z() function with @geometry variable instead.

Синтаксис

$z

Примеры

  • $z → 123

9.2.13.150. z

Returns the z coordinate of a point geometry, or NULL if the geometry has no z value.

Синтаксис

z(geometry)

Аргументы

  • geometry - a point geometry

Примеры

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

9.2.13.151. z_at

Retrieves a z coordinate of the geometry, or NULL if the geometry has no z value.

Синтаксис

z_at(geometry, vertex)

Аргументы

  • geometry - geometry object

  • vertex - index of the vertex of the geometry (indices start at 0; negative values apply from the last index, starting at -1)

Примеры

  • z_at(geom_from_wkt('LineStringZ(0 0 0, 10 10 5, 10 10 0)'), 1) → 5

9.2.13.152. z_max

Returns the maximum z coordinate of a geometry, or NULL if the geometry has no z value.

Синтаксис

z_max(geometry)

Аргументы

  • geometry - a geometry with z coordinate

Примеры

  • 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

9.2.13.153. z_min

Returns the minimum z coordinate of a geometry, or NULL if the geometry has no z value.

Синтаксис

z_min(geometry)

Аргументы

  • geometry - a geometry with z coordinate

Примеры

  • 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

9.2.14. Layout Functions

This group contains functions to manipulate print layout items properties.

9.2.14.1. item_variables

Returns a map of variables from a layout item inside this print layout.

Синтаксис

item_variables(id)

Аргументы

  • id - layout item ID

Примеры

  • map_get( item_variables('Map 0'), 'map_scale') → scale of the item „Map 0“ in the current print layout

Further reading: List of default variables

9.2.14.2. map_credits

Returns a list of credit (usage rights) strings for the layers shown in a layout, or specific layout map item.

Синтаксис

map_credits([id], [include_layer_names=false], [layer_name_separator=“: „])

[] обозначает необязательные аргументы

Аргументы

  • id - Map item ID. If not specified, the layers from all maps in the layout will be used.

  • include_layer_names - Set to true to include layer names before their credit strings

  • layer_name_separator - String to insert between layer names and their credit strings, if include_layer_names is true

Примеры

  • array_to_string( map_credits() ) → comma separated list of layer credits for all layers shown in all map items in the layout, e.g „CC-BY-NC, CC-BY-SA“

  • array_to_string( map_credits( 'Main Map' ) ) → comma separated list of layer credits for layers shown in the „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 := ': ' ) ) → comma separated list of layer names and their credits for layers shown in the „Main Map“ layout item, e.g. „Railway lines: CC-BY-NC, Basemap: CC-BY-SA“

This function requires the Access metadata properties of the layers to have been filled.

9.2.15. Map Layers

This group contains a list of the available layers in the current project and, for each layer, their fields (stored in the dataset, virtual or auxiliary ones as well as from joins). The fields can be interacted the same way as mentioned in Fields and Values, except that a double-click will add the name as a string (single quoted) to the expression instead of as a field reference given that they do not belong to the active layer. This offers a convenient way to write expressions referring to different layers, such as when performing aggregates, attribute or spatial queries.

It also provides some convenient functions to manipulate layers.

9.2.15.1. decode_uri

Takes a layer and decodes the uri of the underlying data provider. It depends on the dataprovider, which data is available.

Синтаксис

decode_uri(layer, [part])

[] обозначает необязательные аргументы

Аргументы

  • layer - The layer for which the uri should be decoded.

  • part - The part of the uri to return. If unspecified, a map with all uri parts will be returned.

Примеры

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

9.2.15.2. layer_property

Returns a matching layer property or metadata value.

Синтаксис

layer_property(layer, property)

Аргументы

  • слой — строка, представляющая либо имя слоя, либо его идентификатор

  • property - a string corresponding to the property to return. Valid options are:

    • name: layer name

    • id: layer ID

    • title: metadata title string

    • abstract: metadata abstract string

    • keywords: metadata keywords

    • data_url: metadata URL

    • attribution: metadata attribution string

    • attribution_url: metadata attribution URL

    • source: layer source

    • min_scale: minimum display scale for layer

    • max_scale: maximum display scale for layer

    • is_editable: if layer is in edit mode

    • crs: layer CRS

    • crs_definition: layer CRS full definition

    • crs_description: layer CRS description

    • crs_ellipsoid: acronym of the layer CRS ellipsoid

    • extent: layer extent (as a geometry object)

    • distance_units: layer distance units

    • type: layer type, e.g., Vector or Raster

    • storage_type: storage format (vector layers only)

    • geometry_type: geometry type, e.g., Point (vector layers only)

    • feature_count: approximate feature count for layer (vector layers only)

    • path: File path to the layer data source. Only available for file based layers.

Примеры

  • layer_property('streets','title') → „Basemap Streets“

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → „EPSG:4326“

Further reading: vector, raster and mesh layer properties

9.2.15.3. load_layer

Loads a layer by source URI and provider name.

Синтаксис

load_layer(uri, provider)

Аргументы

  • uri - layer source URI string

  • provider - layer data provider name

Примеры

  • layer_property(load_layer('c:/data/roads.shp', 'ogr'), 'feature_count') → count of features from the c:/data/roads.shp vector layer

9.2.16. Maps Functions

This group contains functions to create or manipulate keys and values of map data structures (also known as dictionary objects, key-value pairs, or associative arrays). Unlike the list data structure where values order matters, the order of the key-value pairs in the map object is not relevant and values are identified by their keys.

9.2.16.1. from_json

Loads a JSON formatted string.

Синтаксис

from_json(string)

Аргументы

  • string - JSON string

Примеры

  • from_json('{"1":"one","2":"two"}') → { „1“: „one“, „2“: „two“ }

  • from_json('[1,2,3]') → [1,2,3]

9.2.16.2. hstore_to_map

Creates a map from a hstore-formatted string.

Синтаксис

hstore_to_map(string)

Аргументы

  • string — входная строка

Примеры

  • hstore_to_map('qgis=>rocks') → { „qgis“: „rocks“ }

9.2.16.3. map

Returns a map containing all the keys and values passed as pair of parameters.

Синтаксис

map(key1, value1, key2, value2, …)

Аргументы

  • key - a key (string)

  • значение - значение

Примеры

  • map('1','one','2', 'two') → { „1“: „one“, „2“: „two“ }

  • map('1','one','2', 'two')['1'] → „one“

9.2.16.4. map_akeys

Returns all the keys of a map as an array.

Синтаксис

map_akeys(map)

Аргументы

  • map - a map

Примеры

  • map_akeys(map('1','one','2','two')) → [ „1“, „2“ ]

9.2.16.5. map_avals

Returns all the values of a map as an array.

Синтаксис

map_avals(map)

Аргументы

  • map - a map

Примеры

  • map_avals(map('1','one','2','two')) → [ „one“, „two“ ]

9.2.16.6. map_concat

Returns a map containing all the entries of the given maps. If two maps contain the same key, the value of the second map is taken.

Синтаксис

map_concat(map1, map2, …)

Аргументы

  • map - a map

Примеры

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { „1“: „one“, „2“: „two“, „3“: „three“ }

9.2.16.7. map_delete

Returns a map with the given key and its corresponding value deleted.

Синтаксис

map_delete(map, key)

Аргументы

  • map - a map

  • key - the key to delete

Примеры

  • map_delete(map('1','one','2','two'),'2') → { „1“: „one“ }

9.2.16.8. map_exist

Returns TRUE if the given key exists in the map.

Синтаксис

map_exist(map, key)

Аргументы

  • map - a map

  • key - the key to lookup

Примеры

  • map_exist(map('1','one','2','two'),'3') → FALSE

9.2.16.9. map_get

Returns the value of a map, given its key. Returns NULL if the key does not exist.

Синтаксис

map_get(map, key)

Аргументы

  • map - a map

  • key - the key to lookup

Примеры

  • map_get(map('1','one','2','two'),'2') → „two“

  • map_get( item_variables('Map 0'), 'map_scale') → scale of the item „Map 0“ (if it exists) in the current print layout

Подсказка

You can also use the index operator ([]) to get a value from a map.

9.2.16.10. map_insert

Returns a map with an added key/value. If the key already exists, its value is overridden.

Синтаксис

map_insert(map, key, value)

Аргументы

  • map - a map

  • key - the key to add

  • value — добавляемое значение

Примеры

  • map_insert(map('1','one'),'3','three') → { „1“: „one“, „3“: „three“ }

  • map_insert(map('1','one','2','overridden'),'2','two') → { „1“: „one“, „2“: „two“ }

9.2.16.11. map_prefix_keys

Returns a map with all keys prefixed by a given string.

Синтаксис

map_prefix_keys(map, prefix)

Аргументы

  • map - a map

  • prefix - a string

Примеры

  • map_prefix_keys(map('1','one','2','two'), 'prefix-') → { „prefix-1“: „one“, „prefix-2“: „two“ }

9.2.16.12. map_to_hstore

Merge map elements into a hstore-formatted string.

Синтаксис

map_to_hstore(map)

Аргументы

  • map - the input map

Примеры

  • map_to_hstore(map('1','one','2','two')) → „«1»=>»one»“,„«2»=>»two»“

9.2.16.13. map_to_html_dl

Merge map elements into a HTML definition list string.

Синтаксис

map_to_html_dl(map)

Аргументы

  • map - the input map

Примеры

  • map_to_html_dl(map('1','one','2','two')) → <dl><dt>1</dt><dd>one</dd><dt>2</dt><dd>two</dd></dl>

9.2.16.14. map_to_html_table

Merge map elements into a HTML table string.

Синтаксис

map_to_html_table(map)

Аргументы

  • map - the input map

Примеры

  • map_to_html_table(map('1','one','2','two')) → <table><thead><tr><th>1</th><th>2</th></tr></thead><tbody><tr><td>one</td><td>two</td></tr></tbody></table>

9.2.16.15. to_json

Create a JSON formatted string from a map, array or other value.

Синтаксис

to_json(value)

Аргументы

  • value - The input value

Примеры

  • to_json(map('1','one','2','two')) → {«1»:»one»,»2»:»two»}

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

9.2.16.16. url_encode

Returns an URL encoded string from a map. Transforms all characters in their properly-encoded form producing a fully-compliant query string.

Note that the plus sign „+“ is not converted.

Синтаксис

url_encode(map)

Аргументы

  • map - a map.

Примеры

  • url_encode(map('a&+b', 'a and plus b', 'a=b', 'a equals b')) → „a%26+b=a%20and%20plus%20b&a%3Db=a%20equals%20b“

9.2.17. Mathematical Functions

This group contains math functions (e.g., square root, sin and cos).

9.2.17.1. abs

Returns the absolute value of a number.

Синтаксис

abs(value)

Аргументы

  • value - a number

Примеры

  • abs(-2) → 2

9.2.17.2. acos

Returns the inverse cosine of a value in radians.

Синтаксис

acos(value)

Аргументы

  • value - cosine of an angle in radians

Примеры

  • acos(0.5) → 1.0471975511966

9.2.17.3. asin

Returns the inverse sine of a value in radians.

Синтаксис

asin(value)

Аргументы

  • value - sine of an angle in radians

Примеры

  • asin(1.0) → 1.5707963267949

9.2.17.4. atan

Returns the inverse tangent of a value in radians.

Синтаксис

atan(value)

Аргументы

  • value - tan of an angle in radians

Примеры

  • atan(0.5) → 0.463647609000806

9.2.17.5. atan2

Returns the inverse tangent of dy/dx by using the signs of the two arguments to determine the quadrant of the result.

Синтаксис

atan2(dy, dx)

Аргументы

  • dy - y coordinate difference

  • dx - x coordinate difference

Примеры

  • atan2(1.0, 1.732) → 0.523611477769969

9.2.17.6. ceil

Rounds a number upwards.

Синтаксис

ceil(value)

Аргументы

  • value - a number

Примеры

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

9.2.17.7. clamp

Restricts an input value to a specified range.

Синтаксис

clamp(minimum, input, maximum)

Аргументы

  • minimum - the smallest value input is allowed to take.

  • input - a value which will be restricted to the range specified by minimum and maximum

  • maximum - the largest value input is allowed to take

Примеры

  • clamp(1,5,10) → 5

    input is between 1 and 10 so is returned unchanged

  • clamp(1,0,10) → 1

    input is less than minimum value of 1, so function returns 1

  • clamp(1,11,10) → 10

    input is greater than maximum value of 10, so function returns 10

9.2.17.8. cos

Returns cosine of an angle.

Синтаксис

cos(angle)

Аргументы

  • angle - angle in radians

Примеры

  • cos(1.571) → 0.000796326710733263

9.2.17.9. degrees

Converts from radians to degrees.

Синтаксис

degrees(radians)

Аргументы

  • radians - numeric value

Примеры

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

9.2.17.10. exp

Returns exponential of an value.

Синтаксис

exp(value)

Аргументы

  • value - number to return exponent of

Примеры

  • exp(1.0) → 2.71828182845905

9.2.17.11. floor

Rounds a number downwards.

Синтаксис

floor(value)

Аргументы

  • value - a number

Примеры

  • floor(4.9) → 4

  • floor(-4.9) → -5

9.2.17.12. ln

Returns the natural logarithm of a value.

Синтаксис

ln(value)

Аргументы

  • value - numeric value

Примеры

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

9.2.17.13. log

Returns the value of the logarithm of the passed value and base.

Синтаксис

log(base, value)

Аргументы

  • base - any positive number

  • value - any positive number

Примеры

  • log(2, 32) → 5

  • log(0.5, 32) → -5

9.2.17.14. log10

Returns the value of the base 10 logarithm of the passed expression.

Синтаксис

log10(value)

Аргументы

  • value - any positive number

Примеры

  • log10(1) → 0

  • log10(100) → 2

9.2.17.15. max

Returns the largest value in a set of values.

Синтаксис

max(value1, value2, …)

Аргументы

  • value - a number

Примеры

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

9.2.17.16. min

Returns the smallest value in a set of values.

Синтаксис

min(value1, value2, …)

Аргументы

  • value - a number

Примеры

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

9.2.17.17. pi

Returns value of pi for calculations.

Синтаксис

pi()

Примеры

  • pi() → 3.14159265358979

9.2.17.18. radians

Converts from degrees to radians.

Синтаксис

radians(degrees)

Аргументы

  • degrees - numeric value

Примеры

  • radians(180) → 3.14159

  • radians(57.2958) → 1

9.2.17.19. rand

Returns a random integer within the range specified by the minimum and maximum argument (inclusive). If a seed is provided, the returned will always be the same, depending on the seed.

Синтаксис

rand(min, max, [seed=NULL])

[] обозначает необязательные аргументы

Аргументы

  • min - an integer representing the smallest possible random number desired

  • max - an integer representing the largest possible random number desired

  • seed - any value to use as seed

Примеры

  • rand(1, 10) → 8

9.2.17.20. randf

Returns a random float within the range specified by the minimum and maximum argument (inclusive). If a seed is provided, the returned will always be the same, depending on the seed.

Синтаксис

randf([min=0.0], [max=1.0], [seed=NULL])

[] обозначает необязательные аргументы

Аргументы

  • min - an float representing the smallest possible random number desired

  • max - an float representing the largest possible random number desired

  • seed - any value to use as seed

Примеры

  • randf(1, 10) → 4.59258286403147

9.2.17.21. round

Rounds a number to number of decimal places.

Синтаксис

round(value, [places=0])

[] обозначает необязательные аргументы

Аргументы

  • value - decimal number to be rounded

  • places - Optional integer representing number of places to round decimals to. Can be negative.

Примеры

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

9.2.17.22. scale_exponential

Transforms a given value from an input domain to an output range using an exponential curve. This function can be used to ease values in or out of the specified output range.

Синтаксис

scale_exponential(value, domain_min, domain_max, range_min, range_max, exponent)

Аргументы

  • value - A value in the input domain. The function will return a corresponding scaled value in the output range.

  • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take.

  • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take.

  • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function.

  • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function.

  • exponent - A positive value (greater than 0), which dictates the way input values are mapped to the output range. Large exponents will cause the output values to „ease in“, starting slowly before accelerating as the input values approach the domain maximum. Smaller exponents (less than 1) will cause output values to „ease out“, where the mapping starts quickly but slows as it approaches the domain maximum.

Примеры

  • scale_exponential(5,0,10,0,100,2) → 3.030

    easing in, using an exponent of 2

  • scale_exponential(3,0,10,0,100,0.5) → 87.585

    easing out, using an exponent of 0.5

9.2.17.23. scale_linear

Transforms a given value from an input domain to an output range using linear interpolation.

Синтаксис

scale_linear(value, domain_min, domain_max, range_min, range_max)

Аргументы

  • value - A value in the input domain. The function will return a corresponding scaled value in the output range.

  • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take.

  • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take.

  • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function.

  • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function.

Примеры

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    scaling a value between 0 and 1 to an angle between 0 and 360

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    scaling a population which varies between 1000 and 10000 to a font size between 9 and 20

9.2.17.24. scale_polynomial

Transforms a given value from an input domain to an output range using a polynomial curve. This function can be used to ease values in or out of the specified output range.

Синтаксис

scale_polynomial(value, domain_min, domain_max, range_min, range_max, exponent)

Аргументы

  • value - A value in the input domain. The function will return a corresponding scaled value in the output range.

  • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take.

  • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take.

  • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function.

  • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function.

  • exponent - A positive value (greater than 0), which dictates the way input values are mapped to the output range. Large exponents will cause the output values to „ease in“, starting slowly before accelerating as the input values approach the domain maximum. Smaller exponents (less than 1) will cause output values to „ease out“, where the mapping starts quickly but slows as it approaches the domain maximum.

Примеры

  • scale_polynomial(5,0,10,0,100,2) → 25

    easing in, using an exponent of 2

  • scale_polynomial(3,0,10,0,100,0.5) → 54.772

    easing out, using an exponent of 0.5

9.2.17.25. sin

Returns the sine of an angle.

Синтаксис

sin(angle)

Аргументы

  • angle - angle in radians

Примеры

  • sin(1.571) → 0.999999682931835

9.2.17.26. sqrt

Returns square root of a value.

Синтаксис

sqrt(value)

Аргументы

  • value - a number

Примеры

  • sqrt(9) → 3

9.2.17.27. tan

Returns the tangent of an angle.

Синтаксис

tan(angle)

Аргументы

  • angle - angle in radians

Примеры

  • tan(1.0) → 1.5574077246549

9.2.18. Meshes Functions

This group contains functions which calculate or return mesh related values.

9.2.18.1. $face_area

Returns the area of the current mesh face. The area calculated by this function respects both the current project’s ellipsoid setting and area unit settings. For example, if an ellipsoid has been set for the project then the calculated area will be ellipsoidal, and if no ellipsoid is set then the calculated area will be planimetric.

Синтаксис

$face_area

Примеры

  • $face_area → 42

9.2.18.2. $face_index

Returns the index of the current mesh face.

Синтаксис

$face_index

Примеры

  • $face_index → 4581

9.2.18.3. $vertex_as_point

Returns the current vertex as a point geometry.

Синтаксис

$vertex_as_point

Примеры

  • geom_to_wkt( $vertex_as_point ) → „POINT(800 1500 41)“

9.2.18.4. $vertex_index

Returns the index of the current mesh vertex.

Синтаксис

$vertex_index

Примеры

  • $vertex_index → 9874

9.2.18.5. $vertex_x

Returns the X coordinate of the current mesh vertex.

Синтаксис

$vertex_x

Примеры

  • $vertex_x → 42.12

9.2.18.6. $vertex_y

Returns the Y coordinate of the current mesh vertex.

Синтаксис

$vertex_y

Примеры

  • $vertex_y → 12.24

9.2.18.7. $vertex_z

Returns the Z value of the current mesh vertex.

Синтаксис

$vertex_z

Примеры

  • $vertex_z → 42

9.2.19. Operators

This group contains operators (e.g., +, -, *). Note that for most of the mathematical functions below, if one of the inputs is NULL then the result is NULL.

9.2.19.1. %

Remainder of division. Takes the sign of the dividend.

Синтаксис

a % b

Аргументы

  • a - value

  • b - value

Примеры

  • 9 % 2 → 1

  • 9 % -2 → 1

  • -9 % 2 → -1

  • 5 % NULL → NULL

9.2.19.2. *

Multiplication of two values

Синтаксис

a * b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 * 4 → 20

  • 5 * NULL → NULL

9.2.19.3. +

Addition of two values. If one of the values is NULL the result will be NULL.

Синтаксис

a + b

Аргументы

  • a - value

  • b - value

Примеры

  • 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

Further reading: concat, ||

9.2.19.4. -

Subtraction of two values. If one of the values is NULL the result will be NULL.

Синтаксис

a - b

Аргументы

  • a - value

  • b - value

Примеры

  • 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

9.2.19.5. /

Division of two values

Синтаксис

a / b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

9.2.19.6. //

Floor division of two values

Синтаксис

a // b

Аргументы

  • a - value

  • b - value

Примеры

  • 9 // 2 → 4

9.2.19.7. <

Compares two values and evaluates to 1 if the left value is less than the right value.

Синтаксис

a < b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 < 4 → FALSE

  • 5 < 5 → FALSE

  • 4 < 5 → TRUE

9.2.19.8. <=

Compares two values and evaluates to 1 if the left value is less or equal than the right value.

Синтаксис

a <= b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 <= 4 → FALSE

  • 5 <= 5 → TRUE

  • 4 <= 5 → TRUE

9.2.19.9. <>

Compares two values and evaluates to 1 if they are not equal.

Синтаксис

a <> b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 <> 4 → TRUE

  • 4 <> 4 → FALSE

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

9.2.19.10. =

Compares two values and evaluates to 1 if they are equal.

Синтаксис

a = b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 = 4 → FALSE

  • 4 = 4 → TRUE

  • 5 = NULL → NULL

  • NULL = NULL → NULL

9.2.19.11. >

Compares two values and evaluates to 1 if the left value is greater than the right value.

Синтаксис

a > b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 > 4 → TRUE

  • 5 > 5 → FALSE

  • 4 > 5 → FALSE

9.2.19.12. >=

Compares two values and evaluates to 1 if the left value is greater or equal than the right value.

Синтаксис

a >= b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 >= 4 → TRUE

  • 5 >= 5 → TRUE

  • 4 >= 5 → FALSE

9.2.19.13. AND

Returns TRUE when conditions a and b are true.

Синтаксис

a AND b

Аргументы

  • a - condition

  • b - condition

Примеры

  • TRUE AND TRUE → TRUE

  • TRUE AND FALSE → FALSE

  • 4 = 2+2 AND 1 = 1 → TRUE

  • 4 = 2+2 AND 1 = 2 → FALSE

9.2.19.14. BETWEEN

Returns TRUE if value is within the specified range. The range is considered inclusive of the bounds. To test for exclusion NOT BETWEEN can be used.

Синтаксис

value BETWEEN lower_bound AND higher_bound

Аргументы

  • value - the value to compare with a range. It can be a string, a number or a date.

  • lower_bound AND higher_bound - range bounds

Примеры

  • 'B' BETWEEN 'A' AND 'C' → TRUE

  • 2 BETWEEN 1 AND 3 → TRUE

  • 2 BETWEEN 2 AND 3 → TRUE

  • 'B' BETWEEN 'a' AND 'c' → FALSE

  • lower('B') BETWEEN 'a' AND 'b' → TRUE

Примечание

value BETWEEN lower_bound AND higher_bound is the same as «value >= lower_bound AND value <= higher_bound».

Further reading: NOT BETWEEN

9.2.19.15. ILIKE

Returns TRUE if the first parameter matches case-insensitive the supplied pattern. LIKE can be used instead of ILIKE to make the match case-sensitive. Works with numbers also.

Синтаксис

string/number ILIKE pattern

Аргументы

  • string/number - string to search

  • pattern - pattern to find, you can use „%“ as a wildcard, „_“ as a single char and „\\“ to escape these special characters.

Примеры

  • 'A' ILIKE 'A' → TRUE

  • 'A' ILIKE 'a' → TRUE

  • 'A' ILIKE 'B' → FALSE

  • 'ABC' ILIKE 'b' → FALSE

  • 'ABC' ILIKE 'B' → FALSE

  • 'ABC' ILIKE '_b_' → TRUE

  • 'ABC' ILIKE '_B_' → TRUE

  • 'ABCD' ILIKE '_b_' → FALSE

  • 'ABCD' ILIKE '_B_' → FALSE

  • 'ABCD' ILIKE '_b%' → TRUE

  • 'ABCD' ILIKE '_B%' → TRUE

  • 'ABCD' ILIKE '%b%' → TRUE

  • 'ABCD' ILIKE '%B%' → TRUE

  • 'ABCD%' ILIKE 'abcd\\%' → TRUE

  • 'ABCD' ILIKE '%B\\%' → FALSE

9.2.19.16. IN

Returns TRUE if value is found within a list of values.

Синтаксис

a IN b

Аргументы

  • a - value

  • b - list of values

Примеры

  • 'A' IN ('A','B') → TRUE

  • 'A' IN ('C','B') → FALSE

9.2.19.17. IS

Returns TRUE if a is the same as b.

Синтаксис

a IS b

Аргументы

  • a - any value

  • b - any value

Примеры

  • 'A' IS 'A' → TRUE

  • 'A' IS 'a' → FALSE

  • 4 IS 4 → TRUE

  • 4 IS 2+2 → TRUE

  • 4 IS 2 → FALSE

  • @geometry IS NULL → 0, if your geometry is not NULL

9.2.19.18. IS NOT

Returns TRUE if a is not the same as b.

Синтаксис

a IS NOT b

Аргументы

  • a - value

  • b - value

Примеры

  • 'a' IS NOT 'b' → TRUE

  • 'a' IS NOT 'a' → FALSE

  • 4 IS NOT 2+2 → FALSE

9.2.19.19. LIKE

Returns TRUE if the first parameter matches the supplied pattern. Works with numbers also.

Синтаксис

string/number LIKE pattern

Аргументы

  • string/number - value

  • pattern - pattern to compare value with, you can use „%“ as a wildcard, „_“ as a single char and „\\“ to escape these special characters.

Примеры

  • 'A' LIKE 'A' → TRUE

  • 'A' LIKE 'a' → FALSE

  • 'A' LIKE 'B' → FALSE

  • 'ABC' LIKE 'B' → FALSE

  • 'ABC' LIKE '_B_' → TRUE

  • 'ABCD' LIKE '_B_' → FALSE

  • 'ABCD' LIKE '_B%' → TRUE

  • 'ABCD' LIKE '%B%' → TRUE

  • '1%' LIKE '1\\%' → TRUE

  • '1_' LIKE '1\\%' → FALSE

9.2.19.20. NOT

Negates a condition.

Синтаксис

NOT a

Аргументы

  • a - condition

Примеры

  • NOT 1 → FALSE

  • NOT 0 → TRUE

9.2.19.21. NOT BETWEEN

Returns TRUE if value is not within the specified range. The range is considered inclusive of the bounds.

Синтаксис

value NOT BETWEEN lower_bound AND higher_bound

Аргументы

  • value - the value to compare with a range. It can be a string, a number or a date.

  • lower_bound AND higher_bound - range bounds

Примеры

  • 'B' NOT BETWEEN 'A' AND 'C' → FALSE

  • 1.0 NOT BETWEEN 1.1 AND 1.2 → TRUE

  • 2 NOT BETWEEN 2 AND 3 → FALSE

  • 'B' NOT BETWEEN 'a' AND 'c' → TRUE

  • lower('B') NOT BETWEEN 'a' AND 'b' → FALSE

Примечание

value NOT BETWEEN lower_bound AND higher_bound is the same as «value < lower_bound OR value > higher_bound».

Further reading: BETWEEN

9.2.19.22. OR

Returns TRUE when condition a or b is true.

Синтаксис

a OR b

Аргументы

  • a - condition

  • b - condition

Примеры

  • 4 = 2+2 OR 1 = 1 → TRUE

  • 4 = 2+2 OR 1 = 2 → TRUE

  • 4 = 2   OR 1 = 2 → FALSE

9.2.19.23. []

Index operator. Returns an element from an array or map value.

Синтаксис

[index]

Аргументы

  • index - array index or map key value

Примеры

  • 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

Further reading: array_get, map_get

9.2.19.24. ^

Power of two values.

Синтаксис

a ^ b

Аргументы

  • a - value

  • b - value

Примеры

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

9.2.19.25. ||

Joins two values together into a string.

If one of the values is NULL the result will be NULL. See the CONCAT function for a different behavior.

Синтаксис

a || b

Аргументы

  • a - value

  • b - value

Примеры

  • 'Here' || ' and ' || 'there' → „Here and there“

  • 'Nothing' || NULL → NULL

  • 'Dia: ' || "Diameter" → „Dia: 25“

  • 1 || 2 → „12“

Further reading: concat, +

9.2.19.26. ~

Performs a regular expression match on a string value. Backslash characters must be double escaped (e.g., «\\s» to match a white space character).

Синтаксис

string ~ regex

Аргументы

  • string - A string value

  • regex - A regular expression. Slashes must be escaped, eg \\d.

Примеры

  • 'hello' ~ 'll' → TRUE

  • 'hello' ~ '^ll' → FALSE

  • 'hello' ~ 'llo$' → TRUE

  • 'abc123' ~ '\\d+' → TRUE

Further reading: regexp_match

9.2.20. Processing Functions

This group contains functions that operate on processing algorithms.

9.2.20.1. parameter

Returns the value of a processing algorithm input parameter.

Синтаксис

parameter(name)

Аргументы

  • name - name of the corresponding input parameter

Примеры

  • parameter('BUFFER_SIZE') → 5.6

9.2.21. Rasters Functions

This group contains functions to operate on raster layer.

9.2.21.1. raster_attributes

Returns a map with the fields names as keys and the raster attribute table values as values from the attribute table entry that matches the given raster value.

Синтаксис

raster_attributes(layer, band, value)

Аргументы

  • layer - the name or id of a raster layer

  • band - the band number for the associated attribute table lookup.

  • value - raster value

Примеры

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, make_point(1,1))) → {„class“: „Vegetated“, „subclass“: „Trees“}

  • raster_attributes('vegetation', 1, raster_value('vegetation', 1, @layer_cursor_point)) → {„class“: „Vegetated“, „subclass“: „Trees“}

9.2.21.2. raster_statistic

Returns statistics from a raster layer.

Синтаксис

raster_statistic(layer, band, property)

Аргументы

  • layer - a string, representing either a raster layer name or layer ID

  • band - integer representing the band number from the raster layer, starting at 1

  • property - a string corresponding to the property to return. Valid options are:

    • min: minimum value

    • max: maximum value

    • avg: average (mean) value

    • stdev: standard deviation of values

    • range: range of values (max - min)

    • sum: sum of all values from raster

Примеры

  • raster_statistic('lc',1,'avg') → Average value from band 1 from „lc“ raster layer

  • raster_statistic('ac2010',3,'min') → Minimum value from band 3 from „ac2010“ raster layer

9.2.21.3. raster_value

Returns the raster value found at the provided point.

Синтаксис

raster_value(layer, band, point)

Аргументы

  • layer - the name or id of a raster layer

  • band - the band number to sample the value from.

  • point - point geometry (for multipart geometries having more than one part, a NULL value will be returned)

Примеры

  • raster_value('dem', 1, make_point(1,1)) → 25

  • raster_value('ndvi', 2, @layer_cursor_point) → 25

9.2.22. Record and Attributes Functions

This group contains functions that operate on record identifiers.

9.2.22.1. attribute

Returns an attribute from a feature.

Variant 1

Returns the value of an attribute from the current feature.

Синтаксис

attribute(attribute_name)

Аргументы

  • attribute_name - name of attribute to be returned

Примеры

  • attribute( 'name' ) → value stored in „name“ attribute for the current feature

Variant 2

Allows the target feature and attribute name to be specified.

Синтаксис

attribute(feature, attribute_name)

Аргументы

  • feature - a feature

  • attribute_name - name of attribute to be returned

Примеры

  • attribute( @atlas_feature, 'name' ) → value stored in „name“ attribute for the current atlas feature

9.2.22.2. attributes

Returns a map containing all attributes from a feature, with field names as map keys.

Variant 1

Returns a map of all attributes from the current feature.

Синтаксис

attributes()

Примеры

  • attributes()['name'] → value stored in „name“ attribute for the current feature

Variant 2

Allows the target feature to be specified.

Синтаксис

attributes(feature)

Аргументы

  • feature - a feature

Примеры

  • attributes( @atlas_feature )['name'] → value stored in „name“ attribute for the current atlas feature

Further reading: Maps Functions

9.2.22.3. $currentfeature

Returns the current feature being evaluated. This can be used with the „attribute“ function to evaluate attribute values from the current feature. WARNING: This function is deprecated. It is recommended to use the replacement @feature variable instead.

Синтаксис

$currentfeature

Примеры

  • attribute( $currentfeature, 'name' ) → value stored in „name“ attribute for the current feature

9.2.22.4. display_expression

Returns the display expression for a given feature in a layer. The expression is evaluated by default. Can be used with zero, one or more arguments, see below for details.

No parameters

If called with no parameters, the function will evaluate the display expression of the current feature in the current layer.

Синтаксис

display_expression()

Примеры

  • display_expression() → The display expression of the current feature in the current layer.

One „feature“ parameter

If called with a „feature“ parameter only, the function will evaluate the specified feature from the current layer.

Синтаксис

display_expression(feature)

Аргументы

  • feature - The feature which should be evaluated.

Примеры

  • display_expression(@atlas_feature) → The display expression of the current atlas feature.

Layer and feature parameters

If the function is called with both a layer and a feature, it will evaluate the specified feature from the specified layer.

Синтаксис

display_expression(layer, feature, [evaluate=true])

[] обозначает необязательные аргументы

Аргументы

  • layer - The layer (or its ID or name)

  • feature - The feature which should be evaluated.

  • evaluate - If the expression must be evaluated. If false, the expression will be returned as a string literal only (which could potentially be later evaluated using the „eval“ function).

Примеры

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → The display expression of the feature with the ID 1 on the layer „streets“.

  • display_expression('a_layer_id', @feature, 'False') → The display expression of the given feature not evaluated.

9.2.22.5. feature_id

Returns a feature’s unique ID, or NULL if the feature is not valid.

Синтаксис

feature_id(feature)

Аргументы

  • feature - a feature object

Примеры

  • feature_id( @feature ) → the ID of the current feature

Further reading: get_feature_by_id

9.2.22.6. get_feature

Returns the first feature of a layer matching a given attribute value.

Single value variant

Along with the layer ID, a single column and value are specified.

Синтаксис

get_feature(layer, attribute, value)

Аргументы

  • layer - layer name or ID

  • attribute - attribute name to use for the match

  • value - attribute value to match

Примеры

  • get_feature('streets','name','main st') → first feature found in «streets» layer with «main st» value in the «name» field

Вариант карты

Along with the layer ID, a map containing the columns (key) and their respective value to be used.

Синтаксис

get_feature(layer, attribute)

Аргументы

  • layer - layer name or ID

  • attribute - Map containing the column and value pairs to use

Примеры

  • get_feature('streets',map('name','main st','lane_num','4')) → first feature found in «streets» layer with «main st» value in the «name» field and «4» value in the «lane_num» field

9.2.22.7. get_feature_by_id

Returns the feature with an id on a layer.

Синтаксис

get_feature_by_id(layer, feature_id)

Аргументы

  • layer - layer, layer name or layer id

  • feature_id - the id of the feature which should be returned

Примеры

  • get_feature_by_id('streets', 1) → the feature with the id 1 on the layer «streets»

Further reading: feature_id

9.2.22.8. $id

Returns the feature id of the current row. WARNING: This function is deprecated. It is recommended to use the replacement @id variable instead.

Синтаксис

$id

Примеры

  • $id → 42

Further reading: feature_id, get_feature_by_id

9.2.22.9. is_attribute_valid

Returns TRUE if a specific feature attribute meets all constraints.

Синтаксис

is_attribute_valid(attribute, [feature], [layer], [strength])

[] обозначает необязательные аргументы

Аргументы

  • attribute - an attribute name

  • feature - A feature. If not set, the current feature will be used.

  • layer - A vector layer. If not set, the current layer will be used.

  • strength - Set to „hard“ or „soft“ to narrow down to a specific constraint type. If not set, the function will return FALSE if either a hard or a soft constraint fails.

Примеры

  • is_attribute_valid('HECTARES') → TRUE if the current feature’s value in the «HECTARES» field meets all constraints.

  • is_attribute_valid('HOUSES',get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE if the value in the «HOUSES» field from the feature with «FID»=10 in „my_layer“ fails to meet all constraints.

Further reading: Constraints

9.2.22.10. is_feature_valid

Returns TRUE if a feature meets all field constraints.

Синтаксис

is_feature_valid([feature], [layer], [strength])

[] обозначает необязательные аргументы

Аргументы

  • feature - A feature. If not set, the current feature will be used.

  • layer - A vector layer. If not set, the current layer will be used.

  • strength - Set to „hard“ or „soft“ to narrow down to a specific constraint type. If not set, the function will return FALSE if either a hard or a soft constraint fails.

Примеры

  • is_feature_valid(strength:='hard') → TRUE if all fields from the current feature meet their hard constraints.

  • is_feature_valid(get_feature('my_layer', 'FID', 10), 'my_layer') → FALSE if all fields from feature with «FID»=10 in „my_layer“ fails to meet all constraints.

Further reading: Constraints

9.2.22.11. is_selected

Returns TRUE if a feature is selected. Can be used with zero, one or two arguments, see below for details.

No parameters

If called with no parameters, the function will return TRUE if the current feature in the current layer is selected.

Синтаксис

is_selected()

Примеры

  • is_selected() → TRUE if the current feature in the current layer is selected.

One „feature“ parameter

If called with a „feature“ parameter only, the function returns TRUE if the specified feature from the current layer is selected.

Синтаксис

is_selected(feature)

Аргументы

  • feature - The feature which should be checked for selection.

Примеры

  • is_selected(@atlas_feature) → TRUE if the current atlas feature is selected.

  • is_selected(get_feature('streets', 'name', 'Main St.')) → TRUE if the unique named «Main St.» feature on the active «streets» layer is selected.

  • is_selected(get_feature_by_id('streets', 1)) → TRUE if the feature with the id 1 on the active «streets» layer is selected.

Two parameters

If the function is called with both a layer and a feature, it will return TRUE if the specified feature from the specified layer is selected.

Синтаксис

is_selected(layer, feature)

Аргументы

  • layer - The layer (its ID or name) on which the selection will be checked.

  • feature - The feature which should be checked for selection.

Примеры

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → TRUE if the current building’s street is selected (assuming the building layer has a field named „street_name“ and the „streets“ layer has a field called „name“ with unique values).

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → TRUE if the feature with the id 1 on the «streets» layer is selected.

9.2.22.12. maptip

Returns the maptip for a given feature in a layer. The expression is evaluated by default. Can be used with zero, one or more arguments, see below for details.

No parameters

If called with no parameters, the function will evaluate the maptip of the current feature in the current layer.

Синтаксис

maptip()

Примеры

  • maptip() → The maptip of the current feature in the current layer.

One „feature“ parameter

If called with a „feature“ parameter only, the function will evaluate the specified feature from the current layer.

Синтаксис

maptip(feature)

Аргументы

  • feature - The feature which should be evaluated.

Примеры

  • maptip(@atlas_feature) → The maptip of the current atlas feature.

Layer and feature parameters

If the function is called with both a layer and a feature, it will evaluate the specified feature from the specified layer.

Синтаксис

maptip(layer, feature, [evaluate=true])

[] обозначает необязательные аргументы

Аргументы

  • layer - The layer (or its ID or name)

  • feature - The feature which should be evaluated.

  • evaluate - If the expression must be evaluated. If false, the expression will be returned as a string literal only (which could potentially be later evaluated using the „eval_template“ function).

Примеры

  • maptip('streets', get_feature_by_id('streets', 1)) → The maptip of the feature with the ID 1 on the layer „streets“.

  • maptip('a_layer_id', @feature, 'False') → The maptip of the given feature not evaluated.

9.2.22.13. num_selected

Returns the number of selected features on a given layer. By default works on the layer on which the expression is evaluated.

Синтаксис

num_selected([layer=current layer])

[] обозначает необязательные аргументы

Аргументы

  • layer - The layer (or its id or name) on which the selection will be checked.

Примеры

  • num_selected() → The number of selected features on the current layer.

  • num_selected('streets') → The number of selected features on the layer streets

9.2.22.14. represent_attributes

Returns a map with the attribute names as keys and the configured representation values as values. The representation value for the attributes depends on the configured widget type for each attribute. Can be used with zero, one or more arguments, see below for details.

No parameters

If called with no parameters, the function will return the representation of the attributes of the current feature in the current layer.

Синтаксис

represent_attributes()

Примеры

  • represent_attributes() → The representation of the attributes for the current feature.

One „feature“ parameter

If called with a „feature“ parameter only, the function will return the representation of the attributes of the specified feature from the current layer.

Синтаксис

represent_attributes(feature)

Аргументы

  • feature - The feature which should be evaluated.

Примеры

  • represent_attributes(@atlas_feature) → The representation of the attributes for the specified feature from the current layer.

Layer and feature parameters

If called with a „layer“ and a „feature“ parameter, the function will return the representation of the attributes of the specified feature from the specified layer.

Синтаксис

represent_attributes(layer, feature)

Аргументы

  • layer - The layer (or its ID or name).

  • feature - The feature which should be evaluated.

Примеры

  • represent_attributes('atlas_layer', @atlas_feature) → The representation of the attributes for the specified feature from the specified layer.

Further reading: represent_value

9.2.22.15. represent_value

Returns the configured representation value for a field value. It depends on the configured widget type. Often, this is useful for „Value Map“ widgets.

Синтаксис

represent_value(value, [fieldName])

[] обозначает необязательные аргументы

Аргументы

  • value - The value which should be resolved. Most likely a field.

  • fieldName - The field name for which the widget configuration should be loaded.

Примеры

  • represent_value("field_with_value_map") → Description for value

  • represent_value('static value', 'field_name') → Description for static value

Further reading: widget types, represent_attributes

9.2.22.16. sqlite_fetch_and_increment

Manage autoincrementing values in sqlite databases.

SQlite default values can only be applied on insert and not prefetched.

This makes it impossible to acquire an incremented primary key via AUTO_INCREMENT before creating the row in the database. Sidenote: with postgres, this works via the option evaluate default values.

When adding new features with relations, it is really nice to be able to already add children for a parent, while the parents form is still open and hence the parent feature uncommitted.

To get around this limitation, this function can be used to manage sequence values in a separate table on sqlite based formats like gpkg.

The sequence table will be filtered for a sequence id (filter_attribute and filter_value) and the current value of the id_field will be incremented by 1 and the incremented value returned.

If additional columns require values to be specified, the default_values map can be used for this purpose.

Note

This function modifies the target sqlite table. It is intended for usage with default value configurations for attributes.

When the database parameter is a layer and the layer is in transaction mode, the value will only be retrieved once during the lifetime of a transaction and cached and incremented. This makes it unsafe to work on the same database from several processes in parallel.

Синтаксис

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

[] обозначает необязательные аргументы

Аргументы

  • database - Path to the sqlite file or geopackage layer

  • table - Name of the table that manages the sequences

  • id_field - Name of the field that contains the current value

  • filter_attribute - Name the field that contains a unique identifier for this sequence. Must have a UNIQUE index.

  • filter_value - Name of the sequence to use.

  • default_values - Map with default values for additional columns on the table. The values need to be fully quoted. Functions are allowed.

Примеры

  • 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

Further reading: Data Sources Properties, Setting relations between multiple layers

9.2.22.17. uuid

Generates a Universally Unique Identifier (UUID) for each row using the Qt QUuid::createUuid method.

Синтаксис

uuid([format=“WithBraces“])

[] обозначает необязательные аргументы

Аргументы

  • format - The format, as the UUID will be formatted. „WithBraces“, „WithoutBraces“ or „Id128“.

Примеры

  • uuid() → „{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}“

  • uuid('WithoutBraces') → „0bd2f60f-f157-4a6d-96af-d4ba4cb366a1“

  • uuid('Id128') → „0bd2f60ff1574a6d96afd4ba4cb366a1“

9.2.23. Relations

This group contains the list of the relations available in the current project, with their description. It provides a quick access to the relation ID for writing an expression (with e.g. the relation_aggregate function) or customizing a form.

9.2.24. Sensors Functions

This group contains functions to interact with sensors.

9.2.24.1. sensor_data

Returns the last captured value (or values as a map for sensors which report multiple values) from a registered sensor.

Синтаксис

sensor_data(name, [expiration])

[] обозначает необязательные аргументы

Аргументы

  • name - the sensor name

  • expiration - maximum millisecond since last captured value allowed

Примеры

  • sensor_data('geiger_1') → „2000“

9.2.25. String Functions

This group contains functions that operate on strings (e.g., that replace, convert to upper case).

9.2.25.1. ascii

Returns the unicode code associated with the first character of a string.

Синтаксис

ascii(string)

Аргументы

  • string - the string to convert to unicode code

Примеры

  • ascii('Q') → 81

9.2.25.2. char

Returns the character associated with a unicode code.

Синтаксис

char(code)

Аргументы

  • code - a unicode code number

Примеры

  • char(81) → „Q“

9.2.25.3. concat

Concatenates several strings to one. NULL values are converted to empty strings. Other values (like numbers) are converted to strings.

Синтаксис

concat(string1, string2, …)

Аргументы

  • string - a string value

Примеры

  • concat('sun', 'set') → „sunset“

  • concat('a','b','c','d','e') → „abcde“

  • concat('Anno ', 1984) → „Anno 1984“

  • concat('The Wall', NULL) → „The Wall“

About fields concatenation

You can also concatenate strings or field values using either || or + operators, with some special characteristics:

  • The + operator also means sum up expression, so if you have an integer (field or numeric value) operand, this can be error prone and you better use the others:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • When any of the arguments is a NULL value, either || or + will return a NULL value. To return the other arguments regardless the NULL value, you may want to use the concat or array_to_string function:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    array_to_string( array('My feature id is: ', NULL) ) => 'My feature id is: '
    

further reading: array_to_string, ||, +

9.2.25.4. format

Format a string using supplied arguments.

Синтаксис

format(string, arg1, arg2, …)

Аргументы

  • string - A string with placeholders %1, %2, etc., for the arguments. Placeholders can be repeated. The lowest numbered placeholder is replaced by arg1, the next by arg2, etc.

  • arg - any type. Any number of arguments.

Примеры

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

9.2.25.5. format_date

Formats a date type or string into a custom string format. Uses Qt date/time format strings. See QDateTime::toString.

Синтаксис

format_date(datetime, format, [language])

[] обозначает необязательные аргументы

Аргументы

  • datetime - date, time or datetime value

  • format - String template used to format the string.

    Выражение

    Output

    d

    the day as number without a leading zero (1 to 31)

    dd

    the day as number with a leading zero (01 to 31)

    ddd

    the abbreviated localized day name (e.g. „Mon“ to „Sun“)

    dddd

    the long localized day name (e.g. „Monday“ to „Sunday“)

    M

    the month as number without a leading zero (1-12)

    MM

    the month as number with a leading zero (01-12)

    MMM

    the abbreviated localized month name (e.g. „Jan“ to „Dec“)

    MMMM

    the long localized month name (e.g. „January“ to „December“)

    yy

    the year as two digit number (00-99)

    yyyy

    the year as four digit number

    These expressions may be used for the time part of the format string:

    Выражение

    Output

    h

    the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)

    hh

    the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)

    H

    the hour without a leading zero (0 to 23, even with AM/PM display)

    HH

    the hour with a leading zero (00 to 23, even with AM/PM display)

    m

    the minute without a leading zero (0 to 59)

    mm

    the minute with a leading zero (00 to 59)

    s

    the second without a leading zero (0 to 59)

    ss

    the second with a leading zero (00 to 59)

    z

    the milliseconds without trailing zeroes (0 to 999)

    zzz

    the milliseconds with trailing zeroes (000 to 999)

    AP or A

    interpret as an AM/PM time. AP must be either „AM“ or „PM“.

    ap or a

    Interpret as an AM/PM time. ap must be either „am“ or „pm“.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string. By default the current QGIS user locale is used.

Примеры

  • 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“, if the current locale is an English variant

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

9.2.25.6. format_number

Returns a number formatted with the locale separator for thousands. By default the current QGIS user locale is used. Also truncates the decimal places to the number of supplied places.

Синтаксис

format_number(number, [places=0], [language], [omit_group_separators=false], [trim_trailing_zeroes=false])

[] обозначает необязательные аргументы

Аргументы

  • number - number to be formatted

  • places - integer representing the number of decimal places to truncate the string to.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the number into a string. By default the current QGIS user locale is used.

  • omit_group_separators - if set to true then group separators will not be included in the string

  • trim_trailing_zeroes - if set to true then trailing zeros following the decimal point will be trimmed from the string

Примеры

  • format_number(10000000.332,2) → „10,000,000.33“ if e.g. the current locale is an English variant

  • format_number(10000000.332,2,'fr') → „10 000 000,33“

9.2.25.7. left

Returns a substring that contains the n leftmost characters of the string.

Синтаксис

left(string, length)

Аргументы

  • string - a string

  • length - integer. The number of characters from the left of the string to return.

Примеры

  • left('Hello World',5) → „Hello“

Further reading: right

9.2.25.8. length

Returns the number of characters in a string or the length of a geometry linestring.

String variant

Returns the number of characters in a string.

Синтаксис

length(string)

Аргументы

  • string - string to count length of

Примеры

  • length('hello') → 5

Geometry variant

Calculate the length of a geometry line object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

Синтаксис

length(geometry)

Аргументы

  • geometry - line geometry object

Примеры

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

9.2.25.9. lower

Converts a string to lower case letters.

Синтаксис

lower(string)

Аргументы

  • string - the string to convert to lower case

Примеры

  • lower('HELLO World') → „hello world“

Further reading: upper, title

9.2.25.10. lpad

Returns a string padded on the left to the specified width, using a fill character. If the target width is smaller than the string’s length, the string is truncated.

Синтаксис

lpad(string, width, fill)

Аргументы

  • string - string to pad

  • width - length of new string

  • fill - character to pad the remaining space with

Примеры

  • lpad('Hello', 10, 'x') → „xxxxxHello“

  • lpad('Hello', 3, 'x') → „Hel“

Further reading: rpad

9.2.25.11. ltrim

Removes the longest string containing only the specified characters (a space by default) from the start of string.

Синтаксис

ltrim(string, [characters=“ „])

[] обозначает необязательные аргументы

Аргументы

  • string - string to trim

  • characters - characters to trim

Примеры

  • ltrim('   hello world  ') → „hello world „

  • ltrim('zzzytest', 'xyz') → „test“

Further reading: rtrim, trim

9.2.25.12. regexp_match

Return the first matching position matching a regular expression within an unicode string, or 0 if the substring is not found.

Синтаксис

regexp_match(input_string, regex)

Аргументы

  • input_string - the string to test against the regular expression

  • regex - The regular expression to test against. Backslash characters must be double escaped (e.g., «\\s» to match a white space character or «\\b» to match a word boundary).

Примеры

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

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

Further reading: strpos

9.2.25.13. regexp_replace

Returns a string with the supplied regular expression replaced.

Синтаксис

regexp_replace(input_string, regex, replacement)

Аргументы

  • input_string - the string to replace matches in

  • regex - The regular expression to replace. Backslash characters must be double escaped (e.g., «\\s» to match a white space character).

  • replacement - The string that will replace any matching occurrences of the supplied regular expression. Captured groups can be inserted into the replacement string using \\1, \\2, etc.

Примеры

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

Further reading: replace, array_replace

9.2.25.14. regexp_substr

Returns the portion of a string which matches a supplied regular expression.

Синтаксис

regexp_substr(input_string, regex)

Аргументы

  • input_string - the string to find matches in

  • regex - The regular expression to match against. Backslash characters must be double escaped (e.g., «\\s» to match a white space character).

Примеры

  • regexp_substr('abc123','(\\d+)') → „123“

Further reading: substr, regexp_matches

9.2.25.15. replace

Returns a string with the supplied string, array, or map of strings replaced.

String & array variant

Returns a string with the supplied string or array of strings replaced by a string or an array of strings.

Синтаксис

replace(string, before, after)

Аргументы

  • string — входная строка

  • before - the string or array of strings to replace

  • after - the string or array of strings to use as a replacement

Примеры

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

Вариант карты

Returns a string with the supplied map keys replaced by paired values. Longer map keys are evaluated first.

Синтаксис

replace(string, map)

Аргументы

  • string — входная строка

  • map — карта, содержащая ключи и значения

Примеры

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → „QGIS DOES ROCK“

  • replace('forty two',map('for','4','two','2','forty two','42')) → „42“

Further reading: regexp_replace, array_replace

9.2.25.17. rpad

Returns a string padded on the right to the specified width, using a fill character. If the target width is smaller than the string’s length, the string is truncated.

Синтаксис

rpad(string, width, fill)

Аргументы

  • string - string to pad

  • width - length of new string

  • fill - character to pad the remaining space with

Примеры

  • rpad('Hello', 10, 'x') → „Helloxxxxx“

  • rpad('Hello', 3, 'x') → „Hel“

Further reading: lpad

9.2.25.18. rtrim

Removes the longest string containing only the specified characters (a space by default) from the end of string.

Синтаксис

rtrim(string, [characters=“ „])

[] обозначает необязательные аргументы

Аргументы

  • string - string to trim

  • characters - characters to trim

Примеры

  • rtrim('   hello world  ') → „ hello world“

  • rtrim('testxxzx', 'xyz') → „test“

Further reading: ltrim, trim

9.2.25.19. strpos

Return the first matching position of a substring within another string, or 0 if the substring is not found.

Синтаксис

strpos(haystack, needle)

Аргументы

  • haystack - string that is to be searched

  • needle - string to search for

Примеры

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

Further reading: regexp_match

9.2.25.20. substr

Returns a part of a string.

Синтаксис

substr(string, start, [length])

[] обозначает необязательные аргументы

Аргументы

  • string - the full input string

  • start - integer representing start position to extract beginning with 1; if start is negative, the return string will begin at the end of the string minus the start value

  • length - integer representing length of string to extract; if length is negative, the return string will omit the given length of characters from the end of the string

Примеры

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

Further reading: regexp_substr, regexp_matches

9.2.25.21. title

Converts all words of a string to title case (all words lower case with leading capital letter).

Синтаксис

title(string)

Аргументы

  • string - the string to convert to title case

Примеры

  • title('hello WOrld') → „Hello World“

Further reading: lower, upper

9.2.25.22. to_string

Converts a number to string.

Синтаксис

to_string(number)

Аргументы

  • number - Integer or real value. The number to convert to string.

Примеры

  • to_string(123) → „123“

Further reading: format_number

9.2.25.23. trim

Removes all leading and trailing whitespace (spaces, tabs, etc) from a string.

Синтаксис

trim(string)

Аргументы

  • string - string to trim

Примеры

  • trim('   hello world  ') → „hello world“

Further reading: ltrim, rtrim

9.2.25.24. upper

Converts a string to upper case letters.

Синтаксис

upper(string)

Аргументы

  • string - the string to convert to upper case

Примеры

  • upper('hello WOrld') → „HELLO WORLD“

Further reading: lower, title

9.2.25.25. wordwrap

Returns a string wrapped to a maximum/minimum number of characters.

Синтаксис

wordwrap(string, wrap_length, [delimiter_string])

[] обозначает необязательные аргументы

Аргументы

  • string - the string to be wrapped

  • wrap_length - an integer. If wrap_length is positive the number represents the ideal maximum number of characters to wrap; if negative, the number represents the minimum number of characters to wrap.

  • delimiter_string - Optional delimiter string to wrap to a new line.

Примеры

  • wordwrap('UNIVERSITY OF QGIS',13) → „UNIVERSITY OF<br>QGIS“

  • wordwrap('UNIVERSITY OF QGIS',-3) → „UNIVERSITY<br>OF QGIS“

9.2.26. User Expressions

This group contains the expressions saved as user expressions.

9.2.27. Переменные

This group contains dynamic variables related to the application, the project file and other settings. The availability of variables depends on the context:

  • from the expressionSelect Select by expression dialog

  • from the calculateField Field calculator dialog

  • from the layer properties dialog

  • from the print layout

To use these variables in an expression, they should be preceded by the @ character (e.g, @row_number).

Variable

Описание

algorithm_id

The unique ID of an algorithm

animation_end_time

End of the animation’s overall temporal time range (as a datetime value)

animation_interval

Duration of the animation’s overall temporal time range (as an interval value)

animation_start_time

Start of the animation’s overall temporal time range (as a datetime value)

atlas_feature

The current atlas feature (as feature object)

atlas_featureid

The current atlas feature ID

atlas_featurenumber

The current atlas feature number in the layout

atlas_filename

The current atlas file name

atlas_geometry

The current atlas feature geometry

atlas_layerid

The current atlas coverage layer ID

atlas_layername

The current atlas coverage layer name

atlas_pagename

The current atlas page name

atlas_totalfeatures

The total number of features in atlas

band

The number of the band in the raster layer

band_description

The description of the band in the raster layer

band_name

The name of the band in the raster layer

canvas_cursor_point

The last cursor position on the canvas in the project’s geographical coordinates

cluster_color

The color of symbols within a cluster, or NULL if symbols have mixed colors

cluster_size

The number of symbols contained within a cluster

current_feature

The feature currently being edited in the attribute form or table row

current_geometry

The geometry of the feature currently being edited in the form or the table row

current_parent_feature

represents the feature currently being edited in the parent form. Only usable in an embedded form context.

current_parent_geometry

represents the geometry of the feature currently being edited in the parent form. Only usable in an embedded form context.

form_mode

What the form is used for, like AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode or IdentifyMode as string.

feature

The current feature being evaluated. This can be used with the „attribute“ function to evaluate attribute values from the current feature.

frame_duration

Temporal duration of each animation frame (as an interval value)

frame_number

Current frame number during animation playback

frame_rate

Number of frames per second during animation playback

fullextent_maxx

Maximum x value from full canvas extent (including all layers)

fullextent_maxy

Maximum y value from full canvas extent (including all layers)

fullextent_minx

Minimum x value from full canvas extent (including all layers)

fullextent_miny

Minimum y value from full canvas extent (including all layers)

geometry

The geometry of the current feature being evaluated

geometry_part_count

The number of parts in rendered feature’s geometry

geometry_part_num

The current geometry part number for feature being rendered

geometry_point_count

The number of points in the rendered geometry’s part

geometry_point_num

The current point number in the rendered geometry’s part

geometry_ring_num

Current geometry ring number for feature being rendered (for polygon features only). The exterior ring has a value of 0.

grid_axis

The current grid annotation axis (eg, „x“ for longitude, „y“ for latitude)

grid_number

The current grid annotation value

id

The ID of the current feature being evaluated

item_id

The layout item user ID (not necessarily unique)

item_uuid

The layout item unique ID

layer

The current layer

layer_crs

The Coordinate Reference System Authority ID of the current layer

layer_crs_ellipsoid

The ellipsoid Authority ID of the current layer CRS

layer_cursor_point

Point geometry under the mouse position in map canvas (or the GetFeatureInfo position in context of QGIS Server), in active layer’s CRS

layer_id

The ID of current layer

layer_ids

The IDs of all the map layers in the current project as a list

layer_name

The name of current layer

layer_vertical_crs

The Identifier for the vertical coordinate reference system of the layer (e.g., „EPSG:5703“)

layer_vertical_crs_definition

The full definition of the vertical Coordinate reference system of the layer

layer_vertical_crs_description

The name of the vertical Coordinate reference system of the layer

layer_vertical_crs_wkt

The WKT definition of the vertical Coordinate reference system of the current layer

layers

All the map layers in the current project as a list

layout_dpi

The composition resolution (DPI)

layout_name

The layout name

layout_numpages

The number of pages in the layout

layout_page

The page number of the current item in the layout

layout_pageheight

The active page height in the layout (in mm for standard paper sizes, or whatever unit was used for custom paper size)

layout_pageoffsets

Array of Y coordinate of the top of each page. Allows to dynamically position items on pages in a context where page sizes may change

layout_pagewidth

The active page width in the layout (in mm for standard paper sizes, or whatever unit was used for custom paper size)

legend_column_count

The number of columns in the legend

legend_filter_by_map

Indicates if the content of the legend is filtered by the map

legend_filter_out_atlas

Indicates if the atlas is filtered out of the legend

legend_split_layers

Indicates if layers can be split in the legend

legend_title

The title of the legend

legend_wrap_string

The character(s) used to wrap the legend text

map_crs

The Coordinate reference system of the current map

map_crs_acronym

The acronym of the Coordinate reference system of the current map

map_crs_definition

The full definition of the Coordinate reference system of the current map

map_crs_description

The name of the Coordinate reference system of the current map

map_crs_ellipsoid

The acronym of the ellipsoid of the Coordinate reference system of the current map

map_crs_proj4

The Proj4 definition of the Coordinate reference system of the current map

map_crs_projection

The descriptive name of the projection method used by the Coordinate reference system of the map (e.g. „Albers Equal Area“)

map_crs_wkt

The WKT definition of the Coordinate reference system of the current map

map_end_time

The end of the map’s temporal time range (as a datetime value)

map_extent

The geometry representing the current extent of the map

map_extent_center

The point feature at the center of the map

map_extent_height

The current height of the map

map_extent_width

The current width of the map

map_id

The ID of current map destination. This will be „canvas“ for canvas renders, and the item ID for layout map renders

map_interval

The duration of the map’s temporal time range (as an interval value)

map_layer_ids

The list of map layer IDs visible in the map

map_layers

The list of map layers visible in the map

map_rotation

The current rotation of the map

map_scale

The current scale of the map

map_start_time

The start of the map’s temporal time range (as a datetime value)

map_units

The units of map measurements

map_z_range_lower

Lower elevation of the map’s elevation range

map_z_range_upper

Upper elevation of the map’s elevation range

model_path

Full path (including file name) of current model (or project path if model is embedded in a project).

model_folder

Folder containing current model (or project folder if model is embedded in a project).

model_name

Name of current model

model_group

Group for current model

notification_message

Content of the notification message sent by the provider (available only for actions triggered by provider notifications).

parent

Refers to the current feature in the parent layer, providing access to its attributes and geometry when filtering an aggregate function

plot_axis

The associated plot axis, e.g. „x“ or „y“.

plot_axis_value

The current value for the plot axis.

project_abstract

The project abstract, taken from project metadata

project_area_units

The area unit for the current project, used when calculating areas of geometries

project_author

The project author, taken from project metadata

project_basename

The basename of current project’s filename (without path and extension)

project_creation_date

The project creation date, taken from project metadata

project_crs

Identifier for the coordinate reference system of the project (e.g., „EPSG:4326“)

project_crs_arconym

The acronym of the Coordinate reference system of the project

project_crs_definition

The full definition of the Coordinate reference system of the project

project_crs_description

The description of the Coordinate reference system of the project

project_crs_ellipsoid

The ellipsoid of the Coordinate reference system of the project

project_crs_proj4

The Proj4 representation of the Coordinate reference system of the project

project_crs_wkt

The WKT (well known text) representation of the coordinate reference system of the project

project_distance_units

The distance unit for the current project, used when calculating lengths of geometries and distances

project_ellipsoid

The name of the ellipsoid of the current project, used when calculating geodetic areas or lengths of geometries

project_filename

The filename of the current project

project_folder

The folder of the current project

project_home

The home path of the current project

project_identifier

The project identifier, taken from the project’s metadata

project_keywords

The project keywords, taken from the project’s metadata

project_last_saved

Date/time when project was last saved.

project_path

The full path (including file name) of the current project

project_title

The title of current project

project_units

The units of the project’s CRS

project_vertical_crs

Identifier for the vertical Coordinate reference system of the project (e.g., „EPSG:5703“)

project_vertical_crs_definition

The full definition of the vertical coordinate reference system of the project

project_vertical_crs_description

The description of the vertical coordinate reference system of the project

project_vertical_crs_wkt

The WKT (well known text) representation of the vertical coordinate reference system of the project

qgis_locale

The current language of QGIS

qgis_os_name

The current Operating system name, eg „windows“, „linux“ or „osx“

qgis_platform

The QGIS platform, eg „desktop“ or „server“

qgis_release_name

The current QGIS release name

qgis_short_version

The current QGIS version short string

qgis_version

The current QGIS version string

qgis_version_no

The current QGIS version number

row_number

Stores the number of the current row

snapping_results

Gives access to snapping results while digitizing a feature (only available in add feature)

scale_value

The current scale bar distance value

selected_file_path

Selected file path from file widget selector when uploading a file with an external storage system

symbol_angle

The angle of the symbol used to render the feature (valid for marker symbols only)

symbol_color

The color of the symbol used to render the feature

symbol_count

The number of features represented by the symbol (in the layout legend)

symbol_frame

The frame number (for animated symbols only)

symbol_id

The Internal ID of the symbol (in the layout legend)

symbol_label

The label for the symbol (either a user defined label or the default autogenerated label - in the layout legend)

symbol_layer_count

Total number of symbol layers in the symbol

symbol_layer_index

Current symbol layer index

symbol_marker_column

Column number for marker (valid for point pattern fills only).

symbol_marker_row

Row number for marker (valid for point pattern fills only).

user_account_name

The current user’s operating system account name

user_full_name

The current user’s operating system user name

value

The current value

vector_tile_zoom

Exact vector tile zoom level of the map that is being rendered (derived from the current map scale). Normally in interval [0, 20]. Unlike @zoom_level, this variable is a floating point value which can be used to interpolate values between two integer zoom levels.

with_variable

Allows setting a variable for usage within an expression and avoid recalculating the same value repeatedly

zoom_level

Vector tile zoom level of the map that is being rendered (derived from the current map scale). Normally in interval [0, 20].

Some examples:

  • Return the X coordinate of a map item center in layout:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • Return, for each feature in the current layer, the number of overlapping airport features:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • Get the object_id of the first snapped point of a line:

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

9.2.28. Recent Functions

This group contains recently used functions. Depending on the context of its usage (feature selection, field calculator, generic), recently applied expressions are added to the corresponding list (up to ten expressions), sorted from more to less recent. This makes it easy to quickly retrieve and reapply previously used expressions.