AE(ArcEngine)里IGroupLayer的用法

本文介绍了ArcGIS中IGroupLayer的使用方法,包括如何获取子图层、添加和删除图层以及在特定位置插入图层。通过具体代码示例展示了IGroupLayer的各种操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图层中有一种特殊的图层组,其结构可能是多种图层组合成的IGroupLayer。
IGroupLayer解析如下

namespace ESRI.ArcGIS.Carto
{
    public interface IGroupLayer : ILayer
    {

        ESRI.ArcGIS.Geometry.IEnvelope AreaOfInterest { get; }

        bool Cached { get; set; }

        bool Expanded { get; set; }

        double MaximumScale { get; set; }

        double MinimumScale { get; set; }

        string Name { get; set; }

        bool ShowTips { get; set; }

        ESRI.ArcGIS.Geometry.ISpatialReference SpatialReference { set; }

        int SupportedDrawPhases { get; }

        bool Valid { get; }

        bool Visible { get; set; }

        void Add(ILayer Layer);

        void Clear();

        void Delete(ILayer Layer);

        string get_TipText(double x, double y, double Tolerance);
    }
}

一、获得IGroupLayer里面的子图层
IGroupLayer没有定义获取子图层的定义 要将其转换成ICompositeLayer才可获取子图层

for (int i = 0; i < axMapMain.LayerCount; i++)  
{  
    ILayer pGL = axMapMain.get_Layer(i);  
    if (pGL is IGroupLayer)  
    {  
        ICompositeLayer pClyr = pGL as ICompositeLayer;  
        for (int j = 0; j < pClyr .Count; j++)  
        {  
            ILayer pLyr;  
            pLyr=pCLyr.get_Layer(j);  
        }  
    } 
}

二、在IGroupLayer里面操作图层
虽然没有获取图层的方法 但可以添加或者删除图层
代码如下:

if (pGL is IGroupLayer)  
{  
    ICompositeLayer PClyr= pGL as ICompositeLayer;  
    for (int j = 0; j < PClyr.Count; j++)  
    {  
        if (PClyr.get_Layer(j) == iLayer)  
        {  
            IGroupLayer pGlyr= pGL as IGroupLayer;  
            //删除图层  
            PClyr.Delete(iLayer);  
        }  
    }    
}  

三、在IGroupLayer里面特定位置添加图层
代码如下:

IMapLayers pMlyrs = pMap as IMapLayers;  
ILayer pGlyr = pMap.get_Layer(i);  
if (pGlyr is IGroupLayer)  
{  
    //利用InsertLayerInGroup方法:第一个是GroupLayer的图层,第二个参数是要插入到组中的图层,  
    //第四个参数是要插入的位置  
    pMlyrs.InsertLayerInGroup(pGlyr, theInsertLayer, false, 3);  

大致用法如上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

话与山鬼听

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值