出处: http://www.cnblogs.com/potential/archive/2013/03/19/2966866.html
本文示例用的版本为:
Silverlight 5+Visifire 3.6.8+ArcGIS API for Silverlight 3.0+Visual studio 2010
一、ArcGIS API For Silverlight 绘制统计图如何实现
通常的情况我们是将得到的统计图作为一个ElementLayer添加到地图中,通过设置ElementLayer的位置,来设置统计图在地图上显示的位置。
所有绘制统计图的工作都是由第三方控件:Visifire完成,当然这里你也可以用Silverlight自带的Chart控件。
下面说一下Visifire绘图的设置过程:
1.1 首先定义一个Chart(可以理解为画布),并设置相关属性,例如:
Chart chart = @H_801_45@new Chart(); chart.BACkground = @H_801_45@null; chart.borderBrush = @H_801_45@null; chart.InDicatorEnabled = @H_801_45@false; chart.LighTingEnabled = @H_801_45@false; chart.View3D = @H_801_45@true; chart.Height = 300; chart.Width = 100; // 设定标题 title title = @H_801_45@new title(); title.Text = "污染物浓度统计图"; chart.titles.Add(titlE);
DataSeries dataSeries = @H_801_45@new DataSeries(); // 设置图表样式,这里设置为column表示柱状图,还有Pie表示饼状图,以及其他图形等。 dataSeries.RenderAs = RenderAs.column;
DataPoint dataPoint = @H_801_45@new DataPoint(); dataPoint.Exploded = @H_801_45@true; dataPoint.AxisXLabel = "污染物A"; / Set YValue for a DataPoint dataPoint.YValue = 10;
1.4 将数据点添加到DataSeries中,然后将DataSeries添加到Chart中,例如:
1.5 定义ElementLayer,设置Evelop(范围)属性,将Chart添加到ElementLayer中,例如:
ElementLayer chartlayer = @H_801_45@new ElementLayer(); chartlayer.ID = "统计图层"; chartlayer.opacity = 0.7; //g为输入的统计要素(点,面,线) MapPoint mapPoint = g.Geometry @H_801_45@as ESRI.ArcGIs.CLIENt.Geometry.MapPoint; //设置该参数来控制统计图显示的位置 Envelope extent = @H_801_45@new Envelope(mapPoint.X,mapPoint.Y,mapPoint.X,mapPoint.Y); ElementLayer.SetEnvelope(chart,extent); chartlayer.Children.Add(chart);
1.6 最后将ElementLayer添加到地图图层中:
这样就能得到最后的统计图了:
【示例下载】