Объект Theme

Объект Theme предоставляет возможность построения темы - пользовательского представления карты ГБД. Для доступа к геометриям карты, входящим в тему, следует использовать метод Theme::OpenFeatureset, создающий объект Featureset - набор геометрий карты, входящих в тему.

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

Создать объект Theme с помощью одного из методов GeoDatabase::CreateTheme, Map::CreateTheme, Layer::CreateTheme или FeatureType::CreateTheme.

Добавить необходимые слои карты (в требуемом порядке) в коллекцию Theme::Layers с помощью метода Append.

Создать необходимые рабочие слои темы с помощью метода Theme::CreateLayer.

Добавить созданные рабочие слои в коллекцию Theme::Layers.

Добавить необходимые типы геометрий в коллекцию Layer::FeatureTypes для каждого слоя в коллекции Theme::Layers с помощью метода Append.

Коллекция FeatureType::DataLinks для типов геометрий, добавленных в коллекцию Layer::FeatureTypes в п.5, содержит только описатели связей, основанные на таблицах/выборках внешних БД. Если необходим доступ через создаваемую тему к таблицам ГБД, связанным с типом геометрий, необходимо добавить описатели связи, основанные на таблицах ГБД, в коллекцию с помощью метода Append. Добавлять можно только описатели, основанные на таблицах ГБД, связанных с типом геометрий на уровне карты. Типы геометрий рабочих слоев не могут быть связаны с таблицами ГБД/внешних БД.

Установить необходимые свойства слоев и типов геометрий в теме.

Для каталогизации темы в ГБД, следует установить имя созданной темы с помощью свойства Theme::Name и добавить в коллекцию GeoDatabase::Themes. При успешном добавлении темы в коллекцию GeoDatabase::Themes, ей присваивается внутренний номер. Непрерывность последовательности внутренних номеров каталогизированных тем не гарантируется. Присвоенные внутренние номера тем не изменяются между сеансами доступа к ГБД. Изменение внутренних номеров может произойти при реорганизации ГБД с помощью метода GDBEngine::CompactGDB с режимом gdbCompactNoKeepISN.

Для доступа к каталогизированным темам в коллекции GeoDatabase::Themes следует использовать метод Item. Аргументом метода может быть строка - имя темы, или целое - внутренний номер карты.

Если тема содержит рабочие слои, при завершении работы с темой ее следует закрыть с помощью метода Theme::Close.