ae基于面要素生成柱状图

来源:互联网 发布:javascript和node.js 编辑:程序博客网 时间:2024/06/07 11:32
            IFeatureLayer fl = axMapControl1.get_Layer(0) as IFeatureLayer;            IGeoFeatureLayer pGeoFeatLyr = fl as IGeoFeatureLayer;            //用DataStatistics对象,得到两个字段最大值的较大值(最大)            double p1, p2, max;            ICursor pCursor = (ICursor)pGeoFeatLyr.Search(null, true);            IDataStatistics pDataStatistics = new DataStatisticsClass();            pDataStatistics.Cursor = pCursor;            pDataStatistics.Field = "POP1990";            p1 = pDataStatistics.Statistics.Maximum;            pCursor = (ICursor)pGeoFeatLyr.Search(null, true);            pDataStatistics.Cursor = pCursor;            pDataStatistics.Field = "POP2000";            p2 = pDataStatistics.Statistics.Maximum;            max = p1 > p2 ? p1 : p2;            //以下生成好三个SimpleFillSymbol,留作后用            ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();            pSimpleFillSymbol.Color = getRGBColor(255, 0, 0);//一个获取rgb颜色对象的方法            pSimpleFillSymbol.Outline = null;            ISimpleFillSymbol pSimpleFillSymbol2 = new SimpleFillSymbolClass();            pSimpleFillSymbol2.Color = getRGBColor(0, 0, 255);            pSimpleFillSymbol2.Outline = null;            ISimpleFillSymbol pSimpleFillSymbol3 = new SimpleFillSymbolClass();            pSimpleFillSymbol3.Color = getRGBColor(0, 255, 0);            //创建并设置BarChartSymbol,以及设置好BarChartSymbol里的各自Symbol            IBarChartSymbol pBarChartSymbol = new BarChartSymbolClass();            pBarChartSymbol.Width = 6;//宽度            pBarChartSymbol.Spacing = 1;//Bar之间的间隔            pBarChartSymbol.ShowAxes = true;            IChartSymbol pChartSymbol = pBarChartSymbol as IChartSymbol;            pChartSymbol.MaxValue = max;//用到了上面求出的最大值            ISymbolArray pSymbolArray = pBarChartSymbol as ISymbolArray;//用于在BarChartSymbol里添加Symbol,关键            pSymbolArray.AddSymbol((ISymbol)pSimpleFillSymbol);            pSymbolArray.AddSymbol((ISymbol)pSimpleFillSymbol2);            IMarkerSymbol pMarkerSymbol = pBarChartSymbol as IMarkerSymbol;            pMarkerSymbol.Size = 60;//BarChartSymbol符号大小            //以下创建并设置着色对象            IChartRenderer pChartRenderer = new ChartRendererClass();            IRendererFields pRendererFields = pChartRenderer as IRendererFields;//添加用于着色的字段,关键            pRendererFields.AddField("POP1990");            pRendererFields.AddField("POP2000");            pChartRenderer.ChartSymbol = pChartSymbol;//赋给上面创建的BarChartSymbol            pChartRenderer.BaseSymbol = pSimpleFillSymbol3 as ISymbol;//图层符号的显示,可以通过获取原有render内的符号            pChartRenderer.UseOverposter = true;//进行避让            pChartRenderer.CreateLegend();//创建图例,更新toc和图例中的显示            pGeoFeatLyr.Renderer = pChartRenderer as IFeatureRenderer;            (((pChartSymbol as IMarkerBackgroundSupport).Background as ILineCallout).LeaderLine).Width = 0;//不显示引线            this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);            this.axTOCControl1.Update();

原创粉丝点击