02

20

图层初始颜色

当添加图层时改变图层的初始颜色及线型,点的形状与大小:添加下面代码之前一定要确保图层已经添加:

     private void button13_Click(object sender, System.EventArgs e)
  {
   ILayer  lyr; //定义一个图层. ILayer  为所有图层的父接口,包括空间和非空间

//定义一个简单渲染对象,这接口实现的功能是图层

  //上所有的地物以同一中颜色的符号显示
  ISimpleRenderer  pRenderer;      

//定义一个空间地物层, IGeoFeatureLayer只能为空间地物的层

IGeoFeatureLayer  pGeoFeatureLayer;
   //循环所有的图层
   for(int i=0;i<MapCtr.ActiveView.FocusMap.LayerCount;i++)
   {

     //取得第i个图层并赋值给lyr
     lyr= MapCtr.ActiveView.FocusMap.get_Layer(i);
    if(lyr  is  IGeoFeatureLayer) //判断图层是不是地物层,如果是地物层进行下边的操作
    {
     pGeoFeatureLayer=(IGeoFeatureLayer) lyr;
     pRenderer=(ISimpleRenderer)pGeoFeatureLayer.Renderer;
     IRgbColor  pColor=new RgbColorClass();//颜色接口
     ISimpleLineSymbol pLineSymbol=new SimpleLineSymbolClass();//线接口,可以实现线形和颜色

     //pGeoFeatureLayer.FeatureClass.ShapeType 用于判断地物的形状,点 多点、线、多边形。

//还有其他。下边没列举可以通过esriGeometryType查看
     switch(pGeoFeatureLayer.FeatureClass.ShapeType )
     {
       #region 面图层
      case esriGeometryType.esriGeometryPolygon:
       //定义颜色
       pColor.Blue=255;
       //线符号
       pLineSymbol.Color=pColor;
       pLineSymbol.Width=1;
       //面符号
       ISimpleFillSymbol pFillSymbol=new SimpleFillSymbolClass();
       pFillSymbol.Outline=pLineSymbol;
  
       pColor.Red=0;
       pColor.Green=0;
       pFillSymbol.Color=pColor;
  
       pRenderer.Symbol=(ISymbol)pFillSymbol;
       break;
       #endregion 面图层
       #region 线图层
      case esriGeometryType.esriGeometryPolyline:
       pColor.Red=0;
       pColor.Green=0;
       pColor.Blue=0;
       //线符号
       pLineSymbol.Color=pColor;
       pLineSymbol.Width=1;
       pRenderer.Symbol=(ISymbol)pLineSymbol;
       break;
       #endregion 线图层
       #region 点图层
      case esriGeometryType.esriGeometryPoint :
       pColor.Red=255;
       pColor.Green=0;
       pColor.Blue=0;
       ISimpleMarkerSymbol  symSP=new SimpleMarkerSymbolClass();
       symSP.Color=pColor;
       symSP.Size=1;
       pRenderer.Symbol=(ISymbol) symSP;
       break;
      case esriGeometryType.esriGeometryMultipoint :
       pColor.Red=255;
       pColor.Green=0;
       pColor.Blue=0;
       ISimpleMarkerSymbol  symMP=new SimpleMarkerSymbolClass();
       symMP.Color=pColor;
       symMP.Size=1;
       pRenderer.Symbol=(ISymbol) symMP;
       break;
       #endregion 点图层
      default:
       break;
     }
     this.MapCtr.ActiveView.Refresh();//刷新图层
    }
   }
  }

文章出处:http://blog.gisforum.net/u/142/archives/2006/69.html


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: GIS
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.