Конструктор запросов используется в инструментах Поиск по атрибутам и местоположению и Фильтр по атрибутам для создания выражений, соответствующих указанным критериям.
Построение запроса
Чтобы построить запрос, нажмите кнопку Построить новый запрос на панели инструментов или в диалоговом окне инструментов.
Для начала выберите слой, в котором вы хотите найти объекты. Для Поиска по атрибутам и местоположению это можно сделать в конструкторе запросов. Для Фильтра по атрибутам параметр входных данных должен быть заполнен до построения запроса.
Затем выберите, с чего начать: с выражения атрибута, пространственного выражения (только для Поиска по атрибутам и местоположению) или группы выражений.
Если запрос содержит более одного выражения, необходимо выбрать один из следующих вариантов сопоставления, чтобы связать выражения:
- Все из следующего верно (по умолчанию) — возвращаются только те объекты, которые соответствуют всем выражениям. Эта опция эквивалентна условию AND.
- Одно из следующего верно — возвращаются объекты, соответствующие любому из выражений. Эта опция эквивалентна условию OR.
Атрибутивные выражения
Каждый атрибутивный запрос включает имя поля, оператор и значение.
Например, можно создать запрос к слою, содержащему данные по преступлениям в городе (кражи, поджоги, нападения и так далее), чтобы показать только случаи краж. Создайте выражение атрибута следующим образом:
- В разделе имени поля выберите Тип преступления.
- В качестве оператора выберите равно.
- Для значения введите или выберите Theft.
Примечание:
Поля со значениями null будут исключены из всех результатов запроса, за исключением случаев, когда в качестве оператора выбрано пустое значение.
В большинстве случаев конструктор запросов включает список доступных значений полей, что помогает построить точное выражение. Список недоступен для Фильтра по атрибутам, если входной набор данных является выходными данными другого инструмента. Вам необходимо ввести точное значение в поле ввода, а не выбирать значение из списка.
Пространственные выражения
Каждое пространственное выражение содержит оператор и второй слой. Ниже второго слоя вы можете использовать кнопку + Выражение, чтобы добавить выражение для дальнейшего уточнения объектов второго слоя, которые будут использоваться в исходном пространственном выражении.
Например, используя другой слой, представляющий пекарни, вы можете дополнительно уточнить атрибутивный запрос для поиска краж, которые произошли в радиусе 100 метров от магазина пончиков. Добавьте пространственное выражение следующим образом:
- Для оператора выберите В пределах расстояния и введите 100 метров.
- В качестве слоя выберите слой с пекарнями.
- Щелкните + Выражение и выберите Атрибутивное выражение.
- В группе условия Где выберите для имени поля Shop Type, оставьте оператор равно, а затем напишите или выберите Donut shops в качестве значения.
Группа Выражение
Для создания более сложного запроса можно использовать наборы выражений для группировки нескольких выражений. Способ группировки выражений определяет, что вы будете искать. Вы можете создать до трех уровней группировки.
Например, можно использовать группы выражений для более точной настройки описанного выше фильтра преступлений. Чтобы отображать как случаи поджога, так и кражи, зарегистрированные на расстоянии 100 метров от магазина пончиков, вы можете создать группу выражений для поиска случаев поджога или краж. Внутри этой группы используйте опцию Одно из следующих условий верно. Затем добавьте пространственное выражение вне группы для поиска объектов в радиусе 100 метров от магазинов пончиков.
Операторы
Поиск по атрибутам и местоположению использует операторы для атрибутивных и пространственных запросов, тогда как Фильтр по атрибутам использует операторы только для атрибутивных запросов.
Операторы атрибутов
Имеется несколько операторов, которые можно использовать для запроса атрибутов, в зависимости от того, является ли поле категорийным или числовым.
Если поле является текстовой строкой, используются следующие операторы:
- равно — строки, соответствующие заданному тексту.
- не равно — строки, которые не соответствуют заданному тексту.
- является участником — строки, соответствующие заданным одному или нескольким значениям текста.
- не является участником — строки, не соответствующие заданным одному или нескольким значениям текста.
- содержит — строки, содержащие предоставленный текст.
- не содержит — строки, не содержащие предоставленный текст.
- начинается с — строки, которые начинаются с заданного текста.
- не начинается с — строки, которые не начинаются с заданного текста.
- заканчивается на — строки, которые заканчиваются заданным текстом.
- не заканчивается на — строки, которые не заканчиваются заданным текстом.
- является пустым — строки, которые не имеют текста и не имеют значения null.
- не является пустым — строки, которые содержат некоторый текст и не имеют значения null.
- является пустой строкой — строки, которые имеют значения null или не содержат текст.
- не является пустой строкой — строки, которые имеют некоторый текст или имеют значение null.
Если поле числовое, используются следующие операторы:
- между — числа, которые находятся между двумя заданными значениями. Граничные значения включены в результаты.
- не между — числа, которые не находятся между двумя заданными значениями. Граничные значения не включены в результаты.
- равно — числа, соответствующие заданному значению.
- не равно — числа, которые не соответствуют заданному значению.
- является участником — числа, соответствующие заданным одному или нескольким значениям.
- не является участником — числа, не соответствующие заданным одному или нескольким значениям.
- больше — числа, которые больше заданного значения.
- больше или равно — числа, которые равны или больше заданного значения.
- меньше — числа, которые меньше заданного значения.
- меньше или равно — числа, которые меньше или равны заданному значению.
- является пустым — числа, соответствующие заданному значению.
- не является пустым — числа, которые имеют некоторое значение.
Если поле является датой, используются следующие операторы:
- между — даты, которые находятся между двумя указанными датами. Граничные значения включены в результаты.
- не между — даты, которые не находятся между двумя указанными датами. Граничные значения не включены в результаты.
- соответствует — даты, которые совпадают с указанной датой.
- не соответствует — даты, которые не совпадают с указанной датой.
- до — даты, которые предшествуют указанной дате.
- после — даты, которые наступают после указанной даты.
- является пустым — даты, которые имеют значение null.
- не является пустым — даты, которые не имеют значения null.
Пространственные операторы
Пространственные выражения создаются путем указания таких операторов, как полностью внутри или пересекает.
В пространственном запросе могут использоваться следующие пространственные операторы:
- Пересекает – если объект первого слоя пересекает объект второго слоя, объект первого слоя включается в выходные данные.
- Не пересекает – если объект первого слоя пересекает объект второго слоя, объект первого слоя не включается в выходные данные.
- В пределах расстояния – объекты первого слоя выбираются (включаются в выходные), если любая их часть находится в пределах указанного расстояния от объекта во втором слое; например участки в пределах 100 метров от реки будут включены в выходные данные.
- Вне пределов расстояния – объекты первого слоя исключаются (не включаются в выходные данные), если любая их часть находится в пределах указанного расстояния от другого объекта; например, участки в пределах 100 метров от реки не будут включены в выходные данные. Вы можете представить это соотношение, как такое, при котором объект находится дальше, чем указанное расстояние.
- Полностью содержит – если объект первого слоя полностью содержит объект второго слоя, то объект первого слоя включается в выходные данные.
- Не полностью содержит – если объект первого слоя полностью содержит объект второго слоя, то объект первого слоя не включается в выходные данные.
- Полностью в пределах – если объект первого слоя полностью входит в объект второго слоя, объект первого слоя включается в выходные данные.
- Не полностью в пределах – если объект первого слоя полностью находится в объекте второго слоя, то он не включается в выходные данные.
- Ближайший к – если объект первого слоя вляется ближайшим к объекту второго слоя, объект первого слоя включается в выходные данные.
Решение проблем
Изменения в наборе данных могут привести к тому, что построенное ранее правильное выражение станет недопустимым. Примерами изменений, которые могут привести к тому, что выражение станет недопустимым, являются удаление или изменение типа поля, используемого в выражении, или изменение геометрии набора данных, используемого в пространственном выражении. Недопустимые выражения не будут отображаться в конструкторе запросов при его повторном открытии.