Как определить тип слоя(arcgis Engine + C#)

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Как определить тип слоя(arcgis Engine + C#)

Сообщение Tereha »

Не могу найти как определить что слой - композитный или групповой. Пишу процедуру определения индекса слоя по его имени. Если слой - группа, то отдельно нужно просматривать подслои. Как то так

Код: Выделить всё

if (map.get_Layer(i).GetType() ==  ESRI.ArcGIS.Carto.IGroupLayer???) {
Там где вопросы нужно видимо выйти на перечислимый тип слоя?
Спасибо за любую подсказку или ссылку!
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Как определить тип слоя(arcgis Engine + C#)

Сообщение Дмитрий Барышников »

Я через приведение типов делаю. Т.е. если ESRI.ArcGIS.Carto.IGroupLayer TestLayer = map.get_Layer(i);
Если TestLayer не равен нулю - то, тип слоя IGroupLayer.
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как определить тип слоя(arcgis Engine + C#)

Сообщение Tereha »

Я также сделал. Но теперь неясно как по индексу слой найти - т.е. сначала по первому индексу нужно будет искать составной слой, по второму индексу - уже внутренний слой. Т.е. в процедуре поиска слоя по имени нужно иметь массив индексов в возвращаемых параметров - по количеству слоев. Или я ошибаюсь?
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Как определить тип слоя(arcgis Engine + C#)

Сообщение Дмитрий Барышников »

Отберите слои нужного вам типа как написано здесь http://edndoc.esri.com/arcobjects/9.0/C ... Layers.htm и выполняйте операции с ними.
И почитайте Remarks здесь http://edndoc.esri.com/arcobjects/9.0/C ... _Layer.htm
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя