Атрибутивные запросы в 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”
Арифметические операции
+
- сложение значений. Для строковых значений - объединение двух значений в одну строку.-
- вычитание*
- умножение/
- деление
Булевые операции
||
- ИЛИ&&
- И