Объект Layer представляет слой карты или рабочий слой темы. Для доступа к геометриям слоя следует использовать метод Layer::OpenFeatureset, создающий объект Featureset - набор геометрий слоя.
Для создания нового слоя карты необходимо выполнить следующую последовательность действий:
Создать объект Layer с помощью метода Map::CreateLayer.
Создать тип геометрий слоя с помощью метода Layer::CreateFeatureType.
Установить свойства созданного типа геометрий.
Добавить тип геометрий в коллекцию Layer::FeatureTypes с помощью метода Append.
Повторить шаги 2 - 4 для каждого типа геометрий в слое.
Добавить объект Layer в коллекцию Map::Layers с помощью метода Append.
Для создания нового рабочего слоя темы необходимо выполнить следующую последовательность действий:
Создать объект Layer с помощью метода Theme::CreateLayer.
Создать тип геометрий слоя с помощью метода Layer::CreateFeatureType.
Установить свойства созданного типа геометрий.
Добавить тип геометрий в коллекцию Layer::FeatureTypes с помощью метода Append.
Повторить шаги 2 - 4 для каждого типа геометрий в слое.
Добавить объект Layer в коллекцию Theme::Layers с помощью метода Append.
При успешном добавлении слоя в коллекцию Map::Layers или Theme::Layers, ему присваивается внутренний номер. Кроме того, присваиваются внутренние номера типам геометрий слоя. Непрерывность последовательности внутренних номеров не гарантируется. Присвоенные внутренние номера не изменяются между сеансами доступа к ГБД. Изменения внутренних номеров может произойти при реорганизации ГБД с помощью метода GDBEngine::CompactGDB с режимом gdbCompactNoKeepISN.
Для доступа к слоям в коллекциях Map::Layers и Theme::Layers следует использовать метод Item. Аргументом метода может быть строка - имя слоя, или целое - внутренний номер слоя.
Для доступа к типам геометрий в коллекции Layer::FeatureTypes следует использовать метод Item. Аргументом метода может быть строка - имя типа геометрий, или целое - внутренний номер типа геометрий. Пока объект Layer не добавлен в коллекцию Map::Layers, доступ к типам геометрий может быть только по имени.
Наличие рабочих слоев темы позволяет организовать для темы собственное множество геометрий. Типы геометрий рабочих слоев не могут быть связаны с таблицами ГБД/внешних БД.
Учитывая особенности реализации рабочих слоев в данной версии ядра ГИС, не следует создавать рабочие слои с количеством геометрий, сопоставимым с количеством геометрий в слоях карт – это может привести к снижению производительности ядра ГИС. В данной версии ядра ГИС предполагается, что геометрии рабочих слоев используются главным образом для реализации пространственных критериев фильтрации геометрий в теме.
Модификация как геометрий рабочего слоя, так и его структуры, осуществляются вне механизма транзакций ГБД. Сохранение всех модификаций геометрий рабочего слоя и его структуры в ГБД осуществляется при каталогизации темы в ГБД путем ее добавления в коллекцию GeoDatabase::Themes или при обновлении каталогизированной темы с помощью метода Theme::Update.