不多说了,直接上代码,代码中有注释。代码源于项目,任何转载请注明: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();
}
执行效果:

本文介绍了一种使用C#进行柱状图符号化的实现方法。通过具体代码示例展示了如何定义ChartRenderer对象,设置最大值,以及如何添加不同颜色的符号来表示不同的字段数据。

2937

被折叠的 条评论
为什么被折叠?



