zoukankan      html  css  js  c++  java
  • mapcontrol 遍历所有图层方法

    通过IMap中的get_layers()可以遍历MapControl中当前的图层。此方法可以通过指定UID对图层进行过滤或者分类。
     
    1. 遍历矢量图层
     
     
      public IEnumLayer GetFeatureLayers()
            {
                UID uid = new UIDClass();
                uid.Value = "{40A9E885-5533-11d0-98BE-00805F7CED21}";//FeatureLayer
                IEnumLayer layers = frmMap.m_mapCtrl.Map.get_Layers(uid, true);
                return layers;
            }
     
     
    2. 遍历栅格图层
     
     
      public IEnumLayer GetRasterLayers()
            {
                UID uid = new UIDClass();
                uid.Value = "{D02371C7-35F7-11D2-B1F2-00C04F8EDEFF}";//RasterLayer
                IEnumLayer layers = frmMap.m_mapCtrl.Map.get_Layers(uid, true);
                return layers;
     }
     
     
    3.遍历其它图层
     
    只要修改相应的UID即可。常见的数据类型的UID有:
     
     
    {6CA416B1-E160-11D2-9F4E-00C04F6BC78E} IDataLayer (包括所有类型的图层)
    {40A9E885-5533-11d0-98BE-00805F7CED21} IFeatureLayer
    {E156D7E5-22AF-11D3-9F99-00C04F6BC78E} IGeoFeatureLayer
    {34B2EF81-F4AC-11D1-A245-080009B6F22B} IGraphicsLayer
    {5CEAE408-4C0A-437F-9DB3-054D83919850} IFDOGraphicsLayer
    {0C22A4C7-DAFD-11D2-9F46-00C04F6BC78E} ICoverageAnnotationLayer
    {EDAD6644-1810-11D1-86AE-0000F8751720} IGroupLayer
     
     
    4. 通过图层名获取图层接口
     
    在AE开发中,这是常用到的功能,配合上面的方法,很容易实现。
     
     
     //获取矢量图层接口
     public IFeatureLayer GetFeatureLayer(string layerName)
            {
                //get the layers from the maps
                IEnumLayer layers = GetFeatureLayers();
                layers.Reset();
                ILayer layer = null;
     while ((layer = layers.Next()) != null)
                {
                    if (layer.Name == layerName)
                        return layer as IFeatureLayer;
                }
                return null;
            }
     
    //获取栅格图层接口        
    public IRasterLayer GetRasterLayer(string layerName)
            {
                //get the layers from the maps
                IEnumLayer layers = GetRasterLayers();
                layers.Reset();
                ILayer layer = null;
                while ((layer = layers.Next()) != null)
                {
                    if (layer.Name == layerName)
                        return layer as IRasterLayer;
                }
                return null;
            }
     
     
     
    获取其它类型的图层接口,同此类似。
     
     
  • 相关阅读:
    好用的镜头站下载工具
    300+Jquery, CSS, MooTools 和 JS的导航菜单资源
    股票入门2
    MEF学习笔记(6):出口和元数据
    MEF学习笔记(5):迟延加载导出部件
    WinForm控件复杂数据绑定常用数据源(如:Dictionary)(对Combobox,DataGridView等控件DataSource赋值的多种方法)
    wpf 多线程绑定控件
    HTTP 错误 404.2 Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面
    ADODB.Stream 错误 '800a0bbc' 写入文件失败。
    'System.Windows.StaticResourceExtension' threw an exception
  • 原文地址:https://www.cnblogs.com/qiernonstop/p/3765334.html
Copyright © 2011-2022 走看看