Атрибутивные запросы в EverGIS используются для:
- написания условий для фильтрации объектов в слоях, при запросе данных, при выборе применяемого стиля
- для динамического расчёта значений в классификаторах
- для расчёта значений атрибутов на основе других атрибутов в операциях массового редактирования
Запросы применяются к слоям с гео-данными и при исполнении используют системные названия атрибутов.
Например, если имеется слой с атрибутами str_attr (текст), int_attr(целочисленный), для такого слоя можно составить запросы:
str_attr is {null}- вернет значение true если значение атрибута у объекта не заданоstr_attr + str_attr- вернет текстовое значение, в котором значение атрибута повторяется дваждыint_attr > 10 && int_attr < 20- вернет true если значение атрибута находится в пределах от 10 до 20int_attr * 2 + 5- вернет целое число - результат выполнения выражения
Типы значений
Целые числа
Положительные или отрицательные целочисленные значения, умещающиеся в 64 бит:
0
5
-100
123456789
Дробные значения
Положительные и отрицательные дробные значения с разделителем “.”. Разделение разрядов запятой не поддерживается.
0.0
3.1415
-20.9
Текстовые значения
Текстовые значения обрамляются одинарыми или двойными кавычками. При необходимости ввести значение с кавычками, перед кавычкой нужно поставить знак “”.
""
"Строковое значение"
'Также строковое значение с двойными " кавычками'
"Двойные кавычки \" обрамленные двойными кавычками"
Дата и время
Значения типа дата и время представляются текстовым значением, перед которым стоит знак “#”. Значения записываются в формате YYYY-mm-DD HH:MM:SS.
#"2019-10-08"
#'2000-01-01 00:00:01'
Период времени
Период времени используется в комбинации с датами и временем, и позволяет выразить выражения типа “ДАТА +/- ПЕРИОД”. Значение периода задается символом “#”, за которым идет целое число и указатель размерности.
#1s (одна секунда)
#5h (пять часов)
#365d (365 дней)
Поддерживаемые размерности:
ms- миллисекундыs- секундыm- минутыh- часыd- дниmth- месяцыy- годы
Специальные значения
Специальные значения обрамляются фигурными скобками: { }.
{null}- пустое значение атрибута{now}- дата и время в момент выполнения фильтрующего запроса{today}- дата в момент выполнения фильтрующего запроса{this_week}- полночь текущего понедельника (на момент выполнения запроса){this_month}- полночь первого числа текущего месяца (на момент выполнения запроса){this_year}- полночь первого января текущего года (на момент выполнения запроса)
Операторы
Операторы сравнения
==!=>>=<<=Операторы сравнения возвращаются булевое значение сравнения левого и правого значения.
int_attr == 2
str_attr != "Строковое значение"
date_attr == #"2020-01-01"
double_attr >= 1.5 && double_attr < 5
Начинается с, заканчивается на, содержит
Для текстовых значений операторы == и != поддерживают специальный синтаксис:
attr == "value%",attr != "value%"- значение начинается (не начинается) с текста “value”attr == "%value",attr != "%value"- значение заканчивается (не заканчивается) на текст “value”attr == "%value%",attr != "%value%"- значение содержит (не содержит) текст “value”
Арифметические операции
+- сложение значений. Для строковых значений - объединение двух значений в одну строку.-- вычитание*- умножение/- деление
Булевые операции
||- ИЛИ&&- И