ArcObjects实现柱图符号化

      不多说了,直接上代码,代码中有注释。代码源于项目,任何转载请注明:hi-ajg.iteye.com

 

      柱图符号化C#代码

 

      private void doBarChartRenderer()
        {
            IFeatureLayer flayer=(IFeatureLayer)axMapControl1.get_Layer(0);
            IGeoFeatureLayer pGeoFeatureLayer = flayer as IGeoFeatureLayer;
            IFeatureClass pFeatureClass = flayer.FeatureClass;
            //定义ChartRenderer对象,并QI
            IChartRenderer pChartRenderer = new ChartRendererClass();
            IRendererFields pRendererFields= (IRendererFields)pChartRenderer;
            //添加字段---WHITE和BLACK
            pRendererFields.AddField("WHITE", "WHITE");
            pRendererFields.AddField("BLACK", "BLACK");
            //统计WHITE字段的最大值
            ITable pTable= pGeoFeatureLayer as ITable;
            IDataStatistics pDataStat = new DataStatisticsClass();
            IFeatureCursor pFtCursor = flayer.FeatureClass.Search(null, false);
            pDataStat.Cursor = pFtCursor as ICursor;
            pDataStat.Field = "WHITE";
            double pMax = pDataStat.Statistics.Maximum;
            // 定义ChartSymbol
            IBarChartSymbol pBarChartSymbol = new BarChartSymbolClass();
            pBarChartSymbol.Width = 6;
            IChartSymbol pChartSymbol = pBarChartSymbol as IChartSymbol;
            // ChartSymbol与MarkerSymbol QI
            IMarkerSymbol pMarkerSymbol = (IMarkerSymbol)pBarChartSymbol;
            //设置pChartSymbol的最大值,bars的最大高度
            pChartSymbol.MaxValue = pMax;
            pMarkerSymbol.Size = 50;
            //定义符号数组
            ISymbolArray pSymbolArray = (ISymbolArray)pBarChartSymbol;
            //添加第一个符号,显示WHITE字段
            IFillSymbol pFillSymbol = new SimpleFillSymbolClass();
            pFillSymbol.Color = getRgbColor(255, 0, 0) as IColor;
            pSymbolArray.AddSymbol(pFillSymbol as ISymbol);
            //添加第二个符号,显示BLACK字段
            pFillSymbol = new SimpleFillSymbolClass();
            pFillSymbol.Color = getRgbColor(0, 0, 255) as IColor;
            pSymbolArray.AddSymbol(pFillSymbol as ISymbol);
            //设置ChartSymbol
            pChartRenderer.ChartSymbol = pChartSymbol as IChartSymbol;
            pChartRenderer.Label = "White/Black";
            //设置底图
            pFillSymbol = new SimpleFillSymbolClass();
            pFillSymbol.Color = getRgbColor(255, 255, 0);
            pChartRenderer.BaseSymbol = (ISymbol)pFillSymbol;
            pChartRenderer.CreateLegend();
            //渲染,刷新地图和TOC
            pGeoFeatureLayer.Renderer = (IFeatureRenderer)pChartRenderer;
            axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
            axTOCControl1.Update();
        }

 

      执行效果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值