Атрибутивные запросы в EverGIS используются для:

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

Запросы применяются к слоям с гео-данными и при исполнении используют системные названия атрибутов.

Например, если имеется слой с атрибутами str_attr (текст), int_attr(целочисленный), для такого слоя можно составить запросы:

  • str_attr is {null} - вернет значение true если значение атрибута у объекта не задано
  • str_attr + str_attr - вернет текстовое значение, в котором значение атрибута повторяется дважды
  • int_attr > 10 && int_attr < 20 - вернет true если значение атрибута находится в пределах от 10 до 20
  • int_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”

Арифметические операции

  • + - сложение значений. Для строковых значений - объединение двух значений в одну строку.
  • - - вычитание
  • * - умножение
  • / - деление

Булевые операции

  • || - ИЛИ
  • && - И