Фильтрация объектов с определяющими запросами

При определении набора данных, который вы хотите отобразить как слой на карте или сцене, иногда бывает нужно отобразить только некоторые пространственные объекты этого набора. Примеры использования:

  • Из набора данных городов мира необходимо выбрать только те, где население превышает 1 млн.
  • Из набора данных по рекам необходимо выбрать только те, которые не пересыхают летом.
  • Из набора данных земельных участков необходимо выбрать только коммерческие.

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

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

Определяющие запросы могут включать одно или несколько условий. Они пишутся на языке SQL с помощью специального конструктора запросов. Для изучения работы с запросами и условиями, способами сохранения и загрузки запросов из файлов см. раздел Начало работы с выражениями в запросах.

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

Примечание:

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

Создание определяющего запроса для слоя

Чтобы создать определяющий запрос для слоя, выполните следующие действия:

  1. Убедитесь, что слой выделен на панели Содержание.
  2. Под пунктом Векторный слой, на вкладке Данные, в группе Определяющий запрос, щелкните Установщик , чтобы открыть диалоговое окно Свойства слоя на вкладке Определяющий запрос.
  3. Щелкните Новый определяющий запрос.

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

  4. Выбирайте из меню значения, чтобы создать запрос. Эти меню и их значения зависят от соответствующих исходных данных.
  5. Дополнительно щелкните Добавить условие Добавить новое условие, чтобы добавить другое условие к выражению. Выберите в новом выражение необходимые значения из меню. Повторите это действие, чтобы добавить дополнительные условия, при необходимости.
  6. Дополнительно щелкните Параметры поля Настройки, чтобы изменить отображение значения поля. Эти настройки применяются ко всем условиям.
    • Показать псевдонимы полей выбрано по умолчанию. Щелкните Показать имена полей, чтобы включить имя таблицы в ниспадающее меню поля условия. Это особенно полезно, если слой участвует в соединении, которое содержит общие имена полей.
    • Щелкните Сортировать по возрастанию или Сортировать по убыванию, чтобы отображать имена полей в ниспадающем списке в алфавитном порядке.
    • Показать видимые поля выбрано по умолчанию. Щелкните Показать все поля, чтобы отображать спрятанные поля в ниспадающем меню поля условия.
  7. Дополнительно, задержите курсор над именем запроса и щелкните, чтобы изменить имя.
  8. Дополнительно, щелкните Проверить правильность SQL выражения Проверить правильность SQL-выражения, чтобы проверить его.
  9. Для проверки и завершения создания запроса щелкните Применить.
  10. Если это единственный определяющий запрос в слое, он станет активным и будет применен немедленно. Если в слое есть и другие определяющие запросы, щелкните Сделать активным Сделать активным, чтобы применить определяющий запрос к слою.

Задание активного определяющего запроса

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

Чтобы переключаться между активными определяющими запросами, выполните следующие действия:

  1. Убедитесь в том, что слой выделен на панели Содержание .
  2. Под пунктом Векторный слой, на вкладке Данные, в группе Определяющий запрос, выберите запрос из меню Определяющий запрос для его применения к слою.
  3. Либо можно задать активный запрос в диалоговом окне Свойства слоя.
    • Щелкните Сделать активным Сделать активным для применения запроса к слою. Другие запросы станут не активными. Активный запрос указан внизу диалогового окна Свойства. Если у вас есть большое число запросов, а активного запроса не видно, щелкните Показать активный определяющий запрос Показать активный определяющий запрос, чтобы прокрутить к нему.
    • Щелкните Очистить активный запрос Очистить активный запрос, чтобы к слою или таблице запрос не применялся. Все запросы относятся к слою или таблице, но ни один из них в настоящий момент не будет применен.

Подсказка:

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

Изменение существующих запросов

Выбрав слой на панели Содержание, в разделе Векторный слой, на вкладке Данные, в группе Определяющий запрос, щелкните Установщик, чтобы открыть диалоговое окно Свойства слоя на вкладке Определяющий запрос. Для изменения запроса поместите над ним курсор и выполните одно из следующего:

  • Для изменения, добавления и удаления выражений запроса щелкните Редактировать.
    • Чтобы изменить выражение в запросе, измените значения.
    • Чтобы удалить выражение из запроса, нажмите Удалить выражение Удалить условие.
    • Чтобы добавить выражение в запрос, щелкните Добавить выражение Добавить новое выражение.

    Щелкните Применить, чтобы применить изменения к определяющему запросу.

  • Чтобы удалить определяющий запрос из слоя или таблицы, наведите курсор на ячейку запроса и щелкните Удалить определяющий запрос Удаление .
  • Чтобы переименовать определяющий запрос, щелкните его имя и введите новое.
  • Чтобы экспортировать синтаксис запроса в файл выражения запроса (файл .exp) щелкните Сохранить Сохранить.
  • Для замены имеющегося запроса на другой, взятый из файла выражения запроса (файл .exp) щелкните Загрузить Загрузить запрос.

Задание запросов сразу для нескольких слоев

Если у нескольких слоев есть определяющие запросы с одинаковыми именами - даже если содержание запросов не является идентичным - запросы можно активировать для слоев одновременно. То есть можно создать несколько связанных запросов и применить их все сразу. И можно переключиться на другой набор запросов - предназначенный для реализации другого сценария, если необходимо.

Для применения определяющих запросов с одинаковыми именами к нескольким слоям выполните следующие действия:

  1. Убедитесь, что слои выделены на панели Содержание.
  2. Под пунктом Векторный слой, на вкладке Данные, в группе Определяющий запрос, выберите запрос из меню Определяющий запрос для его применения к слою. Будут показаны только определяющие запросы с одинаковыми для всех выбранных слоев именами.

Публикация слоев с определяющими запросами

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

Связанные разделы