转自羊子雄起原文c#+ArcEngine中的IGroupLayer的用法

  在AE开发中,我们知道axMapControl.LayerCount能获取图层的数量,但是这种方法不能获取到图层组里面的图层,这对我们对图层的操作很不方便,AE里面提供了IgroupLayer的接口,这让我们很好的对图层组操作。

一、IGroupLayer图层的获取

  获取一个图层组的Layer,这里AE提供了一个 ICompositeLayer接口,可以获取到IGroupLayer中所有的图层,具体用法如下:

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

二、IGroupLayer的添加与删除

  IGroupLayer自带了添加、删除等方法,用起来也比较方便,这里不再赘述,如下图所示:

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

三、在IGroupLayer中特定位置插入图层

   IGroupLayer中自带的不能插入到特定位置,有的时候不能满足需要,在网上查阅资料后,发现还有一个很强大的AE接口:IMapLayers,通过IMapLayers可以插入图层到IGroupLayer中特定位置。
IMapLayers pLayers = axMapMain.Map as IMapLayers;
ILayer pGL = axMapMain.get_Layer(i);
if (pGL is IGroupLayer)
{
//利用InsertLayerInGroup方法:第一个是GroupLayer的图层,第二个参数是要插入到组中的图层,
//第四个参数是要插入的位置
pLayers.InsertLayerInGroup(pGL, axMapMain.get_Layer(), false, );
}

  IMapLayers有很多有效的方法,大家可以到网上具体查阅帮助文档,方便并且实用。

  由于在网上IGroupLayer的资料很少,在此特意总结一下,希望能给大家带来帮助,并且大家一起交流。

 

c#+ArcEngine中的IGroupLayer的用法的更多相关文章

  1. 在ArcEngine中使用Geoprocessing工具-执行工具

    转自原文在ArcEngine中使用Geoprocessing工具-执行工具 来解析一下Geoprocessor类的Execute方法,他有两种重载,Execute(IGPProcess, ITrack ...

  2. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  3. ecshop中foreach的详细用法归纳

    ec模版中foreach的常见用法. foreach 语法: 假如后台:$smarty->assign('test',$test); {foreach from=$test item=list ...

  4. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  5. C#中timer类的用法

    C#中timer类的用法 关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类 ...

  6. C#中dynamic的正确用法

    C#中dynamic的正确用法  http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ...

  7. ArcEngine中打开各种数据源(WorkSpace)的连接

    (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业 ...

  8. C++中typename关键字的用法

    我在我的 薛途的博客 上发表了新的文章,欢迎各位批评指正. C++中typename关键字的用法

  9. Guava中Predicate的常见用法

    Guava中Predicate的常见用法 1.  Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...

随机推荐

  1. HTML 表单和表格

    1.使用表单标签 网站使用 HTML 表单可与用户进行交互,表单元素是允许用户在表单中输入内容,比如:文本框.文本域.单选框.复选框.下拉列表.按钮等等,表单可以把浏览者输入的数据传送到服务器端,这样 ...

  2. stream_context_create解决file_get_contents超时处理

    stream_context_create作用:创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置.代理服务器.请求方式.头信息设置的 ...

  3. Highchart :tooltip工具提示

    Highcharts翻译系列之十六:tooltip工具提示tooltip工具提示 参数 描述 默认值 animation 启用或禁用提示的动画.这对大数据量的图表很有用 true background ...

  4. OC 之 const

    1. 修饰变量 一般设置传参数的时候 若设置为const, 则在调用过程中不允许修改参数值;(readonly) // *前const: 不能通过指针, 改变p指向的值 const int *p = ...

  5. iOS - Responder Chain

     在iOS中,当发生事件响应时,必须知道由谁来响应事件.这就是由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次 ...

  6. Android引导界面

    一.所需素材       很有必要整理一下,里面附带友盟的社会化分享组件,我就不去掉了. 二.代码 import com.umeng.update.UmengUpdateAgent; import a ...

  7. QLGame 2d Engine SpriteBatch类创建

    GitHub地址:https://github.com/wsgzxl/QLGame2dEngine 今天说五个问题: 1.前面说到的 颜色不对的问题,是因为FreeImage读取出来的数据格式与Ope ...

  8. 【BZOJ 1319】 Sgu261Discrete Rootsv (原根+BSGS+EXGCD)

    1319: Sgu261Discrete Roots Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 389  Solved: 172 Descriptio ...

  9. Sql中的datetime类型的空值和c#中的DateTime的空值的转换方法

    [一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3412796.html] 在NET 2.0以上版本提供了一种新的方法 就是加问号,DateTim ...

  10. Android Training精要(二)開啟ActionBar的Overlay模式

    在3.0上的實現 <resources> <!-- the theme applied to the application or activity --> <style ...