При определении набора данных, который вы хотите показать как слой карты, часто бывает нужно отобразить только некоторые пространственные объекты этого набора. В таких случаях удобнее задать выражение запроса, которое выберет поднабор объектов для слоя. Это делается при помощи Определяющего запроса.
Например:
- Вам может потребоваться отобразить только те города, население в которых превышает определенный порог.
- Многие наборы данных, такие как дороги и улицы, содержат поднаборы объектов (классы), и может понадобиться задать слои карты для каждого класса, независимо от других объектов.
- В других случаях, у многих пользователей есть большие корпоративные базы данных с наборами данных, содержащих миллионы объектов в пределах огромных экстентов – скажем, на весь штат или страну. Тем не менее, на картах им могут понадобиться только поднаборы данных.
Если вы хотите отобразить и работать с поднабором пространственных объектов в слое, можно применить к слою определяющий запрос. Вы можете ввести собственное выражение или использовать Конструктор запросов (Query Builder), который поможет вам построить выражение запроса.
При выполнении запроса на классе объектов с пространственным и атрибутивным компонентами многопользовательской базы геоданных, появляется окно диалога, где с помощью кнопки Порядок поиска (Search order) вы можете выбрать, искать ли сначала пространственные компоненты (настройка по умолчанию) или атрибутивные компоненты. Это позволяет вам точно настроить работу запроса. Описанная кнопка присутствует только, если источником данных для слоя является класс объектов многопользовательской базы геоданных.
Если в вашей карте действуют Многостраничная компоновка (Data Driven Pages), вы можете использовать Определяющие запросы для страниц (Page Definition Queries), чтобы указать, какие отображаемые объекты слоя проверять в SQL запросе. Хотя эта функциональность аналогична другим определяющим запросам, Определяющие запросы для страниц отличаются тем, что они работают только с Многостраничной компоновкой и являются динамическими. Объекты фильтруются, основываясь на текущей странице. По мере того, как вы переходите от страницы к странице, запрос меняется, и в соответствии с новой страницей отрисовывается новый набор объектов. Если у вас есть объекты, которые находятся на перекрытиях экстентов страниц, и вы хотите, чтобы эти объекты отображались на нескольких страницах, вы должны рассмотреть возможность использования кнопки Вырезать (Clip) для настройки своей карты. Эта кнопка присутствует только, если для вашего документа определена Многостраничная компоновка (Data Driven Pages). Она не присутствует в свойствах слоя, который в данный момент используется в качестве слоя индексации для многостраничной компоновки (Data Driven Pages), когда она определена.
C данными событий решением является создание класса объектов из табличного источника данных, а не из слоя событий. Если вы добавляете таблицу без поля ObjectID, содержащую данные X, Y, не используйте команду Файл (File) > Добавить данные (Add Data) > Добавить данные XY (Add XY Data) в ArcMap, чтобы создать слой событий, основанный на таблице. Вместо этого запустите ArcCatalog, щелкните правой кнопкой мыши таблицу, выберите Создать класс объектов из таблицы XY (Create Feature Class from XY), чтобы создать на основе неё новый класс объектов, затем добавьте этот новый класс объектов в вашу карту. Или после применения функций Файл (File) > Добавить данные (Add Data) > Добавить данные XY (Add XY Data), либо Файл (File) > Добавить данные (Add Data) > Добавить события на маршруте (Add Route Events), чтобы создать слой событий из таблицы без поля ObjectID, вы можете экспортировать данные для создания нового слоя. Эти действия сохраняют данные в классе объектов, и прописывают поле ObjectID. Другой способ – воспользоваться инструментом геообработкиСоздать таблицу запроса (Make Query Table), который позволит вам создать таблицу с помощью подключения OLE DB и выбрать столбец для поля ObjectID или динамически добавить поле ObjectID.
Создание определяющего запроса
- Щёлкните правой кнопкой мыши слой в таблице содержания и выберите Свойства (Properties).
- Перейдите на вкладку Определяющий запрос (Definition Query) в диалоговом окне Свойства слоя (Layer Properties).
- Введите выражение запроса. Более подробно о построении правильных запросов см.Построение выражения запроса.
- Нажмите ОК.
После установки определяющего запроса карта будет перерисована и отобразит поднабор объектов, который выбран по вашему запросу. Каждый раз при обновлении карты слой будет продолжать отображать поднабор объектов.
Чтобы вернуть отображение всех пространственных объектов, просто удалите определяющий запрос.