Как получить слой по имени?
-
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Как получить слой по имени?
C# + .NET+ arcgisEngine
Доброго времени суток!
Можно получить слой по индексу MapControl1.get_Layer(8)
А как получить по имени? Спасибо за любую ссылку или подсказку.
Доброго времени суток!
Можно получить слой по индексу MapControl1.get_Layer(8)
А как получить по имени? Спасибо за любую ссылку или подсказку.
-
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Re: Как получить слой по имени?
Получается перебором слоев по индексу пока не найдено нужное имя
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
-
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Re: Как получить слой по имени?
Код: Выделить всё
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: Как получить слой по имени?
Я не это имел в виду: Если вы хотите по имени слой получить, значит вы каким то образом получили имя. И скорее всего в процессе его получения у вас был индекс слоя.
-
- Завсегдатай
- Сообщения: 423
- Зарегистрирован: 15 май 2010, 06:13
- Репутация: 7
Re: Как получить слой по имени?
Имя слоя я просто знаю - сам в arcgis Desctop создаю. Скажем слой "Пожары". Теперь вот не могу найти как определить, что слой является composite? Что- то вроде
Но не могу найти соответствующее перечисление. Или может есть процедура типа isCompositeLayer?
Код: Выделить всё
if (map.get_Layer(i).GetType() == ESRI.ArcGIS.Carto.???
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Re: Как получить слой по имени?
if (map.get_Layer(i) is ICompositeLayer)
{
}
или уже по вашему
if (map.get_Layer(i).GetType() == typeof(ICompositeLayer))
{
}
{
}
или уже по вашему
if (map.get_Layer(i).GetType() == typeof(ICompositeLayer))
{
}
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя