Как получить слой по имени?

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

Как получить слой по имени?

Сообщение Tereha »

C# + .NET+ arcgisEngine
Доброго времени суток!
Можно получить слой по индексу MapControl1.get_Layer(8)
А как получить по имени? Спасибо за любую ссылку или подсказку.
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как получить слой по имени?

Сообщение Tereha »

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

Re: Как получить слой по имени?

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

А вы имена слоев откуда берете?
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как получить слой по имени?

Сообщение Tereha »

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

        public int getIndexLayerByName(string layerName){
         ESRI.ArcGIS.Carto.IMap map = axMapControl1.Map; 
        int numberOfLayers = map.LayerCount;
        for (System.Int32 i = 0; i < numberOfLayers; i++)
             if (layerName == map.get_Layer(i).Name)     return i;
         return -1;
        }
Ответ с форума

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

       ' Enumerate layers
        pEnumLayers = pMap.Layers
        pEnumLayers.Reset()
        pLayer = pEnumLayers.Next()

        Do Until pLayer Is Nothing
                      If pFLayer.Name = [layer name] Then
                        Exit Do
                    End If
            pLayer = pEnumLayers.Next
        Loop
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Как получить слой по имени?

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

Я не это имел в виду: Если вы хотите по имени слой получить, значит вы каким то образом получили имя. И скорее всего в процессе его получения у вас был индекс слоя.
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как получить слой по имени?

Сообщение Tereha »

Имя слоя я просто знаю - сам в arcgis Desctop создаю. Скажем слой "Пожары". Теперь вот не могу найти как определить, что слой является composite? Что- то вроде

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

if (map.get_Layer(i).GetType() ==  ESRI.ArcGIS.Carto.???
Но не могу найти соответствующее перечисление. Или может есть процедура типа isCompositeLayer?
Dorofeev
Активный участник
Сообщения: 194
Зарегистрирован: 08 фев 2007, 23:29
Репутация: 1
Откуда: Симферополь
Контактная информация:

Re: Как получить слой по имени?

Сообщение Dorofeev »

if (map.get_Layer(i) is ICompositeLayer)
{

}

или уже по вашему

if (map.get_Layer(i).GetType() == typeof(ICompositeLayer))
{

}
Ответить

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

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

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