实现此功能的函数如下:
public static ILayer GetGlobeLayerByName(IScene pScene, string strLayerName)
{
try
{
object Missing = Type.Missing;
IEnumLayer pEnumLayer = pScene.get_Layers(null, false);
ICompositeLayer pCompositeLayer;
ILayer pLayer = pEnumLayer.Next();
while (pLayer != null)
{
if (pLayer is IGroupLayer)
{
pCompositeLayer = pLayer as ICompositeLayer;
for (int i = 0; i <= pCompositeLayer.Count - 1; i++)
{
if (strLayerName.ToUpper() == pCompositeLayer.get_Layer(i).Name.ToUpper())
{
return pCompositeLayer.get_Layer(i);
}
}
}
else
{
if (strLayerName.ToUpper() == pLayer.Name.ToUpper())
{
return pLayer;
}
}
pLayer = pEnumLayer.Next();
}
return null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return null;
}
}